過去2回でZabbix サーバの構築方法と監視設定方法について説明を行ってきました。今回は監視設定の際に良く使用するZabbix Agent2のWindows、Linux環境での監視先のエージェント設定方法について説明します。
CONTENTS
Windows環境でのインストール方法
ではさっそくWindows 10でのZabbix Agent2のインストールと設定について説明していきます。
Zabbix Agent2のダウンロード
以下のリンクからZabbixのバージョンにあったエージェントをダウンロードする。
「Windows」>「Any」>「amd64」or「i386」>「5.0 LTS」>「No encryption」>「Archive」
今回は「Zabbix agent 2 v5.0.15」をダウンロードする。
「Zabbix Agent」と「Zabbix Agent2」の違い
Zabbixのエージェントは「Zabbix Agent」と「Zabbix Agent2」があります。詳細は以下に記載されていますが、簡単な違いとしては以下です。
🔗18 Agent vs agent 2 comparison
項目 | Zabbix Agent | Zabbix Agent2 |
---|---|---|
サポートされるOS | Linux, IBM AIX, FreeBSD, NetBSD, OpenBSD, HP-UX, Mac OS X, Solaris: 9, 10, 11, Windows | Linux, Windows |
監視項目 | 旧来の監視項目 | 旧来の監視項目に加え、Zabbix Native Monitorが可能。 例:Docker, Memcache, MySQLなどをネイティブ監視。 |
上記以外にもメリット・デメリットはありますが、Linux、Windowsにおける監視エージェントは「Zabbix Agent2」を使用しておくことを推奨します。一方で、「Zabbix Agent2」が対応していないOSでは「Zabbix Agent」を使います。
Zabbix Agent2の事前設定
ダウンロードした zabbix_agent2-5.0.15-windows-amd64-static.zip
を解凍し、 bin
、 conf
をC直下に作成した C:\zabbix_agent
というフォルダに保存します。
また、 C:\zabbix_agent\log
のようにログ保存用のフォルダを作成します。
次にzabbix_agentd.confを自分の環境に合わせて編集します。
# ログファイルの保存先の指定
# 先ほど作成したログフォルダを保存先に指定
# LogFile=c:\zabbix_agent2.log
LogFile=c:\zabbix_agent\log\zabbix_agent2.log
# 監視通信を許可するサーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、ZabbixサーバのIPアドレスを指定する
#Server=127.0.0.1
Server=[Zabbix ServerのIPアドレス]
# アクティブチェック監視データの送信先サーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、ZabbixサーバのIPアドレスを指定する
#ServerActive=127.0.0.1
ServerActive=[Zabbix ServerのIPアドレス]
# 自ホストのホスト名
# OS上のホスト名ではなく、Zabbix監視設定上のホスト名
#Hostname=Windows host
Hostname=UMilCL-PC
Code language: PHP (php)
ファイアウォールの通信許可設定
ファイアウォールの通信許可の設定を行います。
「コントロール パネル」>「システムとセキュリティ」>「Windows Defender ファイアウォール」>「詳細設定」>「受信の規則」>「新しい規則」から設定を行います。
- 規則の種類:ポート
- プロトコルおよびポート:TCP:10050
- 操作:接続を許可する
- プロファイル:変更なし
- 名前:Zabbix Agent2
Zabbix Agent2のインストール
管理者権限でコマンドプロンプトを起動し、先ほど作成した C:\zabbix_agent\bin
に移動し、インストールを行います。
cd c:\zabbix_agent\bin
zabbix_agent2.exe -c ..\conf\zabbix_agent2.conf -install
zabbix_agent2 [5804]: 'Zabbix Agent 2' installed succesfully
Code language: JavaScript (javascript)
Zabbix Agent2のアンインストール
間違ってインストールした場合は、以下の方法でアンインストールすることが可能です。
空の zabbix_agent2.win.conf
を c:\zabbix_agent\bin
配下に作成し、以下のコマンドを管理者権限で開いたコマンドプロンプトにて実行します。
cd c:\zabbix_agent\bin
zabbix_agent2.exe -uninstall
zabbix_agent2 [5528]: 'Zabbix Agent 2' uninstalled succesfully
Code language: JavaScript (javascript)
「サービス」を見て「Zabbix Agent 2」が追加されていることを確認します。起動していないようであれば、右クリックし、「開始」を選択します。
Zabbix Agent2の動作確認
ZabbixのWebUIにアクセスし、管理対象を追加します。「設定」>「ホスト」>「ホストの作成」から追加します。
- ホスト名:ホスト名はサーバのホスト名ではなく、先ほど「zabbix_agent2.conf」で設定したホスト名を使用してください。私の事前の構築では
Hostname=UMilCL-PC
で設定しています。 - ホストグループ:Zabbixで監視対象のホストをまとめたグループです。Zabbixではホストグループに対し、監視項目を設定したテンプレートを適用することができます。
今回はホストグループにWindows
を追加し、設定しています。 - IPアドレス:IPアドレスはagentをインストールしたPCのIPアドレスを設定してください。

監視設定のテンプレートは「Template OS Windows by Zabbix agent」を使用しました。

「ホスト」>「インベントリ」の設定を「無効」から「自動」に変更します。自動にするとZabbix エージェントが取得した情報で一部自動入力してくれます。

