在服务器上配置并进行配置。但要在代理商上运行:
似乎有各种各样的方法被讨论。那么如何在zabbix代理上执行这样的命令呢?
答案 0 :(得分:6)
直接从新项目运行服务器命令。
首先,在代理conf文件中设置:EnableRemoteCommands=1
(适用于所有代理)。启用此功能。
创建一个新项目。 "新项目"上的字段页面上写着' key'。输入:
system.run[command]
作为'键'串。其中command是要下载并在代理上运行的命令。这是一个例子:
system.run[sysctl dev.cpu.0.temperature | cut -d ' ' -f 2 | tr -d C]
也许你需要运行一个更复杂的东西,太长而不适合那里?然后,您将需要制作自定义脚本。将自定义脚本放在本地Web服务器上或Web上的某个位置。
您可以将项目的关键设置为:
system.run[ command -v script && script || wget script_url -O /path/to/script && script]
在第一次执行代理时,将缺失的脚本提取并下载到代理。然而,这是一个相当粗糙的黑客。不是很优雅。
更好的方法是进入"管理" - > "脚本"在菜单中。从那里,您可以创建一个新脚本,用于可以配置为在任何代理上运行的项目。
定制一个特殊的自定义项目以定期重新运行脚本(如cron作业)。特殊脚本项的作用是使用其他所需自定义脚本的集合更新代理。
当然,您可以直接将所有自定义脚本编写到zabbix的MYSQL数据库中。这样做非常诱人。但请注意,如果您的zabbix数据库被炸毁或损坏/丢失,那么它们将会丢失并易受攻击。 Zabbix数据库总是习惯于变得庞大,笨拙和失控。所以不要这样做。将它们分别存储在其他地方并在版本控制下(git或subversion)。
一旦这些全部排序,我们终于可以继续创建更多自定义项目来运行自定义脚本。再次使用:
system.run[script]
作为项目的关键点和以前一样。哪里'脚本'是命令(加上任何参数),用于在代理上本地执行自定义脚本。
答案 1 :(得分:1)
在客户端定义用户参数(zabbix代理所在的位置) 位于/etc/zabbix/zabbix_agentd.conf。关键应该是 独特。我使用lsof作为例子。
UserParameter = open_file,lsof | wc -l </ p>
重新启动代理“service zabbix-agent restart”
使用zabbix_get实用程序测试密钥是否正常工作。来自zabbix 服务器调用以下内容。在这种情况下它应该返回一个数字。
/ usr / local / bin / zabbix_get -s -k OPEN_FILE
在模板的zabbix服务器上使用密钥创建项目 水平。应正确定义返回类型,否则为zabbix 不接受它:
类型:Zabbix代理(活动),密钥:open_file,信息类型: 数字(无符号),数据类型:十进制
您可以使用项目创建图表来监控值 定期间隔。
这是官方documentation。