Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zabbix 4.0のご紹介 @OSC 2018 Tokyo/Fall

1,505 views

Published on

Zabbix 3.0後の追加機能を利用してどのようなことができるかをご紹介します。

Published in: Software
  • Be the first to comment

Zabbix 4.0のご紹介 @OSC 2018 Tokyo/Fall

  1. 1. Zabbix 4.0のご紹介 2018/10/28 @OSC 2018 TOKYO/FALL 日本ZABBIXユーザー会 田中敦
  2. 2. 自己紹介  名前 田中 敦(たなか あつし)  所属 日本Zabbixユーザー会 副代表  主な活動 コミュニティサイト(http://www.zabbix.jp/)でQ&A TwitterやQiita上でも(@atanaka7) ZabbixのWebインターフェース翻訳 雑誌記事への執筆参加(シェルスクリプトマガジン vol56) 2
  3. 3. アジェンダ  Zabbixとは  Zabbix 3.0後に追加された機能  Zabbix 4.0で追加された主な機能  Zabbix 3.0後の機能を使用してできること  まとめ 3
  4. 4. Zabbixとは 4
  5. 5. Zabbixとは  ヨーロッパのラトビアという国にある、Zabbix社にて開発されて いるオープンソースソフトウェア(OSS)の統合監視ツール  ネットワークで接続された、サーバーやネットワーク機器、シス テムやサービスの状態を監視して、問題があった時にメールや ショートメッセージで管理者に通知したり、自動的にスクリプト を実行して正常な状態に戻そうとしたりすることもできる  監視対象から取得した情報(メトリクス)は、数値であればグラフ 化することができるので、その情報の変化の傾向を把握しやすい 5
  6. 6. Zabbixとは(続き1)  監視対象  Zabbixエージェントを導入したサーバー  SSH、Telnetなどでアクセス可能な機器  SNMP、IPMIなどでアクセス可能な機器  Zabbixサーバー上でスクリプトを実行して取得可能なも の  Zabbixのプロトコルを使用してZabbixサーバーに通知可 能なもの 6
  7. 7. Zabbixとは(続き2)  特徴的な機能  取得した値をグラフ化(視覚化)  監視の設定をテンプレート化  障害検知時にメール通知だけではなく、独自スクリプト の実行が可能  マップ機能によって、サーバーやサーバー群のどこで何 の障害が発生しているかを把握しやすい  マップやグラフなどを組み合わせた独自のダッシュボー ドを作成できる 7
  8. 8. 画面例 8 Zabbix公式 ページより 引用
  9. 9. Zabbix 3.0後に追 加された機能 9
  10. 10. Zabbix 3.2で追加された主な機能  トリガーの手動クローズ  ヒステリシストリガーの改善  イベントタグの設定  イベント相関関係の設定  LLDで生成したアイテムの詳細確認  Webシナリオのエクスポートとインポート  イベント画面から障害画面へ  ホストグループの階層化  ログバースト対応 10
  11. 11. トリガーの手動クローズ (3.2)  これまで、ログ監視やSNMPトラッパーの監視で、トリ ガーの状態が「障害」のままとなって、無理矢理、関 数nodata()を使用して一定時間後にトリガーの状態を クリアしていた  これでは、対処しなくてもトリガーの状態が「正常」 に戻ってしまうので、本当にその検知した障害に対応 できたのかがわからない  Zabbix 3.2では、トリガーの設定として、手動でクロー ズすることができるかどうかを設定できるようになっ た 11
  12. 12. トリガーの設定画面 (3.2) 12
  13. 13. ヒステリシストリガーの改善 (3.2)  いままでのトリガーの条件設定は、条件式に合致するかしな いかしか指定ができなかった  障害が発生している状態で、回復したとみなす閾値を別途設 定するために、ヒステリシストリガーと呼ばれる設定があっ た  例  Zabbix 3.2では、回復したと判定する方法として、別の条件 式を設定することも可能となった 13 ({TRIGGER.VALUE}=0 and {server:system.cpu.load[,avg1].last()}>10) or ({TRIGGER.VALUE}=1 and {server:system.cpu.load[,avg1].last()}>5)
  14. 14. トリガーの条件式と復旧条件式 (3.2) 14
  15. 15. Zabbix 3.4で追加された主な機能  Webインターフェースの改善  依存アイテムとアイテムの保存前処理  アイテムの値の同時収集  スクリプトやコマンドの実行結果ハンドリング  プロキシ経由でのリモートコマンド実行  障害対応コメント入力時の通知  通知処理の並列化対応  アイテムの追加(vfs.dir.size[])  JMX監視の改善  Web監視のURLエンコーディング対応 15
  16. 16. Webインターフェースの改善 (3.4)  ダッシュボードのカスタマイズに対応  固定のダッシュボードではなく、位置やサイズ、表示する ウィジェットがカスタマイズ可能  複数定義して、アカウント毎に普段使用するダッシュボード を選択可(最後に表示したダッシュボードを使用)  マップの操作性を向上  アイコンを複数選択して編集が可能  入力欄の拡大  SNMP OID、更新間隔、ユーザーのメディアの有効な時間帯 16
  17. 17. 新しいダッシュボード (3.4) 17 次ページで紹介する ウィジェットを 好きな位置、サイズで 配置可能
  18. 18. ダッシュボードで使えるウィジェット (3.4)  URL  Web監視  Zabbixサーバーの状態  お気に入りのグラフ  お気に入りのスクリーン  お気に入りのマップ  アクションログ  グラフ  システムステータス  ディスカバリのステータス  データの概要  トリガーの概要  プレーンテキスト  ホストステータス  マップ  マップナビゲーション  時刻  障害 18
  19. 19. アイテムの保存前処理(その1) (3.4)  アイテムの値を取得した時、取得してきた値を加工 してアイテムの値として保存する時に、加工すると しても数値の差分を取ったり、時間あたりの値(差 分/時間)を取ることしかできなかった  用意されている変換  乗数(Custom multiplier)  末尾文字列削除(Right trim)  先頭文字列削除(Left trim)  前後文字列削除(Trim)  正規表現(Regular expression) 19
  20. 20. アイテムの保存前処理(その2) (3.4)  用意されている変換(つづき)  論理値から10進数(Boolean to decimal)  8進数から10進数(Octal to decimal)  16進数から10進数(Hexadecimal to decimal)  差分(Delta)  差分/時間(Delta per second)  XML XPath  XPathという機能を使用して、XML形式で取得された値から、特 定の属性の値を取り出す  JSON Path  JSONPathと呼ばれる機能の一部を実現して、JSON形式で取得 された値から、特定の属性の値を取り出す 20
  21. 21. Zabbix 4.0で追加 された主な機能 21
  22. 22. Zabbix 4.0で追加された主な機能(その1)  「監視データ取得」ボタン追加  新しいHTTPアイテムの追加  時間範囲指定の簡略化  SVGグラフウィジェットの追加  単位変換の柔軟化  サーバーとプロキシ間の接続をよりセキュアに  サーバーとプロキシ間の通信を圧縮  メディアのEmailの1つの設定で複数宛先指定可  イベント、値、トレンドのリアルタイムエクスポート  logrt[]でcopytruncateモードでのログファイルローテーション に対応 22 New
  23. 23. Zabbix 4.0で追加された主な機能(その2)  タグベースの権限設定  タグによるメンテナンス設定の拡張  障害の深刻度が変更可能  エージェント自動登録機能改善  ポップアップウィンドウをオーバーレイに変更  閲覧(キオスク)モードの追加  障害画面に「コンパクト表示」モードを追加  自動登録の柔軟性追加  DNS名の長さを63から255に拡張  MySQL 8.0をサポート  スクリーンリーダー対応 23
  24. 24. 「監視データ取得」ボタン追加 (4.0)  アイテムの登録後や障害対応後に、アイテムの値が正 常に取得できる状態になったかを確認するには、アイ テムの監視間隔(更新間隔)によっては待たなければ ならないことがあった  アイテムの設定画面の下に「監視データ取得」という ボタンが用意され、このボタンを押すことで、定期的 な値の取得とは別に、アイテムの値を取得することで できるようになった 24
  25. 25. 新しいHTTPアイテムの追加 (4.0)  新しいアイテムのタイプとして、「HTTPエージェン ト」というHTTPリクエストを投げて結果を受け取る アイテムが用意された  Webサービスなどを呼び出して、その呼び出し結 果をアイテムの値とすることができる 25
  26. 26. 時間範囲指定の簡略化 (4.0)  スライダー形式から選択形式へ変更された 26
  27. 27. SVGグラフウィジェットの追加 (4.0)  ダッシュボードに利用できる新しいウィジェットと してSVGグラフが使えるようになった  ホストやアイテムを複数選択したり、ワイルドカー ドを使用することもできるため、1つのホストの複 数アイテムや複数ホストの同じアイテムを同じグラ フに表示できる  マウスの位置の各値がポップアップで表示される 27
  28. 28. SVGグラフウィジェットの例 (4.0) 28
  29. 29. 閲覧(キオスク)モード (4.0)  情報を表示するためだけの表示モードを用意して、 より広い範囲を情報表示に利用できるようになった 29
  30. 30. 閲覧(キオスク)モードへのダイレクトアク セス (4.0.1rc1)  バージョン4.0.0では、閲覧(キオスク)モードにする には、画面の操作が必須であった  ログイン後、最初から閲覧(キオスク)モードにでき ないかとの要望を受けて、4.0.1rc1では、クエリパ ラメータを付与することで直接アクセスできるよう 改善されている 30 http://<Zabbix>/zabbix/zabbix.php?action=dashboard.view&dashboardid=2&kiosk=1
  31. 31. サーバーとプロキシ間の通信を圧縮  Zabbixプロキシ経由での監視を行う場合、Zabbixプロキシ が管理する配下のサーバーやネットワーク機器が大量である と、ZabbixサーバーとZabbixプロキシとの間のトラフィッ ク量が無視できないような量となってしまっていた  ネットワーク構成によっては、トラフィック量が多いと、 サービス用のネットワークの帯域を制限してしまったり、監 視の処理の遅延発生にもつながりかねない  そこで、ZabbixサーバーとZabbixプロキシとの間の通信が 圧縮されるようになった(環境によっては約1/5に) 31
  32. 32. 自動登録の柔軟性追加  自動登録の機能を使用している場合、 HostMetadataもしくはHostMetadataItemを変 更したら、再度、自動登録処理を実施  ZabbixエージェントのHostMetadataや HostMetadataItemを更新してエージェントを起 動することで、リンクするテンプレートを追加する などの対応を自動化できる 32
  33. 33. 翻訳の変更について (4.0)  アイテムの設定  「更新間隔」⇒「監視間隔」  アクセス権限  「読書可能」⇒「表示/設定」  「読込専用」⇒「表示のみ」  メンテナンス期間の設定  「開始日時」⇒「設定有効期間の開始日時」  「終了日時」⇒「設定有効期間の終了日時」  「期間」⇒「監視対象のメンテナンス期間」 33
  34. 34. Zabbix 3.0後の機 能を使用して実現 できること 34
  35. 35. お勧め機能:ボタンクリックで値取得  登録済みのアイテムだけではなく、ディスカバリルー ルであっても、「監視データ取得」のボタンが用意さ れている  新規登録後の値取得、障害対応後の確認、ディスカバ リ対象の変更後の再ディスカバリ処理などをボタンク リックで開始できる  次のアイテムの取得タイミングやディスカバリ処理ま で待つ必要が無い 35
  36. 36. ボタンの場所 36
  37. 37. お勧め機能:Webサービスの呼び出し  これまでWebサービスを呼び出す場合は、スクリ プトを作成して、Webサービスの呼び出しと応答 からの結果の値の切り出しを行っていた  HTTPエージェント(4.0)と依存アイテム、アイテム の保存前処理(3.4)を利用することで、わざわざスク リプトを作成しなくてもアイテムの設定だけで対応 できるものもある 37
  38. 38. Webサービスの呼び出し例  具体例を挙げるとより実感して頂けると思われるので、 OpenWeatherMapの気象情報を取得してみる  OpenWeatherMap  https://openweathermap.org/  OpenWeatherMapで公開されているAPIでは、結果は JSONもしくはXMLで返却されるが、ここで、Zabbix 3.4で追加された保存前処理の機能と組み合わせること で、返却されたJSONのフォーマットから特定の値のみ を取得する 38
  39. 39. HTTPアイテムの例(詳細:API呼び出し)  OpenWeatherMapのAPIを使用するため、Freeユー ザーとして登録し、APIキーを取得すると OpenWeatherMapのAPIを呼び出すことができるよう になる  例えば、東京の現在の天気として、以下のような呼び 出しを行うと、次ページのようなJSON形式の応答を得 られる $ curl -s 'http://api.openweathermap.org/data/2.5/weather?id=1850147&units=metric&APPID=<APIキー> 39
  40. 40. HTTPアイテムの例(詳細:JSON形式応答) { "coord": { "lon": 139.69, "lat": 35.69 }, "weather": [ { “id”: 803, "main": "Clouds", "description": "broken clouds", "icon": "04d" } ], "base": "stations", "main": { "temp": 24.8, "pressure": 1020, "humidity": 41, "temp_min": 24, "temp_max": 26 }, "visibility": 10000, "wind": { "speed": 4.1, "deg": 150 }, "clouds": { "all": 75 }, "dt": 1526875200, "sys": {"type": 1, "id": 7612, "message": 0.007, "country": "JP", "sunrise": 1526844732, "sunset": 1526895832 }, "id": 1850147, "name": "Tokyo", "cod": 200 } 40
  41. 41. HTTPアイテムの例(詳細:アイテムの構成)  このJSON形式で取得するHTTPアイテムを作成して、 そのアイテムの子アイテムとして、JSON形式内の 応答から保存前処理を使用して各値を切り出します。 名前:気象情報(東京) タイプ:HTTPエージェント 名前:気温(東京) タイプ:依存アイテム 保存前処理:JSON Path - $.main.temp 単位:℃ 名前:気圧(東京) タイプ:依存アイテム 保存前処理:JSON Path - $.main.pressure 単位:!hPa 41
  42. 42. お勧め機能:新しいグラフウィジェット  これまでのZabbixのグラフ機能では、複数のホストの同じ アイテムを同じグラフ上に表示するとしたら、アドホックグ ラフ(最新データで該当するアイテムをチェックしてグラフ 表示)しかなく、その設定を保存できなかった  LLD(ローレベルディスカバリ)を活用して自動設定した時に、 自動で生成するグラフには、特定のネットワークインター フェースやマウントしたディスクしか指定できず、複数の ディスカバリされた対象のメトリクスを1つのグラフに表示 して比較するようなことが自動ではできなかった 42
  43. 43. グラフウィジェットの対象設定  Zabbix 4.0で用意されたグラフウィジェットでは、 データセットとして、ホストとアイテムを指定する が、そのホストとアイテムの両方で、列挙すること もワイルドカードを指定することも可能  これによって、ダッシュボード上に複数ホストの同 じアイテムを1つのグラフに表示したり、LLDで ディスカバリした複数の対象の同じメトリクスを1 つのグラフに表示することができるようになった 43
  44. 44. グラフウィジェットの対象設定(設定例) 44
  45. 45. お勧め機能:タグを利用した一部トリ ガーのみのメンテナンス  これまでは、メンテナンス期間を設定すると、対象 のホストまたはホストグループのトリガーすべてを 抑止するような使い方しかできなかった  トリガーにタグを設定し、同じタグをメンテナンス 期間の設定内に設定することで、特定のタグのトリ ガーだけの抑止を行うことができる 45
  46. 46. トリガーのタグとメンテナンス期間のタ グ 46 トリガー メンテナンス期間
  47. 47. 地味だけど便利な機能:単位変換の抑制  アイテムの値によっては、グラフで表示した時にK(キ ロ)とかM(メガ)とか勝手に変換されたくない場合があ る  以前は、この自動的に変換されるのを抑制するために は、PHPのコードに変更を加える必要があった(デフォ ルトでは、ms、rpm、RPM、%のみ対応)  Zabbix 4.0では、アイテムの単位の設定で、単位の前に 「!」(ビックリマーク)をつけるだけで変換を抑止で きる 47 先ほどの 「!hPa」
  48. 48. まとめ 48
  49. 49. Zabbix 4.0による改善  追加された新機能を活用することで、管理者の監視 設定作業を軽減し、より自動化を活用した監視の設 定が柔軟にできるようになった  Webサービスなどを利用する際に、独自のスクリ プトを作成せずに、テキスト形式からだけではなく、 JSONやXMLなどのフォーマットから値を取り出す ことができるようになった 49
  50. 50. Zabbix 4.0以降のロードマップ  Zabbix 4.2など、今後のロードマップが公開されている。 https://www.zabbix.com/roadmap  スケーラビリティや冗長化、分散監視などの改善が予 定されている。  実装の方式がどのようになるかはわからないが、 Prometheusエージェントの対応という項目もロード マップに記載されている。 50
  51. 51. ご清聴いただき ありがとうございました。 51 本資料内で利用させて頂いた各プロダクト名 やサービス名などは、各社もしくは各団体の 商標または登録商標です。
  52. 52. おまけ 52
  53. 53. 参考リンク  日本Zabbixユーザー会 http://www.zabbix.jp/  Zabbix最新情報 @OSC 2017 Tokyo/Fal https://www.slideshare.net/atanaka7/zabbix-osc-2017-tokyofall  Zabbix 3.4の新機能 @OSC 2017 Tokyo/Spring https://www.slideshare.net/atanaka7/zabbix-34-osc-2017- tokyospring  Zabbixをもっと使おう @OSC 2016 Tokyo/Fall https://www.slideshare.net/atanaka7/zabbix-osc-2016-tokyofall 53
  54. 54. メディアのEmailの1つの設定で複数宛先 指定可  ユーザーのメディアの設定で、タイプがEmailの場 合、送信先のメールアドレスを複数登録できるよう になった 54
  55. 55. イベント、値、トレンドのリアルタイム エクスポート  Zabbixが取得したアイテムの値や発生したイベン トを他のシステムと連携したいという要望もあるこ とが予想される  Zabbix 4.0では、イベントや値をリアルタイムで ファイルにJSONフォーマットで出力することがで きる 55
  56. 56. リアルタイムエクスポートファイル  具体的には、zabbix_server.conf内のExportDirを 設定することで、以下のようなファイルと内容で出 力されるようになる 56 history-history-syncer-1.ndjson history-history-syncer-2.ndjson history-history-syncer-3.ndjson history-history-syncer-4.ndjson history-main-process-0.ndjson problems-history-syncer-1.ndjson problems-history-syncer-2.ndjson problems-history-syncer-3.ndjson problems-history-syncer-4.ndjson problems-main-process-0.ndjson problems-task-manager-1.ndjson problems-timer-1.ndjson trends-history-syncer-1.ndjson trends-history-syncer-2.ndjson trends-history-syncer-3.ndjson trends-history-syncer-4.ndjson trends-main-process-0.ndjson { "host":"Zabbix server", "groups":["Zabbix servers"], "applications":["CPU","Performance"], "itemid":23296, "name":"Processor load (1 min average per core)", "clock":1526895196, "ns":23407662, "value":0.040000 } ファイル一覧(例): 出力内容例(実際は改行なし1行で出力):
  57. 57. logrt[]でcopytruncateモードでのログファイ ルローテーションに対応  ログローテーションが行われているログファイルを監視をする際、 logrt[]というアイテムキーが用意されている  ただし、ログローテーションの方法に制限があって、logrotateのデ フォルトの動作のように、過去のログファイルの名前を変えて、新規に ログファイルを作成しなおして、以降は、新しいログファイルに出力さ せるという方法にしか対応していなかった  Zabbix 4.0では、「copytruncate」という元のログファイルを別の ファイルにコピーして、元のログファイルのサイズを0にするという ローテーションにも対応できるオプションが追加された  これによって、プロセスを起動したままで、特定のファイルにログを出 力し続けるようなアプリケーションへの対応が可能になった 57
  58. 58. 収集データのElasticsearchへの保存  収集したアイテムのデータを、Elasticsearchに保存す ることが可能となった  画面上での切り替えはできず、設定ファイルとPHPの ソースのconfigの変更が必要で、アイテムの型ごとに、 DBとElasticsearchのどちらかのみ選択可 https://www.zabbix.com/documentation/4.0/manual/app endix/install/elastic_search_setup  現時点では、十分なパフォーマンスが得られていない 58

×