0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOSでZabbixエージェントを正常に起動させるまでの対応

Posted at

macOSでZabbixエージェントを正常に起動させるまでの対応

はじめに

macOS環境でZabbixエージェントをインストールして運用しようとすると、様々な問題に直面することがあります。特にLaunchDaemonを用いた自動起動の設定では、適切な設定を行わないと正常に動作しないケースが多いです。本記事では、macOSにZabbixエージェントをインストールし、正常に起動させるまでの一連の流れと、遭遇した問題の解決策について解説します。

環境

  • macOS
  • Zabbix 7.2.6(Homebrew経由でインストール)

インストール方法

Zabbixエージェントをmacにインストールする方法はいくつかありますが、今回はHomebrewを利用したインストール方法を採用しました。

brew install zabbix

設定確認

インストール後、設定ファイルを確認します。設定ファイルは通常、以下の場所にあります。

/usr/local/etc/zabbix/zabbix_agentd.conf

主要な設定項目:

LogFile=/tmp/zabbix_agentd.log
Server=zabbix.example.com
ServerActive=zabbix.example.com
Hostname=your-host-name

起動確認

エージェントが起動しているかどうかを確認するには、以下のコマンドを使用します。

ps aux | grep zabbix_agentd
sudo launchctl list | grep zabbix

問題点と解決策

問題1: ユーザー権限の問題

Zabbixエージェントは通常、専用のzabbixユーザーで実行する必要があります。しかし、そのユーザーが存在しない場合、以下のようなエラーが発生します。

zabbix_agentd: user zabbix does not exist
zabbix_agentd: cannot run as root!

解決策

zabbixユーザーとグループを作成します。

sudo dscl . -create /Groups/zabbix
sudo dscl . -create /Groups/zabbix PrimaryGroupID 1999
sudo dscl . -create /Groups/zabbix Password \*

sudo dscl . -create /Users/zabbix
sudo dscl . -create /Users/zabbix UniqueID 1999
sudo dscl . -create /Users/zabbix PrimaryGroupID 1999
sudo dscl . -create /Users/zabbix UserShell /usr/bin/false
sudo dscl . -create /Users/zabbix RealName "Zabbix Agent"
sudo dscl . -create /Users/zabbix NFSHomeDirectory /var/empty

そして、ログディレクトリとPIDファイルディレクトリの所有権をzabbixユーザーに変更します。

sudo mkdir -p /var/log/zabbix
sudo chown zabbix:zabbix /var/log/zabbix
sudo chmod 755 /var/log/zabbix

sudo touch /tmp/zabbix_agentd.log
sudo chown zabbix:zabbix /tmp/zabbix_agentd.log

問題2: LaunchDaemonの設定問題

macOSではLaunchDaemonを使用してサービスを自動起動させますが、適切な設定を行わないと、起動時に問題が発生します。

解決策

適切なLaunchDaemonの設定ファイルを作成します。

sudo vim /Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist

以下の内容を記述します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.zabbix.zabbix_agentd</string>
    <key>UserName</key>
    <string>zabbix</string>
    <key>GroupName</key>
    <string>zabbix</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/zabbix_agentd</string>
        <string>-f</string>
        <string>-c</string>
        <string>/usr/local/etc/zabbix/zabbix_agentd.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/zabbix_agentd.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/zabbix_agentd.out</string>
    <key>Debug</key>
    <true/>
</dict>
</plist>

問題3: リスタートループ

LaunchDaemonの設定が完了しても、エージェントがすぐに終了して再起動を繰り返す「リスタートループ」が発生することがあります。ログを見ると、「Successfully spawned zabbix_agentd」の後に「service inactive」というメッセージが繰り返し表示されます。

解決策

この問題は、Zabbixエージェントがデフォルトでデーモン化(バックグラウンドプロセスに移行)するためです。LaunchDaemonと連携させるためには、-fオプション(フォアグラウンドモード)を追加する必要があります。

plistファイルのProgramArguments配列に-fオプションを追加します。

<key>ProgramArguments</key>
<array>
    <string>/usr/local/sbin/zabbix_agentd</string>
    <string>-f</string>
    <string>-c</string>
    <string>/usr/local/etc/zabbix/zabbix_agentd.conf</string>
</array>

この変更により、Zabbixエージェントはフォアグラウンドモードで実行され、LaunchDaemonが適切にプロセスを監視・管理できるようになります。

設定の適用と確認

変更した設定を適用するには、以下のコマンドを実行します。

sudo launchctl unload /Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist
sudo launchctl load -w /Library/LaunchDaemons/com.zabbix.zabbix_agentd.plist

そして、正常に起動しているか確認します。

sudo launchctl list | grep zabbix

正常に起動している場合、以下のような出力が表示されます(PIDと終了コードが表示される)。

4422	0	com.zabbix.zabbix_agentd

おわりに

macOSでZabbixエージェントを正常に起動させるには、いくつかの注意点があります。特に、LaunchDaemonでの管理にはフォアグラウンドモード(-fオプション)を使用することが重要です。この設定により、システム起動時に自動的にエージェントが起動し、安定した監視環境を構築できます。

また、代替方法として、設定ファイル内でForeground=1を設定することでも同様の効果が得られます。どちらの方法を選ぶかは環境や好みによって決めるとよいでしょう。

今回の対応により、macOS環境でもZabbixエージェントを安定して運用することができるようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?