Zabbix の主な監視対象、監視方法と、今回の話の範囲
今回は CentOS8 にエージェントレス (Zabbix エージェントはインストールしない) で SNMP 設定のみで監視する方式について説明します。
なお、Zabbix サーバについては以下の手順などにより構築されていることを前提とします。
用語の整理と今回の手順概要
まずは「ホスト (=監視対象)」側で 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 コアの数だけ自動でアイテムを追加してくれます。
上記の「Download」から xml ファイルをダウンロードします。
そして Web UI の左ペイン「設定」⇒「テンプレート」にて右上の「インポート」ボタンをクリックします。
「ファイルを選択」で先ほどダウンロードした .xml ファイルを選択し、「インポート」ボタンをクリックします。
すると「インポートに成功しました」と表示されます。
後は先ほどと同様に「設定」⇒「ホスト」で監視対象のホストを選択し、「テンプレート」タブの「新規テンプレートをリンク」に "SNMP Processor" と入力し、候補から「Template SNMP Processors」をクリックし、「更新」をクリックします。
これでコア単位での使用率が監視アイテムとして加わります。
SNMP Processors のアイテムのグラフ
SNMP Processors テンプレートはディスカバリの機能で自動で各コアの使用率を取得しますが、グラフは自動では生成されません。個別にセットアップが必要です。
「設定」⇒「ホスト」にて対象のホスト (ここでは Linux2) をクリックし、上部ペインの「グラフ」をクリックし、右上の「グラフの作成」ボタンをクリックします。
名前を付け、アイテムのところの「追加」リンクをクリックします。
今回は 2 コアなので 2 つの「Utilization of processor #」を選択しますが、4コアの場合は4つなど、環境に合わせて選択します。
元の画面に戻るので、「追加」ボタンをクリックすれば完成です。
「監視データ」⇒「ホスト」の対象ホストの「グラフ」リンクをクリックすると、「CPU コア毎の使用率」のグラフが表示されます。
コメント