Zabbix7.0でサーバーを監視する(エージェント編)
- 2024.12.22
- パソコン
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 Agent | Zabbix 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 ~]#
-
前の記事
パブリッククラウドとプライベートクラウドの違い 2024.12.21
-
次の記事
Proxmoxの7から8へのアップグレード 2024.12.25