
なのまるです。
CentOS7のサーバーをセットアップしていたらハマったので、メモです!
もくじ
状況
/var/log/zabbix/zabbix_agentd.log にこんなログが出ていて、プロセスが止まらない1 2 3 4 5 6 | zabbix_agentd [20982]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable zabbix_agentd [29317]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable zabbix_agentd [12198]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable zabbix_agentd [17390]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable zabbix_agentd [27464]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable zabbix_agentd [27564]: Is this process already running? Could not lock PID file [ /tmp/zabbix_agentd .pid]: [11] Resource temporarily unavailable |
調査
原因がわからないし、「/tmp/zabbix_agentd.pid」も出来ている・・・。何かがおかしい。他のサーバーから持ってきたconfを使っているからか?https://github.com/zabbix/zabbix/blob/trunk/src/zabbix_agent/zabbix_agentd.c、Cのソースコード読めないけど見てみたら、「configのPidFileがnullだったら"/tmp/zabbix_agentd.pid"にする」みたいなこと書いてある。
CentOS7で?なのか自分の環境だけでなのかわからないが、「/tmp」の挙動がおかしいらしい・・・
ちなみにこの環境はSELinuxが無効になっていた。
/usr/lib/systemd/system/zabbix-agent.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [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=always PIDFile= /run/zabbix/zabbix_agentd .pid KillMode=process ExecStart= /usr/sbin/zabbix_agentd -c $CONFFILE ~略~ |
zabbix-agent.serviceには、こんな風に書かれているけどどうやら読んでないらしい・・・
デフォルトの/etc/zabbix/zabbix_agentd.confの中には指定してある
1 2 3 4 5 6 7 8 | ### Option: PidFile # Name of PID file. # # Mandatory: no # Default: # PidFile=/tmp/zabbix_agentd.pid PidFile= /var/run/zabbix/zabbix_agentd .pid |
まとめ
- CentOS7に他のサーバーから持ってきた、confを適用するときは十分に気をつけなくてはいけない!
- そもそも、「/usr/lib/systemd/system/zabbix-agent.service」に書いてある意味って何?
書いてあるなら読んで!って思ったけど、Cのコード修正方法わからないからpull req出せない・・・orz - CentOS7で「/tmp」の扱い変わったの??