Answers:
更好的替代方案是使用专门的插件。与许多其他现代监控应用程序一样,Zabbix允许用户实现自定义插件。在您的情况下,您需要的自定义插件将是专门用于检查,监视和警告日志文件的工具。
这种工具的一个例子是autoresolve.kl.sh
安装过程很简单:
将'/ home / jserver'替换为zabbix插件目录。此外,除非您正在测试,否则请确保以普通用户身份运行上述安装命令,而不是root用户。
完成上述步骤后。您现在可以开始监控日志:
./autoresolve.kl.sh localhost / var / tmp / logXray,fixer,0n-1y-2y,0-uname,1-who,2-uptime autonda / var / log / syslog 60m'app。* error''。 “ 1 2 app_err_monitor -ndshow
为了简单起见,您需要更改的最重要参数是:
有关每个参数含义的详细说明,您可以直接访问帮助页面。
在同一个帮助页面上,您还将找到有关如何使此工具与Zabbix一起使用的分步说明...即您需要更新哪些zabbix配置文件...以及您需要在zabbix上进行哪些设置网络界面。
确保在受监视主机上的代理配置文件中:
“Hostname”参数与前端中的主机名匹配“ServerActive”参数中的服务器是为处理活动检查而指定的。例:
/etc/zabbix/zabbix_agentd.conf:
Hostname=game.bingodrive.com
ServerActive=10.1.1.1
然后检查zabbix Unix用户是否具有读取文件的访问权限:
# su - zabbix -c "tail $YOUR-FILE"
注意,如果找到字符串,“regexp”触发器函数返回true(1),所以如果第二个屏幕截图上的消息是错误,那么应该是= 1,而不是= 0。
su - zabbix -c "tail $YOUR-FILE"
不适用于没有shell的用户。你可以用runuser -u zabbix tail $YOUR-FILE
它。
对于Zabbix使用log
项目监视UNIX日志文件,有关主机可以使用主动检查至关重要。这通常意味着:
必须ServerActive=
使用此主机配置的代理和zabbix服务器或代理的主机名配置代理。
Zabbix服务器配置的主机名与目标(受监控)主机的FQDN或系统主机名匹配。
或者,如果不是这种情况,则配置代理HOSTNAME=
和相应的Zabbix服务器配置的主机名。
正如其他人所指出的,代理(作为Zabbix用户运行)必须能够访问日志文件,这su zabbix -c "tail -1 logfile"
是测试它的好方法。如果禁用zabbix帐户,请使用runuser -u zabbix tail -1 logfile
。(替换logfile
为要监视的文件)。
重新启动代理时,请检查其日志文件中是否有任何错误消息,例如
no active checks on server [127.0.0.1:10051]: host [Zabbix server] not found
这表示上述类型的配置错误。
如果在服务器上您看到此项目“不支持”,则可能是文件权限有问题。
如果您仍然没有看到您的消息,则可能发送的消息太多。默认情况下,Zabbix每秒只发送100个左右,并且每30秒只能“赶上”(参见你的项目)。
您已将触发器配置为仅查看最后一项(regexp(...,#1)
)。我认为这是正确的,但通常情况下,你只是省略了,#1
。
编辑:替换sudo
为runuser
。看评论
runuser -u zabbix tail $YOUR-FILE
。