Zabbix7.0でサーバーを監視する(エージェント編)

Zabbix7.0でサーバーを監視する(エージェント編)

Zabbixの監視方法の復習

前回のインストール編では、監視についての概要とZabbix7.0LTSをインストールする方法を考えました。

次は実際に監視していく方法について、もう少し踏み込んで考えます。

監視の方法については2種類あり、「エージェント監視」と「エージェントレス監視」があることを考えました。それぞれの違いを表にしてみます。

項目エージェント監視エージェントレス監視
仕組み監視対象のサーバーや端末に「Zabbixエージェント」をインストールして監視データを中から収集するネットワークプロトコルやスクリプトを利用して監視対象にZabbixサーバーから直接アクセスし、監視データを外から収集する
メリット・詳細な情報収集が可能(CPU、メモリ、ディスク使用率など)
・プロセスやログ監視が容易
・ネットワーク負荷が軽い
・対象にエージェントをインストールする必要がない
・デバイスやシステムに依存せず監視可能(例:SNMP、ICMP)
デメリット・エージェントのインストールが必要
・設定管理するものが多い
・対応OSやバージョンに制約がある
・詳細な情報を収集するには制約がある
・ネットワーク負荷が増える場合がある
代表的な用途・内部サーバーのリソース監視
・アプリケーションの動作確認
・ネットワーク機器やIoTデバイスの監視
・対応エージェントがないシステムやレガシーデバイス
Zabbix Agent を利用して Linux/Windows のシステムリソース監視するSNMP を用いてスイッチやルーターの監視する
Ping を用いた死活監視を行う

用途が異なるので、システムやリソース、要件に合わせて最適なものを監視者する側が選択する必要がある。

ZabbixAgentとは

ZabbixAgentとは、Zabbixにバンドルされているエージェントで、WindowsサーバーとLinuxに対応したものが準備されている。

エージェントは「ZabbixAgent」と「ZabbixAgent2」の二種類がある。それぞれできることの範囲が異なるので、以下の表を参考にして最適なものを選択してほしい。

項目Zabbix AgentZabbix Agent2
基本情報従来型のエージェント
長期間の利用実績があり、安定性が高い
最新のエージェント
マルチスレッド対応でパフォーマンスが向上している
構造シングルスレッドで動作マルチスレッドで動作し、高負荷環境でも効率的に動作
プラグインサポートプラグイン非対応カスタムプラグインの追加が可能
プロセスの挙動シンプルな構造のため、軽量でリソース消費が少ない複雑な監視やカスタマイズ性を重視
ややリソース消費が多い
対応する項目基本的な監視項目に対応より高度な監視や、Go で記述された機能拡張が可能
推奨環境シンプルな環境や古いシステムの監視高負荷環境や、監視項目の柔軟性が求められる場合

共通点としては以下の通りです。

  • Zabbixサーバーとの通信を行い、監視データを送信する役割を持つ
  • 同じZabbixのプロトコルを使用するため、監視サーバーとの連携はどちらもスムーズである
  • OSにインストールして設定ファイルを使い、監視対象をカスタマイズ可能である

基本的には、「Zabbix Agent 2」を利用することを勧めます。

比較は公式ページでも行われており、7.0より前のバージョンであれば日本語で閲覧可能です。

https://www.zabbix.com/documentation/7.0/en/manual/appendix/agent_comparison

Zabbix Agent 2のインストール

前回と同じく使用するOSはRocky Linux8とする。もちろん別のOSでも構わないが、OSが異なると挙動が異なることがあるので、公式ページなどを参考にインストールを進めてほしい。

まずはリポジトリの追加を行う。

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-release-7.0-1.el8.noarch.rpm
dnf clean all

次に、インストールを実施する。

dnf install zabbix-agent2

次に設定を行う。「/etc/zabbix/zabbix_agent2.conf」を以下の内容で編集する。

Server=<Zabbix ServerのIP>
ServerActive=<Zabbix ServerのIP>
Hostname=<ホスト名>

リモートコマンドを有効にする場合は、以下の設定も追加します。

EnableRemoteCommands=1
AllowKey=system.run[*]

最後に、自動起動を有効にしてサービスを開始する。

systemctl enable zabbix-agent2
systemctl start zabbix-agent2

ファイヤーウォールの設定を行う。

sudo firewall-cmd --add-port=10050/tcp --permanent
sudo firewall-cmd --reload

これで、Zabbixサーバー側にホストを登録すれば、様々な値を収集できるようになります。その際は、以下の点に注意します。

  • ホスト名: エージェント設定の Hostname= と一致させる必要がある
  • エージェントインターフェース: エージェントのIPアドレスを指定する必要がある

別のホストを登録する方法として、オートディスカバリーでホストを自動で登録することも可能です。

以上で、エージェントのインストールは完了です。

追加ツールのインストール(リモートコマンドを有効にする場合)

リモートコマンドをエージェントで実行するためには、エージェント側の設定に加えて、サーバー側にも追加ツールが必要になります。

[root@zabbix-np ~]# dnf install zabbix-get
Last metadata expiration check: 0:35:22 ago on Sun 17 Nov 2024 08:50:21 PM +0545.
Dependencies resolved.
========================================================================================================================
 Package                     Architecture            Version                              Repository               Size
========================================================================================================================
Installing:
 zabbix-get                  x86_64                  7.0.5-release1.el9                   zabbix                  420 k

Transaction Summary
========================================================================================================================
Install  1 Package

Total download size: 420 k
Installed size: 2.1 M
Is this ok [y/N]: y
Downloading Packages:
zabbix-get-7.0.5-release1.el9.x86_64.rpm                                                136 kB/s | 420 kB     00:03
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   136 kB/s | 420 kB     00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                1/1
  Installing       : zabbix-get-7.0.5-release1.el9.x86_64                                                           1/1
  Running scriptlet: zabbix-get-7.0.5-release1.el9.x86_64                                                           1/1
  Verifying        : zabbix-get-7.0.5-release1.el9.x86_64                                                           1/1

Installed:
  zabbix-get-7.0.5-release1.el9.x86_64

Complete!
[root@zabbix-np ~]#