監視設定が動作しているか確認します。
「監視データ」>「ホスト」>「最新データ」で値が表示されているか確認します。直近の日時でデータが受信していればWindows環境での設定完了です。

Linux環境でのインストール方法
今回は以下の環境で構築しています。早速設定していきます。
- OS:CentOS8.3
- Zabbix Agent 2: 5.0.1
バージョン情報は以下となります。
# cat /etc/redhat-release
CentOS Linux release 8.3.2011 (Core)
# uname -r
4.18.0-240.el8.x86_64
Code language: PHP (php)
FIREWALLD無効化
セキュリティ上はFirewallを必要な通信のみ許可するように設定を加えた方がよいが、今回は説明簡略化のため、Firewalld無効化での説明とします。実運用の場合はFirewallへの通信許可をしてください。
次にコンソール上にて以下コマンド実行
[root@localhost umilcl]$ systemctl stop firewalld
[root@localhost umilcl]$ systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost umilcl]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
Code language: JavaScript (javascript)
SELinux無効化
SELinux のステータスをチェックするには、getenforce または sestatus コマンドを使います。
getenforce コマンドは、 Enforcing、Permissive、Disabled
のいずれかを返します。getenforce コマンドは、SELinux が有効な際に (SELinux ポリシールールが強制されている際に) Enforcing を返します。
SELINUX=disabled
を追加し、SELinuxの無効化が完了したら、再起動を行います。
[root@localhost umilcl]$ getenforce
Enforcing
[root@localhost umilcl]$ vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@localhost umilcl]# reboot
[root@localhost umilcl]# getenforce
Disabled
Code language: PHP (php)
Zabbix Agent2のインストール
Zabbixのリリース状況によっては、新しいバージョンのパッケージが公開されます。
以下の公式リポジトリで、「zabbix-release-5.0-x.el8.noarch.rpm」のバージョンを確認して、新しいバージョンが公開されている場合は、インストール対象パッケージのURLを適宜変更してください。
https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/
以下のコマンドを実行し、Zabbix 5.0の公式リポジトリをインストールします。
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
dnf clean all
Code language: JavaScript (javascript)
以下のコマンドを実行し、Zabbix Serverの関連パッケージをインストールします。
dnf -y install zabbix-agent2 zabbix-get
Code language: JavaScript (javascript)
zabbix_agent2.conf の設定
viなどのテキストエディタで、Zabbix Agent 2の設定ファイルを開きます。
vi /etc/zabbix/zabbix_agent2.conf
設定変更内容は以下の通りです。
監視を受け付けるサーバに関する設定を行います。
# 監視通信を許可するサーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、ZabbixサーバのIPアドレスを指定する
#Server=127.0.0.1
Server=[Zabbix ServerのIPアドレス]
# アクティブチェック監視データの送信先サーバIPアドレス
# Zabbixサーバ自身を監視する場合は値を変更しない
# 別サーバへエージェントをインストールする場合は、ZabbixサーバのIPアドレスを指定する
#ServerActive=127.0.0.1
ServerActive=[Zabbix ServerのIPアドレス]
# 自ホストのホスト名
# OS上のホスト名ではなく、Zabbix監視設定上のホスト名
#Hostname=Zabbix server
Hostname=UMilCL-LinuxSV
Code language: PHP (php)
サービスの自動起動設定
以下のコマンドを実行し、Zabbix Agent2の自動起動設定とサービス起動を行います。
# systemctl enable zabbix-agent2
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.
# systemctl start zabbix-agent2
Code language: PHP (php)
ログ監視用にZabbixがroot権限で実行可能なようにユニットサービス内のユーザ/グループ指定を変更します。
vi /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent2
Type=simple
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agent2.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix → User=root #zabbixからrootに変更
Group=zabbix → Group=root #zabbixからrootに変更
[Install]
WantedBy=multi-user.target
Code language: PHP (php)
設定変更前はzabbixユーザーで起動されているため、daemon-reloadし、その後再起動します。
systemctl daemon-reload
systemctl restart zabbix-agent2
Zabbix Agent2の動作確認
ZabbixのWebUIにアクセスし、管理対象を追加します。「設定」>「ホスト」>「ホストの作成」から追加します。
- ホスト名:ホスト名はサーバのホスト名ではなく、先ほど「zabbix_agent2.conf」で設定したホスト名を使用してください。私の事前の構築では
Hostname=UMilCL-LinuxSV
で設定しています。 - ホストグループ:Zabbixで監視対象のホストをまとめたグループです。Zabbixではホストグループに対し、監視項目を設定したテンプレートを適用することができます。
- IPアドレス:IPアドレスはagentをインストールしたPCのIPアドレスを設定してください。

監視設定のテンプレートは「Template OS Linux by Zabbix agent active」を使用しました。

「ホスト」>「インベントリ」の設定を「無効」から「自動」に変更します。自動にするとZabbix エージェントが取得した情報で一部自動入力してくれます。

監視設定が動作しているか確認します。
「監視データ」>「ホスト」>「最新データ」で値が表示されているか確認します。直近の日時でデータが受信していればLinux環境での設定完了です。

まとめ
今回はWindowsとLinux環境でのZabbix Agent2の設定方法を紹介しました。これでZabbixサーバ構築からZabbixエージェント構築、一般的な監視設定の方法までは設定できるようになったかと思います。
次回はログ取得とポート監視の方法について紹介したいと思います。