Slide 1

Slide 1 text

「ネットワークを監視する」 Zabbixの活用事例 株式会社サイバーエージェント アドテク本部 山本 孔明 @ITインフラSummit 2014

Slide 2

Slide 2 text

1. はじめに ~自己紹介と今回の目的~ 2. Why Zabbix?? 3. 弊社でのZabbix活用事例 4. Zabbix APIの活用 5. おわりに ~今後やりたいこと~ Agenda

Slide 3

Slide 3 text

自己紹介 • AdTech STUDIOとは? – サイバーエージェントグループ内でアドテクノロジーに携わっていたエンジニ アを結集させた組織 – 各サービスの開発部門を集結し、横断した組織としてアドテクスタジオを設立 • プロフィール – 今年からアドテクスタジオのインフラエンジニア(主にネットワーク)を 担当 – プロダクトはCisco、Brocade、DELL、F5などネットワーク機器中心 – 職歴 • 某Sierにてネットワーク設計・構築 • ストレージ(EMC/NetApp)のプリセールス • その他 – Twitter @komeinw

Slide 4

Slide 4 text

オープンソースのサーバ監視ソフトウェアとして 注目されているZabbixですが、 「Zabbixはネットワークの 監視にも上手く使えます」 ということを伝えたい (「そんなの知ってるよ。」という人は後半あたりから聞いてください) 今回の目的

Slide 5

Slide 5 text

1. はじめに ~自己紹介と今回の目的~ 2. Why Zabbix?? 3. 弊社でのZabbix活用事例 4. Zabbix APIの活用 5. おわりに ~今後やりたいこと~ Agenda

Slide 6

Slide 6 text

導入にあたり・・・ • 背景 – アドテクスタジオにはインフラエンジニアは数名しかいない – そのため、監視・運用周りを外部委託していた – 台数が増えるほど増加する運用コスト – スピード感の維持 • 結果 – インハウスで運用する – ただし、省力 – 運用周りとして、まずは性能監視から 費用は安くしたいし、でも楽もしたい、細かいチューニングだってし たいし、必要になったらすぐに反映したい

Slide 7

Slide 7 text

Why Zabbix?? • 細かい設定が簡単にできる – 乗数、差分、Calculateなど – 1秒間隔の監視も可能 – Zabbix 2.0からLLDに対応している • サーバサイドで使われている – 同じ画面で切り分けできる – テンプレートをImportして他で監視している項目も簡単に監視項目へ 追加できる • APIが充実している • オープンソース

Slide 8

Slide 8 text

1. はじめに ~自己紹介と今回の目的~ 2. Why Zabbix?? 3. 弊社でのZabbix活用事例 4. Zabbix APIの活用 5. おわりに ~今後やりたいこと~ Agenda

Slide 9

Slide 9 text

使用イメージ • Zabbixサーバのスペック Dell Inc. PowerEdge R210 Linux version 2.6.32-431.11.2.el6.x86_64 CPU model name : Intel(R) Xeon(R) CPU E31220L @ 2.20GHz 4core MemTotal: 8030508 kB • アイテム/トリガー数 – 50097/31588 – インタフェース分増えるので一部Disableへ変更中 • 監視対象 – ネットワーク機器(サーバやアプリの監視は別) – Cisco(Catalyst)、Brocade(VDX)、DELL(Force10)、F5(BIG-IP)等 – 死活監視 – Ping、SNMP、SNMP Trap 余っていた サーバを拝借 まだ全台入っ ておらず・・・

Slide 10

Slide 10 text

画面イメージ① ①よく使うスクリーンを登録 ②Zabbixが監視している データサマリ ③ディスカバリ機能で 検出された機器 ④グループごとの 障害ホスト数 ⑤障害のレベルごと の件数 ⑦最新20件の検知した障害 ⑥WEB監視サマリ ※分かりやすいように多くの障害あがるようにしている環境の画面を表示しています

Slide 11

Slide 11 text

画面イメージ② ①バーを動かして対象期間を変更 ②詳しくみたい箇所を反転させて 対象期間を変更可能 ③保存しているトレンドデータから最小、平均、最大値を表示

Slide 12

Slide 12 text

画面イメージ③ 操作方法は通常のグラフと同じです

Slide 13

Slide 13 text

