第5回oss運用管理勉強会 zabbix徹底活用術の紹介

6,106 views

Published on

2014/6/4開催のOSS運用管理勉強会発表資料です。

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,106
On SlideShare
0
From Embeds
0
Number of Embeds
276
Actions
Shares
0
Downloads
92
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide

第5回oss運用管理勉強会 zabbix徹底活用術の紹介

  1. 1. Zabbix徹底活用術の紹介 池田 大輔 (Daisuke IKEDA) @ike_dai 2014/6/4 第5回OSS運用管理勉強会
  2. 2. Zabbixあずき色本について Zabbix標準機能をフル活用 Zabbixの機能の制約について Zabbixの制約事項との上手な付き合い方 1. 外部ツールとの連携 2. Zabbixのカスタマイズ TISの取り組みの紹介 Agenda..
  3. 3. 池田 大輔 TIS株式会社 戦略技術センター @ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler... Name Division Twitter Facebook Favorite @ITさんで連載「今さら聞けないfluentd~クラウド時代のログ管理入門」 (http://www.atmarkit.co.jp/ait/articles/1404/04/news004.html) AWS、VMware監視用プラグイン『HyClops for Zabbix』開発 (http://tech-sketch.github.io/hyclops/jp/) About me..
  4. 4. Zabbix統合監視徹底活用 -複雑化・大規模化するインフラの一元管理 2014/2/7出版 技術評論社 Announcement.. Zabbix2.2対応 クラウド環境や仮想環境の監視をZabbixで行うための活用術集 Zabbixだけでなく外部ツール(fluentdやChef、GateOne等)との連携術 ご購入はこちらから 技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1 Amazon : http://www.amazon.co.jp/dp/4774162884
  5. 5. Zabbixって機能豊富だけど どうやって使えばいいの? 仮想環境・クラウド環境便利だけど 運用はどうする? Zabbixでできない部分は どうすばいいの? Problem..
  6. 6. Zabbixをうまく使って いけてる環境を作ろう!
  7. 7. まずは 標準の機能 を上手に活用
  8. 8. 特に便利な機能 Standard feature.. Zabbix Proxyを使った分散監視 Zabbix Agent自動登録機能 ネットワークディスカバリ機能 ローレベルディスカバリ機能 各拠点の監視をZabbixProxyが代行 ZabbixProxyとZabbixServerは監視設定、監視結果を連携 複数拠点・大規模環境には欠かせない機能! Zabbix Agentの情報をZabbix Serverに自動連携 ホスト追加の度に監視設定手動登録の必要がなくなる ZabbixAgent監視のスケールする環境には必須 ! 定期的にNWをポーリング探索して新たな機器を発見 機器の情報に応じて監視設定自動化 NW機器等も含めて監視 NW全体の自動監視設定に有用 ! 監視対象機器の内部の情報を定期的に探索 機器に搭載されているデバイスに応じて監視設定自動化 NIC監視など同じ監視設定をデバイス毎に 登録する場合に有用 !
  9. 9. 細かい設定項目も有効活用を Point1..
  10. 10. ローレベルディスカバリの存在しなくなったリソースの監視データ Point1.. Example1..
  11. 11. ログ監視アイテムのオプション Point1.. Example2.. ログ監視アイテムのオプション形式 logrt[file_format<,regexp><,encoding><,maxlines><,mode><,output>] mode ・アイテム登録時に既に存在するログファイルの中身をすべてチェックするか、スキップするかの指定 ・スキップ指定時には、アイテム登録後に新たに追加されたログ内容のみ監視 【例】all(ファイルすべてを監視)、skip(アイテム登録時点以前のログはスキップ) ※書籍より抜粋
  12. 12. バックエンドの仕組みを 理解して適切な対応を Point2..
  13. 13. Zabbix Proxyのデータキャッシュ機構 Point2.. Example1.. Zabbix Server Zabbix Proxy DB (設定・結果) DB (設定・結果(一時保存分)) Proxyとの同期関連の設定 ProxyLocalBuffer Zabbixサーバと同期済みの監視結果についても指定時間分Zabbix Proxy内で保管 ProxyOfflineBuffer Zabbixサーバと同期ができていない間、指定時間分、Zabbix Proxy内のDBに監視結果を保管 Zabbixサーバと同期が完了した時点でデータ削除 監視監視 Zabbix Frontend 監視設定 同期 拠点A 拠点B
  14. 14. VMware監視の仕組み Point2.. Example2.. ZabbixServer vCenterServer VMwareESXi VM VM VM VMwareESXi VM VM VM VMwareESXi VM VM VMVMware Cache VMwareCollectors vSphereAPI simple check (VMwareFrequencyの頻度で) - クラスタ情報 - ハイパーバイザ情報 - データストア情報 - 仮想マシン情報 - イベントログ情報 追加&更新 VMware監視がうまくいかなかったら Simple Checkを実行するのはZabbix ServerのVMwareCollectorプロセス →zabbix_server.confのStartVMwareCollectorsの設定項目をチェック! 監視結果は全てキャッシュに格納 →zabbix_server.confのVMwareCacheSizeの設定項目をチェック!
  15. 15. Zabbixの 制約事項を理解して 適切な対応を
  16. 16. 制約事項の一例 Limitations.. 制約事項 対応例 ログ監視は1行毎の監視 →複数行をまとめて監視対象とできない fluentd等でログ収集・ログ加工を行い監視 外部スクリプト実行のタイムアウト制限 →最大で30秒まで 外部スクリプト処理をバックエンド処理化 ローレベルレベルディスカバリのホストプロトタイプ (VMware監視 機能で利用)で自動登録可能な項目の制限 →発見されたVMのインタフェース情報がホスト設定に反映されない Zabbix APIを利用したより柔軟な自動化対応 (例: HyClops for Zabbixの仕組み等) Zabbixフロントエンド画面の制限 →監視結果一覧を複数ホストグループで絞り込んだ表示ができない等 Zabbix APIを使った独自画面の作成等 ホストグループ、ホストという 2段階の階層構造のみの管理 →vCenter、vSphereESXi、VMといった3段階構造が管理できない 1ホストに複数ホストグループを割り当てる等で 対応 ZabbixProxy経由でのリモートコマンド実行が未対応 →障害時にリモートコマンド実行するにはZabbixServerからZabbixAgentに 直接接続できる必要がある ZabbixProxyにZabbixAgentを導入し、スクリプト の作り込みにより対応等
  17. 17. 制約事項の一例 Limitations.. 制約事項 対応例 ログ監視は1行毎の監視 →複数行をまとめて監視対象とできない fluentd等でログ収集・ログ加工を行い監視 外部スクリプト実行のタイムアウト制限 →最大で30秒まで 外部スクリプト処理をバックエンド処理化 ローレベルレベルディスカバリのホストプロトタイプ (VMware監視 機能で利用)で自動登録可能な項目の制限 →発見されたVMのインタフェース情報がホスト設定に反映されない Zabbix APIを利用したより柔軟な自動化対応 (例: HyClops for Zabbixの仕組み等) Zabbixフロントエンド画面の制限 →監視結果一覧を複数ホストグループで絞り込んだ表示ができない等 Zabbix APIを使った独自画面の作成等 ホストグループ、ホストという 2段階の階層構造のみの管理 →vCenter、vSphereESXi、VMといった3段階構造が管理できない 1ホストに複数ホストグループを割り当てる等で 対応 ZabbixProxy経由でのリモートコマンド実行が未対応 →障害時にリモートコマンド実行するにはZabbixServerからZabbixAgentに 直接接続できる必要がある ZabbixProxyにZabbixAgentを導入し、スクリプト の作り込みにより対応等 外部ツールとのCollaboration ZabbixのCustomize
  18. 18. Collaboration with other tools.. 連携方法には2パターン  1 Zabbixから他のツールへの連携  2 他のツールからZabbixへの連携
  19. 19. UserParameter=file.count[*],ls -l $1 | wc -l Zabbixに登録するアイテムキー file.count["/var/log/zabbix"] Zabbix to other tools.. リモートコマンドで外部連携 障害発生時に外部ツールに連携 定期的に外部ツールと連携 メディアタイプにアラートスクリプトを登録して外部連携 Zabbix ServerまたはZabbix Agentから任意のスクリプト実行 Zabbix Serverから任意のアラートスクリプト実行 リモートコマンドと異なる点はリカバリ時にも発動可能な点 ※書籍ではAWS SNSへの連携方法を紹介 Zabbix Agent UserParameter監視 Zabbix Server 外部チェック監視 Zabbix Serverから任意のスクリプト実行結果の監視 ※書籍ではvSphere APIと連携する方法を紹介 Zabbix Agentから事前にUserParameterで定義したコマンド実行結果の監視 ※書籍より引用
  20. 20. Other tools to Zabbix.. Zabbix APIを使ってZabbixの設定を外部ツールから Zabbix APIを使ってZabbixのデータを外部ツールで活用 ZabbixSenderを使って外部ツールから Zabbixにデータ連携 Zabbix API 外部ツール ホスト追加 テンプレート割当 等 何らかの タイミングでキック Zabbix API 外部ツール ヒストリデータ等 データ分析 視覚化 等 Zabbix 外部ツール Zabbix Trapper 外部ツールから監視結果として登録 例:高機能なログ監視のために fluentdとの連携
  21. 21. fluentd - Zabbix.. DB クラウド サービス ログ ファイル API ・ ・ ・ などなど Zabbix ・ ・ ・ などなど Input Output (fluent-plugin-zabbix) ログデータ 収集処理 ログデータ タグデータ 時刻データ Zabbix Sender Zabbix Sender Zabbix Sender タグデータをもと に処理振分け ・ ・ ・ fluentd ホスト ZabbixTrapperタイプ 監視アイテム ZabbixTrapperタイプ 監視アイテム ZabbixTrapperタイプ 監視アイテム ・ ・ ・
  22. 22. fluentd - Zabbix.. Configuration.. <source> type tail format apache path /var/log/httpd/access_log tag apache.access </source> <match apache.access> type datacounter count_interval 5m count_key code tag response.code.analysis pattern1 2xx ^2dd$ pattern2 3xx ^3dd$ pattern3 4xx ^4dd$ pattern4 5xx ^5dd$ </match> <match response.code.analysis> type zabbix zabbix_server zabbix.example.com host fluentd-test name_key_pattern apache.access_[2-5]xx_count add_key_prefix fluentd </match> - /var/log/httpd/access_logを読み込み - apache用フォーマット定義に基づいてログ取り込み - tag "apache.access"を付与 - 5分間隔で統計処理 - 統計処理する対象データは code - tag "response.code.analysis"を付与 - codeの値の先頭の数字 (2,3,4,5)毎にパターン分けして統計処理 - Zabbixサーバ(zabbix.example.com)の fluentd-testホストに対して 各code毎のカウント結果を送付 - 送付時のアイテムキーは以下の 4つ - fluentd.apache.access_2xx_count - fluentd.apache.access_3xx_count - fluentd.apache.access_4xx_count - fluentd.apache.access_5xx_count tailインプットプラグイン datacounterアウトプットプラグイン Zabbixアウトプットプラグイン ※書籍より引用
  23. 23. Customize.. カスタマイズ方法にも2パターン  1 フロントエンドのカスタマイズ  2 監視コア機能のカスタマイズ
  24. 24. Customize.. Zabbix APIをベースに、より効果的なビューをカスタマイズ可能 Frontend.. PHPで実装すればZabbixAPIのクラスがそのまま利用可能! <?php require_once dirname(__FILE__).'/include/config.inc.php'; ・・・略 $user = CWebUser::$data['alias']; $histories = API::History()->get(array( "hostids" => $hostid, "history" => 2, "itemids" => $itemid, "limit" => "20", "output" => "extend", )); ・・・略 ?> Zabbixフロントエンドディレクトリに配置 (/usr/share/zabbix/以下) Zabbixにログイン後、 ページにアクセスすれば API連携可能 WebAPIとして使う場合は好きな言語で カスタマイズ可能 (Ruby,Python,PHP,Java等各種ライブラ リあり)
  25. 25. Customize.. Core.. Zabbixローダブルモジュール機能を使い監視機能を拡張 ● Cで処理を書けばどんな監視アイテムでも拡張可能に ● Zabbixの共有メモリの機構を使って効率の良い監視の実現が可能に ○ これまでのzabbix_sender多用による負荷上昇を抑えられる ● Cで書くことでZabbixの本体機能として取り込まれやすくなる? ● Zabbix2.2.0から実装された機能 ● Zabbix Serverのシンプルチェック監視もしくは Zabbix Agent監視にカスタム監視アイテムが追加できる機能 ● Cで監視処理を書いて、 共有ライブラリ(.soファイル)を作成し読み込むだけ 概要 メリット
  26. 26. 1、  Zabbixの便利な機能をうまく使う 2、  得意分野以外は外部ツールに任せて連携させればOK 3、  枠組みが充実しているのでカスタマイズで対応も可能 Conclusion.. 実践していけてる環境を目指しましょう!
  27. 27. Activity.. TISの取り組み紹介
  28. 28. Copyright © 2014 TIS Inc. シンプルなシステム 高可用&高性能なシステム 必要に応じて サービスレベルを向上 オンプレミスをリバース エンジニアリングして パターン化 パターンから最小限の システムを構築 新規に パターン作成 Cloud上のシステムを カスタマイズしてパターン化 Pattern Repository Load Balancing High Availability Disaster Recovery ※CloudConductorの開発は経済産業省の支援を受けて推進しています。 ・平成25年度「産業技術実用化開発事業費補助金  (ソフトウェア制御型クラウドシステム技術開発プロジェクト)」 ・平成26年度「中小企業等のクラウド利用による  革新的省エネ化実証支援事業クラウド基盤ソフトウェア導入実証」 TISでは、インフラアーキテクチャ設計のパターン化を行うことにより、 クラウド/オンプレの差異を超えてシステムの再利用、移行性向上と 運用標準化を実現するソフトウェアCloudConductorを開発中です。 公式サイト:http://cloudconductor.org 次世代のクラウド活用ソリューション:CloudConductor 高レベルなシステムへ再構築 (サービスレベルアップ )
  29. 29. Fin.. oss-sales@ml.tis.co.jp ご清聴ありがとうございました

×