インストールしたZabbixエージェントをOS起動のタイミングで実行

前回の手順でインストールが完了しても、実はMacを再起動したりすると、Zabbixエージェントの起動は手動でやらなくちゃいけない。

とコマンドを実行すれば、インストールまで完了。
あとは、/usr/local/etc/zabbix_agentd.confを自分の環境に合わせて変更して、zabbix-agentを起動。

[From 訳あって、またZabbixを使い始めたので、OS Xも監視対象にしてみた | Software - Soukaku's HENA-CHOKO Blog]

ウチでは、Mac miniは基本起動させっぱなしなんだけど、やっぱり手動でいちいち起動させるのも、面倒。
なので、自動起動できるように設定をしてみた。


基本的には、このページに書いてあるようにファイルを準備すれば、OK。

前節のように,コマンドラインから/usr/libexec/slapdを実行すれば,デーモンが起動しますが,コンピュータを起動するたびに手動で実行するのは面倒です.また,デーモンを停止するときに,PIDを調べてkillするというのも手がかかります.そこで,デーモンの起動を自動化し,また終了も簡単にできるようにします.

[From デーモンの自動起動]

ウチでは、Zabbixエージェント用にこんな感じでファイルを書きました。

[soukaku@messiah|~]$ ls -l /Library/StartupItems/zabbix_agent/
total 16
-rw-rw-r--  1 root  wheel   65 12  3 20:42 StartupParameters.plist
-rwxr--r--  1 root  wheel  600 12  3 20:54 zabbix_agent
[soukaku@messiah|~]$ more /Library/StartupItems/zabbix_agent/zabbix_agent
#!/bin/sh
. /etc/rc.common
StartService ()
{
	ConsoleMessage "Starting Zabbix Agent"
	/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
}
StopService ()
{
	ConsoleMessage "Stopping Zabbix Agent"
	if [ -f /tmp/zabbix_agentd.pid ]
	then
		PID=$(cat /tmp/zabbix_agentd.pid)
		kill -TERM $PID
	else
		ConsoleMessage "/tmp/zabbix_agentd.pid does not exist."
	fi
}
RestartService ()
{
	ConsoleMessage "Restarting Zabbix Agent"
	StopService
	StartService
}
RunService "$1"
[soukaku@messiah|~]$ more /Library/StartupItems/zabbix_agent/StartupParameters.plist
{
	Description	= "Zabbix Agent";
	Provides	= ("Zabbix_Agent");
}

それと、作った起動スクリプトを使ってZabbixエージェントを起動しようとしても、エラーが返ってきて起動しない。

[soukaku@messiah|~]$ sudo /Library/StartupItems/zabbix_agent/zabbix_agent start
Starting Zabbix Agent
zabbix_agentd [76910]: user zabbix does not exist
zabbix_agentd [76910]: cannot run as root!

エラーメッセージにある通り「zabbixユーザが居ないし、rootでは実行できない」というのが原因なので、システム環境設定の"ユーザとグループ"でzabbixユーザを作成した後に、改めて起動スクリプトを実行すると、

[soukaku@messiah|~]$ sudo /Library/StartupItems/zabbix_agent/zabbix_agent start
Starting Zabbix Agent
[soukaku@messiah|~]$ ps -ef | grep zabbix
  505 76978     1   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76979 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76980 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76981 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76982 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76983 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76984 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  505 76985 76978   0 11:49PM ??         0:00.00 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
  501 76992 50062   0 11:49PM ttys000    0:00.00 grep zabbix

のように正常起動します。
#zabbixユーザは、共有のみユーザで作っても、エージェントの実行には問題ないようです。

コレで再起動かけても、Zabbixエージェントの起動を忘れた、ということは無さそうです。

トラックバック(0)

コメントする