1. 背景
使用yum来安装的 zabbix-agent 默认使用zabbix运行,通常情况下这没有什么问题。近期我们有个需求,我们希望通过zabbix来监控java进程中jvm的信息。对jvm的监控我们通常使用jstat命令,这要求使用该命令的用户和java进程启动的用户为同一用户。
由于我们的java进程都是使用app用户来启动的,也就是说如果我们要使用zabbix来调用jstat命令,那么zabbix也需要使用app用户来启动。
以下方法是在3.4.15的版本下配置验证的,其他版本不确保配置方法一样。
zabbix-proxy的配置方法可以参考zabbix-agent
2. 实现方法
实现的方法比较简单,就是修改zabbix-agent相关的配置文件,如果已经启动过的,那么还需要修改对应的目录属主。
使用rpm命令我们查看下安装zabbix-agent会在创建那些目录并且生成什么样的配置文件。
[root@quick-deploy ~]# rpm -qal zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
/usr/lib/systemd/system/zabbix-agent.service
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin/zabbix_agentd
/usr/share/doc/zabbix-agent-3.4.15
/usr/share/doc/zabbix-agent-3.4.15/AUTHORS
/usr/share/doc/zabbix-agent-3.4.15/COPYING
/usr/share/doc/zabbix-agent-3.4.15/ChangeLog
/usr/share/doc/zabbix-agent-3.4.15/NEWS
/usr/share/doc/zabbix-agent-3.4.15/README
/usr/share/man/man8/zabbix_agentd.8.gz
/var/log/zabbix
/var/run/zabbix
从上面的结果我们可以知道需要修改哪些配置文件,咱们依次来修改。
2.1 修改配置文件
-
/etc/logrotate.d/zabbix-agent
该文件是用来进行日志轮询的,我们需要修改其配置文件,让其生成的轮询文件的属主为app,修改结果如下:
/var/log/zabbix/zabbix_agentd.log {
weekly
rotate 12
compress
delaycompress
missingok
notifempty
create 0664 app app
}
-
/etc/zabbix/zabbix_agentd.conf
该文件是zabbix默认的配置文件,这里我们需要指定启动的用户,只需要修改User配置就行了。
#在User=zabbix新增一行即可
# User=zabbix
User=app
-
/usr/lib/tmpfiles.d/zabbix-agent.conf
该文件是用来控制生成临时文件的规则的,如果不修改的话,服务器重启后会因为临时目录属主为zabbix从而导致由于目录权限问题造成zabbix-agent启动失败。修改结果如下:
d /run/zabbix 0755 app app - -
2.2 修改目录属主
如果你的zabbix-agent在修改上述配置前已经启动过了,那么在修改配置后,在重启zabbix-agent前,你需要修改zabbix-agent的相关目录属主。
chown -R app. /var/log/zabbix /var/run/zabbix
做完以上修改,咱们的zabbix-agent就能使用app用户来启动了。
网友评论