zabbix

【入門】Zabbix のエージェントレス Linux 監視セットアップ

Zabbix の主な監視対象、監視方法と、今回の話の範囲

今回は CentOS8 にエージェントレス (Zabbix エージェントはインストールしない) で SNMP 設定のみで監視する方式について説明します。

なお、Zabbix サーバについては以下の手順などにより構築されていることを前提とします。

【入門】Zabbix (仮想アプライアンス) 6.0 LTS の Install, Setup 手順
仮想アプライアンス OVF のダウンロード&仮想マシンへインポート 以下サイトか...
Zabbix 6.0 LTS をRHEL8系, Nginx, MySQL でインストール/構築する
前提 RedHat8 系の OS (CentOS/Rocky Linux/Alm...

用語の整理と今回の手順概要

まずは「ホスト (=監視対象)」側で SNMP エージェントをセットアップします。その後、Zabbix サーバ側で以下の概念図のように、Zabbix サーバ側でホストグループの作成、テンプレートの設定、ホストの設定を行います。

監視項目のセットアップは大変なので、プリセットのテンプレートを使って監視を開始します。

内容としては CPU, メモリ, ディスク, Network の消費量などです。

CPU についてはプリインストールされたテンプレートだけでは 複数のコアの平均値しか取れないため、インターネット上に Share されている "Template SNMP Processors" テンプレートをインポートしセットアップします。これによりコア毎の CPU 使用率 (Utilization) を確認することができます。

SNMP エージェントのインストール

監視対象の CentOS8 に、Zabbix エージェントは入れませんが、SNMP エージェントはインストールします。

[SNMP agent のインストール]

# dnf -y install net-snmp net-snmp-utils
# cp -p /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_org
# vi /etc/snmp/snmpd.conf
~~~
   #com2sec notConfigUser  default    public	# Comment Out

   com2sec MyNet 192.168.1.0/24  expublic	# 追記

   #group   notConfigGroup v1     notConfigUser	# Comment Out
   #group   notConfigGroup v2c    notConfigUser	# Comment Out

   group  MyGroup  v2c  MyNet	# 追記

   view view_all included .1     # 追記

   #access  notConfigGroup ""      any       noauth    exact  view_all   none   none		# Comment Out

   access MyGroup  ""  any  noauth  exact  view_all   none   none	# 追記

   [Esc -> :wq]

[firewalld の設定と状態確認]

# firewall-cmd --permanent --add-service=snmp
# firewall-cmd --reload
# firewall-cmd --list-all

[Smux の無効化]
デフォルトでは Smux が有効化されており、tcp/199 番ポートが開放されています。firewalld で防げば影響はありませんが、気になる人向けに閉じる手順を示します。(ホストの IP が 192.168.1.41 の場合)

# vi /etc/sysconfig/snmpd
~~~]
   OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd 192.168.1.41 -I -smux"	# 追記

   [Esc -> :wq]

[サービス再起動と状態確認]

# systemctl restart snmpd
# systemctl status snmpd

Zabbix 側のホスト設定

まず、共通的に利用する SNMP コミュニティ名をマクロ変数に格納しておきます。こうしておくことで、もし後でコミュニティ名が変更になったとしてもこの1か所だけを変更すれば OK になります。

Zabbix の Web UI にログインし、左ペイン「管理」⇒「一般設定」にて上部の下矢印をクリックし、「マクロ」を選択します。

そして {$SNMP_COMMUNITY} の値としてコミュニティ名を設定します。今回の例では "expublic" としています。

次に、左ペイン「設定」⇒「ホスト」から「ホストの作成」をクリックします。

「ホスト名」に Linux の hostname 等わかりやすい名前を付けます。表示名は任意です。「グループ」はホストグループのことです。前述の通り、タグのような扱いです。

「インターフェース」の「エージェント」は Zabbix エージェントを指しますが、今回は使いませんので右端の「削除」をクリックし削除します。代わりに「追加」をクリックし、"SNMP" を選択します。

そして SNMP のところに監視対象のホストの IP アドレス (この例では 192.168.1.41) を設定します。また、この例では SNMP バージョンは v2c を使いますが、ここでの選択肢としては SNMPv2 となります。SNMP コミュニティ名は前述の通り、{$SNMP_COMMUNITY} のマクロ変数のままとします。

ここまで投入したら、次に上部ペインの「テンプレート」をクリックします。(「追加」ボタンはクリックしません。)

「新規テンプレートをリンク」のところで "Linux SNMP" と打つと候補が出てきます。今回は「Template OS Linux SNMP」を選択します。

そして「追加」ボタンをクリックすると、「ホストを追加しました」と表示されます。

これで少し時間をおけば左ペイン「監視データ」⇒「ホスト」の「エージェントの状態」のところで SNMP グリーン (正常) になっているのが見えます。

また、「テンプレート」を「ホストグループ」にもリンクしておくとテンプレート検索時にも便利になります。

繰り返しになりますが、ホストグループにホストとテンプレートを紐づけても、ホストとテンプレートは紐づきません。別途、ホストにてテンプレートの紐づけ (リンク) が必要です。

CPU 使用率をコア毎に計測する

「Template OS Linux by Zabbix agent」はとても有用ですが、1 点、冒頭の通り CPU 使用率が複数コアの平均になってしまいます。

oid を調べて 1 コアずつ設定していくのもよいですが、大変です。

そこで、インターネットでシェアされている「SNMP Processors discovery」というオフィシャルテンプレートを使います。これを使うと、ディスカバーの仕組みを利用し、CPU コアの数だけ自動でアイテムを追加してくれます。

Zabbix Integrations and Templates
Zabbix Team presents the official monito...

上記の「Download」から xml ファイルをダウンロードします。

そして Web UI の左ペイン「設定」⇒「テンプレート」にて右上の「インポート」ボタンをクリックします。

「ファイルを選択」で先ほどダウンロードした .xml ファイルを選択し、「インポート」ボタンをクリックします。

すると「インポートに成功しました」と表示されます。

後は先ほどと同様に「設定」⇒「ホスト」で監視対象のホストを選択し、「テンプレート」タブの「新規テンプレートをリンク」に "SNMP Processor" と入力し、候補から「Template SNMP Processors」をクリックし、「更新」をクリックします。

これでコア単位での使用率が監視アイテムとして加わります。

SNMP Processors のアイテムのグラフ

SNMP Processors テンプレートはディスカバリの機能で自動で各コアの使用率を取得しますが、グラフは自動では生成されません。個別にセットアップが必要です。

「設定」⇒「ホスト」にて対象のホスト (ここでは Linux2) をクリックし、上部ペインの「グラフ」をクリックし、右上の「グラフの作成」ボタンをクリックします。

名前を付け、アイテムのところの「追加」リンクをクリックします。

今回は 2 コアなので 2 つの「Utilization of processor #」を選択しますが、4コアの場合は4つなど、環境に合わせて選択します。

元の画面に戻るので、「追加」ボタンをクリックすれば完成です。

「監視データ」⇒「ホスト」の対象ホストの「グラフ」リンクをクリックすると、「CPU コア毎の使用率」のグラフが表示されます。

コメント

タイトルとURLをコピーしました