他の可視項目や機能など • スクリーンはDynamic Itemに対応 • トリガーの障害判定も細かく設定可能 • マップも作成可能 • LLDによりMIB値の一括取得可能 • 正規表現によるフィルタリングやマクロも使用可能 ・・・etc チューニングが 細かくできる!

Slide 14

Slide 14 text

で、どうやって登録してるのか? – 基本的に自動です Q:画面の隅に新しいホストが検出されました的な? – ちゃんとメーカーを認識して登録されます。 Q:グラフの設定とかは後からでしょ? – いいえ、グラフも同時に生成されます。

Slide 15

Slide 15 text

登録までのフロー • 仕組みはとても簡単です 1. Zabbixのディスカバリ機能を使用して、IPレンジで新規ホスト を検出 2. ディスカバリのルールには特定のOIDのチェックを含める 3. OIDのチェック結果により、予め準備したホストグループ・テ ンプレートを適用。合わせてホスト登録も実施する。 4. テンプレートに所属するアイテム・トリガー・グラフが登録さ れる LBに新しくVirtual Serverが作成された場合も自動で検出してグラフを生成します。 申請→対応の待ち時間から解放・・・。設定忘れもない。

Slide 16

Slide 16 text

登録のポイント • 結局、大変なのは各メーカーごとの「テンプレートを準備」するとこ ろ – NW機器向けのテンプレートはまとまっていなく探すのが大変 • ということで、今回以下のテンプレートを公開します • Cisco Catalyst、Brocade VDX、DELL Force10、F5 BIG-IP 基本的に性能監視用途として作成 • なんで公開するの? – ある程度まとめて公開することで、利用者がZabbixを使用するハードル が下がる – これをキッカケにネットワーク利用促進になってほしい – (オープンソースで使用できていることへの感謝) …取得方法は後程。あくまでも個人の範囲での提供です。

Slide 17

Slide 17 text

テンプレートの一例 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 trap templateは別途準備

Slide 18

Slide 18 text

1. はじめに ~自己紹介と今回の目的~ 2. Why Zabbix?? 3. 弊社でのZabbix活用事例 4. Zabbix APIの活用 5. おわりに ~今後やりたいこと~ Agenda

Slide 19

Slide 19 text

弊社でのZabbix API活用 • Zabbixの基本機能でできないことでも、APIを利用してある程 度のことが実現できます。 • 活用事例① – ホストの棚卸しとコンフィグバックアップ • 活用事例② – マルチテナント用のカスタマイズページ • 活用事例③ – 特定のグラフを決まった時間にメール送信する

Slide 20

Slide 20 text

活用事例① • ホストの棚卸しとバックアップ Zabbixに自動で溜まっていく最新ホスト一覧を利用するため、 メンテナンスフリーです。 ディスカバリ 自動登録された 監視データ モデル別ホスト一覧 Zabbix API host.get +SessionID Python Configファイル

Slide 21

Slide 21 text

活用事例② • マルチテナント用のカスタマイズページ IDはサーバ再起動で変わるため「graph.get」も合わせて 実施すると良い。 Zabbix API user.login Python URL(GraphID+SessionID+Option) システム担当者ごとの グラフのみを表示 WEB 監視

Slide 22

Slide 22 text

活用事例③ • 特定のグラフを決まった時間に送信する ②の応用で簡単に実現可能です Zabbix API user.login Python URL(GraphID+Cookie+Option) pngファイルとして保存 必要なグラフをまとめて 特定の日時に送信

Slide 23

Slide 23 text

1. はじめに ~自己紹介と今回の目的~ 2. Why Zabbix?? 3. 弊社でのZabbix活用事例 4. Zabbix APIの活用 5. おわりに ~今後やりたいこと~ Agenda

Slide 24

Slide 24 text

今後やりたいこと • テンプレートのチューニング – 監視項目の追加 – SnmpTrapのトリガーの追加 – 突発的な値の上昇へのトリガー対応 (現時点のテンプレートでできていない) • Syslogとの連携 – Rsyslog(Zabbixサーバに同居)で受信した特定のメッセージをSnmpTrapと して送信、Zaibbxのトリガーとして扱う。 • カスタマイズページの拡充 – 他の機器のAPI経由で取得した情報追加 (BIG-IPのNode追加、一覧表示など、メンテナンスJOB用)

Slide 25

Slide 25 text

本日出てきた Zabbix template 等は下記に上げて あります https://github.com/makocchi-git/it_infra_summit_2014 ご清聴ありがとうございました