我正在尝试在CentOS7上运行zabbix-agent 3.0.4,systemd无法启动zabbix代理,来自journalctl -xe
PID file /run/zabbix/zabbix_agentd.pid not readable (yes?) after start.
node=localhost.localdomain type=SERVICE_START msg=audit(1475848200.601:17994): pid=1 uid=0 auid=4294967298 ses=...
zabbix-agent.service never wrote its PID file. Failing.
Failed to start Zabbix Agent.
没有权限错误,我尝试重新配置/tmp
和zabbix-agent.service
中zabbix_agentd.conf
文件夹的PID路径,但它不起作用。
非常奇怪,有人有想法吗?提前谢谢。
=====
调查一下,PID应该在/run/zabbix
文件夹下,我手动创建zabbix_agentd.pid
,并在1秒后消失。真的很奇怪。
答案 0 :(得分:5)
我有同样的问题,它与selinux有关。所以我通过semanage允许zabbix_agent_t
yum install policycoreutils-python
semanage permissive -a zabbix_agent_t
答案 1 :(得分:1)
为该pid文件提供完整权限7777将有助于解决此问题。
答案 2 :(得分:0)
我也有这个,它是Selinux,它被禁用但我必须这样做 运行命令
答案 3 :(得分:0)
这对我有用。
先决条件:Centos 7
,zabbix-server 3.4
和zabbix-agent 3.4
在同一主机上运行。
解决方案步骤:
安装zabbix-server
和zabbix-agent
(无论如何 - 通过yum
或从源代码构建)。
首先检查/etc/passwd
中是否存在单独的用户。如果已存在zabbix用户,请转到第4页。
为zabbix-server
和zabbix-agent
创建单独的群组和用户。
示例(您可以根据需要指定用户名):
groupadd zabbix-agent
useradd -g zabbix-agent zabbix-agent
groupadd zabbix
useradd -g zabbix zabbix
在Zabbix配置文件中指定PID和LOG文件位置。例如:
zabbix-server
:/etc/zabbix/zabbix_server.conf
:PidFile=/run/zabbix/zabbix_server.pid LogFile=/var/log/zabbix/zabbix_server.log
zabbix-agent
:/etc/zabbix/zabbix_agentd.conf
:PidFile=/run/zabbix-agent/zabbix-agent.pid LogFile=/var/log/zabbix-agent/zabbix-agent.log
创建适当的目录(如果它们之前没有创建),如配置文件中指定的那样,并更改此目录的所有者:
mkdir /var/log/zabbix-agent
mkdir /run/zabbix-agent
chown zabbix-agent:zabbix-agent /var/log/zabbix-agent
chown zabbix-agent:zabbix-agent /run/zabbix-agent
mkdir /var/log/zabbix
mkdir /run/zabbix
chown zabbix:zabbix /var/log/zabbix-agent
chown zabbix:zabbix /run/zabbix-agent
检查zabbix服务的systemd配置,并在Username=
部分中添加Group=
和[Service]
以运行服务。例如:
zabbix-server
:/etc/systemd/system/multi-user.target.wants/zabbix-server.service
:[Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/etc/zabbix/zabbix_server.conf" EnvironmentFile=-/etc/sysconfig/zabbix-server Type=forking Restart=on-failure PIDFile=/run/zabbix/zabbix_server.pid KillMode=control-group ExecStart=/usr/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 User=zabbix Group=zabbix [Install] WantedBy=multi-user.target
zabbix-agent
:/etc/systemd/system/multi-user.target.wants/zabbix-agent.service
:[Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf" EnvironmentFile=-/etc/sysconfig/zabbix-agent Type=forking Restart=on-failure PIDFile=/run/zabbix-agent/zabbix-agent.pid KillMode=control-group ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s User=zabbix-agent Group=zabbix-agent [Install] WantedBy=multi-user.target
/usr/lib/systemd/system/
OR
启用zabbix-agent.service
服务,从而在/etc/systemd/system/multi-user.target.wants/
目录中创建符号链接到/usr/lib/systemd/system/zabbix-agent.service
运行服务:
systemctl start zabbix-server
systemctl start zabbix-agent
检查已启动服务的用户(第一栏):
ps -aux | grep zabbix
或通过top
命令。
答案 4 :(得分:0)
禁用SELinux和Firewalld,一切顺利