美文网首页
zabbix-agent 使用普通用户来运行

zabbix-agent 使用普通用户来运行

作者: super_pcm | 来源:发表于2021-10-27 09:15 被阅读0次

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用户来启动了。

相关文章

网友评论

      本文标题:zabbix-agent 使用普通用户来运行

      本文链接:https://www.haomeiwen.com/subject/jkbualtx.html