ITインフラSummit2014 「ネットワークを監視する」Zabbixの活用事例の資料です。
「ネットワークを監視する」Zabbixの活用事例株式会社サイバーエージェントアドテク本部 山本 孔明@ITインフラSummit 2014
View Slide
1. はじめに ~自己紹介と今回の目的~2. Why Zabbix??3. 弊社でのZabbix活用事例4. Zabbix APIの活用5. おわりに ~今後やりたいこと~Agenda
自己紹介• AdTech STUDIOとは?– サイバーエージェントグループ内でアドテクノロジーに携わっていたエンジニアを結集させた組織– 各サービスの開発部門を集結し、横断した組織としてアドテクスタジオを設立• プロフィール– 今年からアドテクスタジオのインフラエンジニア(主にネットワーク)を担当– プロダクトはCisco、Brocade、DELL、F5などネットワーク機器中心– 職歴• 某Sierにてネットワーク設計・構築• ストレージ(EMC/NetApp)のプリセールス• その他– Twitter @komeinw
オープンソースのサーバ監視ソフトウェアとして注目されているZabbixですが、「Zabbixはネットワークの監視にも上手く使えます」ということを伝えたい(「そんなの知ってるよ。」という人は後半あたりから聞いてください)今回の目的
導入にあたり・・・• 背景– アドテクスタジオにはインフラエンジニアは数名しかいない– そのため、監視・運用周りを外部委託していた– 台数が増えるほど増加する運用コスト– スピード感の維持• 結果– インハウスで運用する– ただし、省力– 運用周りとして、まずは性能監視から費用は安くしたいし、でも楽もしたい、細かいチューニングだってしたいし、必要になったらすぐに反映したい
Why Zabbix??• 細かい設定が簡単にできる– 乗数、差分、Calculateなど– 1秒間隔の監視も可能– Zabbix 2.0からLLDに対応している• サーバサイドで使われている– 同じ画面で切り分けできる– テンプレートをImportして他で監視している項目も簡単に監視項目へ追加できる• APIが充実している• オープンソース
1. はじめに ~自己紹介と今回の目的~2. Why Zabbix??3. 弊社でのZabbix活用事例4. Zabbix APIの活用5. おわりに ~今後やりたいこと~Agenda
使用イメージ• ZabbixサーバのスペックDell Inc. PowerEdge R210Linux version 2.6.32-431.11.2.el6.x86_64CPU model name : Intel(R) Xeon(R) CPU E31220L @ 2.20GHz 4coreMemTotal: 8030508 kB• アイテム/トリガー数– 50097/31588– インタフェース分増えるので一部Disableへ変更中• 監視対象– ネットワーク機器(サーバやアプリの監視は別)– Cisco(Catalyst)、Brocade(VDX)、DELL(Force10)、F5(BIG-IP)等– 死活監視– Ping、SNMP、SNMP Trap余っていたサーバを拝借まだ全台入っておらず・・・
画面イメージ①①よく使うスクリーンを登録②Zabbixが監視しているデータサマリ③ディスカバリ機能で検出された機器④グループごとの障害ホスト数⑤障害のレベルごとの件数⑦最新20件の検知した障害⑥WEB監視サマリ※分かりやすいように多くの障害あがるようにしている環境の画面を表示しています
画面イメージ②①バーを動かして対象期間を変更②詳しくみたい箇所を反転させて対象期間を変更可能③保存しているトレンドデータから最小、平均、最大値を表示
画面イメージ③操作方法は通常のグラフと同じです
他の可視項目や機能など• スクリーンはDynamic Itemに対応• トリガーの障害判定も細かく設定可能• マップも作成可能• LLDによりMIB値の一括取得可能• 正規表現によるフィルタリングやマクロも使用可能・・・etc チューニングが細かくできる!
で、どうやって登録してるのか?– 基本的に自動ですQ:画面の隅に新しいホストが検出されました的な?– ちゃんとメーカーを認識して登録されます。Q:グラフの設定とかは後からでしょ?– いいえ、グラフも同時に生成されます。
登録までのフロー• 仕組みはとても簡単です1. Zabbixのディスカバリ機能を使用して、IPレンジで新規ホストを検出2. ディスカバリのルールには特定のOIDのチェックを含める3. OIDのチェック結果により、予め準備したホストグループ・テンプレートを適用。合わせてホスト登録も実施する。4. テンプレートに所属するアイテム・トリガー・グラフが登録されるLBに新しくVirtual Serverが作成された場合も自動で検出してグラフを生成します。申請→対応の待ち時間から解放・・・。設定忘れもない。
登録のポイント• 結局、大変なのは各メーカーごとの「テンプレートを準備」するところ– NW機器向けのテンプレートはまとまっていなく探すのが大変• ということで、今回以下のテンプレートを公開します• Cisco Catalyst、Brocade VDX、DELL Force10、F5 BIG-IP基本的に性能監視用途として作成• なんで公開するの?– ある程度まとめて公開することで、利用者がZabbixを使用するハードルが下がる– これをキッカケにネットワーク利用促進になってほしい– (オープンソースで使用できていることへの感謝)…取得方法は後程。あくまでも個人の範囲での提供です。
テンプレートの一例Template Brocade VDX|---- Application|---- General|---- (Template ICMP)ICMP|---- (Template Network Interface)interface|---- (Template SNMP traps)snmptraps|---- Item|---- CPU Usage|---- Memory Usage|---- (Template ICMP)ICMP ping|---- (Template ICMP)ICMP loss|---- (Template ICMP)ICMP response time|---- (Template SNMP traps)snmptraps linkup|---- (Template SNMP traps)snmptraps linkdown|---- (Template SNMP traps)snmptraps other|---- (Template SNMP traps VDX)VCS node remove|---- (Template SNMP traps VDX)VCS node disconnect|---- (Template SNMP traps VDX)vLAG Split Detected|---- Trigger|---- CPU load 60%|---- CPU load 80%|---- (Template ICMP)Ping loss is too high|---- (Template ICMP)Response time is too high|---- (Template ICMP)unavailable|---- Screen|---- Graph|---- CPU Usage|---- Memory Usage|---- LLD|--- PowerSupply|--- FAN|--- Temperature|--- (Template Network Interface)Interface|---- Item|---- interface status|---- input rate|---- input errors|---- output errors|---- output rate|---- output discards|---- Trigger(略)|---- Graph(略)モデルによる個体差を吸収するため極力LLDを使用標準で使用するテンプレートは別のテンプレートとリンクして共通化Swichは標準MIBでインタフェース周りの値が取得可能なため、比較的作成しやすい。VDX用のsnmp traptemplateは別途準備
弊社でのZabbix API活用• Zabbixの基本機能でできないことでも、APIを利用してある程度のことが実現できます。• 活用事例①– ホストの棚卸しとコンフィグバックアップ• 活用事例②– マルチテナント用のカスタマイズページ• 活用事例③– 特定のグラフを決まった時間にメール送信する
活用事例①• ホストの棚卸しとバックアップZabbixに自動で溜まっていく最新ホスト一覧を利用するため、メンテナンスフリーです。ディスカバリ自動登録された監視データモデル別ホスト一覧Zabbix APIhost.get+SessionIDPythonConfigファイル
活用事例②• マルチテナント用のカスタマイズページIDはサーバ再起動で変わるため「graph.get」も合わせて実施すると良い。Zabbix APIuser.loginPythonURL(GraphID+SessionID+Option)システム担当者ごとのグラフのみを表示WEB監視
活用事例③• 特定のグラフを決まった時間に送信する②の応用で簡単に実現可能ですZabbix APIuser.loginPythonURL(GraphID+Cookie+Option)pngファイルとして保存必要なグラフをまとめて特定の日時に送信
今後やりたいこと• テンプレートのチューニング– 監視項目の追加– SnmpTrapのトリガーの追加– 突発的な値の上昇へのトリガー対応(現時点のテンプレートでできていない)• Syslogとの連携– Rsyslog(Zabbixサーバに同居)で受信した特定のメッセージをSnmpTrapとして送信、Zaibbxのトリガーとして扱う。• カスタマイズページの拡充– 他の機器のAPI経由で取得した情報追加(BIG-IPのNode追加、一覧表示など、メンテナンスJOB用)
本日出てきた Zabbix template 等は下記に上げてありますhttps://github.com/makocchi-git/it_infra_summit_2014ご清聴ありがとうございました