運用コスト低減に有効なZabbix2.0新機能

2012年4月20日(金)
池田 大輔

SNMPを利用したディスカバリ

SNMP監視を行う場合には、SNMPのOID情報を検出することが可能です。

例えば、ネットワークインタフェース毎のI/OをSNMP監視する場合、従来のZabbixでは以下のような手順で監視アイテムの設定を行う必要がありました※3

Zabbix1.8での設定方法

まず、監視したい値が取得できるOIDを確認します(snmpwalkコマンドを利用)。

IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
・・・
IF-MIB::ifInOctets.1 = Counter32: 2090321636
IF-MIB::ifInOctets.2 = Counter32: 303329
IF-MIB::ifInOctets.3 = Counter32: 1092352852
・・・
IF-MIB::ifOutOctets.1 = Counter32: 2090321636
IF-MIB::ifOutOctets.2 = Counter32: 1560
IF-MIB::ifOutOctets.3 = Counter32: 1710052802

次に確認したOIDを元に1つずつアイテム登録します。上記結果の場合、lo,eth0,eth1それぞれのアイテムを登録する必要があります。この時、監視対象機器の種別毎にIndex番号の割り振り方が異なることがあるため、それぞれ確認の必要がありました(例えば、eth0のInputパケット量の監視のためには、ifDescrの値が”eth0”のOIDを確認し、そのIndex番号を控える。そして、そのIndex番号を持ったifInOctetsのOIDを監視アイテムとして登録する)。

Zabbix1.8系ではダイナミックインデックス機能※4があり、設定が簡素化される場合もありますが、それでも設定には一手間必要でした。

Zabbix2.0での設定方法

Zabbix2.0では次のように設定することで容易にIndexを取得することが可能になりました。Zabbix Agentを利用したディスカバリの設定と同様、テンプレートまたはホストの「ディスカバリ」にディスカバリルールを追加します。

図6:SNMP OIDディスカバリルール設定画面(クリックで拡大)

次にアイテムを登録します。アイテムの登録時には、{#SNMPINDEX}、{#SNMPVALUE}の2つのマクロが利用可能です。

例えば、以下の図のように設定することで各インタフェースの出力パケット数を監視できます。この時、Index番号だけでなく、ディスカバリで得られた値(ifDescrの値)が{#SNMPVALUE}に含まれているため、アイテム名にはこの値を使うといいかと思います。

図7:SNMP OIDディスカバリを利用したアイテム登録画面(クリックで拡大)

このように、Zabbix Agent監視、SNMP監視それぞれにおいて、同じような設定はできる限り1回で済むように改良されています。

ローレベルディスカバリ利用時の注意点

ローレベルディスカバリ機能を使うことで自動的に監視アイテムの登録が可能になりますが、監視したくない項目まで監視アイテムとして登録される恐れがあります。

例えば、ファイルシステムのディスカバリであれば、Linuxの場合、「/proc/mounts」に記載されているファイルシステムの情報が全て取得されます。ネットワークインタフェースの場合は、「/proc/net/dev」です。SNMPの場合、先述の例であればifDescrで出力される全てが取得されます。無駄な監視を避けるため、ディスカバリ設定の「正規表現」を正しく設定し、不要な監視アイテムを登録しないようにした方がいいかと思います。

マップ機能の改良

最後に、Zabbix2.0でのマップ機能の改良点について紹介します。

マップ機能の改良点としては以下のような点が挙げられます。

  • アイコンセットのリニューアル
  • アイコンの自動選択機能
  • ホストグループ、ホスト、トリガー等アイコン種別毎のラベルタイプ指定機能
  • ホストグループに所属する全ホストの表示機能

このうち、アイコンの自動選択機能について紹介します。これまでは、各アイコンの画像は全て手動で設定する必要がありました。Zabbix2.0ではこの点が改良され、ホストインベントリの情報を元に、アイコン画像とのマッピングをあらかじめ設定する機能が追加されています。

例えば、ホストインベントリの「Type」の項目に「Server」、「Router」のような設定がされていて、Type毎にアイコン画像を分ける場合、「管理」→「一般設定」→「アイコンのマッピング」で以下のように設定します。

図8:アイコンのマッピング設定画面(クリックで拡大)

あとは、マップ作成時に「アイコンの自動マッピング」の設定で作成したマッピングを選択、アイコン作成時に「アイコンの自動選択」にチェックを入れることで「Type」に応じたアイコンが表示されるようになります。

あまり大きな機能ではありませんが、マップ機能とホストインベントリ機能との連携ということで、Zabbixが持っている各機能間の連携が少しずつ強化されてきていると感じました。

図9:マップ(クリックで拡大)

まとめ

今回紹介した機能以外にも、Zabbix2.0では設定や運用管理に便利な機能が実装されています。マップ機能などは、まだまだ設定に時間がかかってしまうなど改善ポイントはあるかとは思いますが、Zabbix2.0で大量機器の監視環境構築・運用がますます行いやすくなってきていると思います。今後開発される予定のZabbix2.2では、仮想化環境の監視や管理に適した機能も実装されるそうです※5

ユーザーからの要望なども取り入れて開発されているので、環境の変化に沿ったツールとして進化していくことが期待されます。

次回は、Zabbix1.8系からZabbix2.0へのバージョンアップの方法について紹介したいと思います。

【参考URL】

TIS株式会社

Twitter : @ike_dai
TIS株式会社OSS推進室所属。社内向けシステムの保守運用業務を経験後、クラウド時代の効率的な統合運用管理をテーマに活動中。特に、OSSを駆使した運用のエコシステム実現を目指し、Zabbix,fluentd,Serverspec,Ansibleなどの導入や検証に取り組む。技術検証成果などを技術ブログ『Tech-Sketch』にて発信中。著書:『Zabbix統合監視徹底活用 - 複雑化・大規模化するインフラの一元管理』

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています