Tech circle#13 zabbix3.0ハンズオン lld

1,955 views

Published on

2016/3/16 Tech-Circle#13 Zabbix3.0のハンズオン後半部分の資料です。
LLDを使って自動化等を試せる手順です。
ハンズオン中に使ったコンテナイメージはこちら。
https://hub.docker.com/r/ikedai/zabbix3.0/
のtech-circleタグのイメージです。

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

No Downloads
Views
Total views
1,955
On SlideShare
0
From Embeds
0
Number of Embeds
610
Actions
Shares
0
Downloads
18
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Tech circle#13 zabbix3.0ハンズオン lld

  1. 1. Tech-Circle #13 Zabbix Hands-on
  2. 2. Hello! I am Daisuke IKEDA TIS Inc. OSS Promotion office You can find me at: @ike_dai
  3. 3. 3.0でのLLD機能強化を体験 2. LLDを使った 自動化ハンズオン
  4. 4. Lesson2のゴール LLDの トリガー設定を 効果的に 新しいLLD ディスカバリ ルール を試す LLDで CloudWatch 自動連携
  5. 5. 解説に入る前に
  6. 6. 事前に配布しているURLにアクセス URL: http://IP:Port/zabbix Username: Admin Password: techcircle13 Step0. Zabbix管理画面にアクセス
  7. 7. [設定]→[ホスト] ホストの追加からホスト登録  ホスト名: AWS Account  テンプレート: Template AWS  新規グループ作成: AWS  マクロ: Step1. ホスト新規登録 Macro Value {$KEY} {$SECRET}
  8. 8. LLD (Low Level Discovery) とは? 監視対象のサーバ内の情報を探索して、 アイテム・トリガー・グラフ・ホスト等を自動登録する機能  Use Case 1 サーバ内のデバイス情報を探索    監視アイテムを自動登録  Use Case 2 VMwareのHV,VM一覧をvSphere APIで取得    ホストを自動登録
  9. 9. LLDのプロセスフロー ディスカバリルールに基づく探索 JSON形式で値取得 {#・・・}形式のマクロに登録 プロトタイプ設定を元に自動登録 1 2 3 4
  10. 10. LLDのプロセスフロー JSON形式で値取得 {#・・・}形式のマクロに登録 プロトタイプ設定を元に自動登録 1 2 3 4 ディスカバリルールに基づく探索
  11. 11. LLDのプロセスフロー ディスカバリルールに基づく探索 JSON形式で値取得 {#・・・}形式のマクロに登録 プロトタイプ設定を元に自動登録 1 2 3 4 { "data":[    {    "{#FSNAME}":"/",   "{#FSTYPE}":"ext3"},   {   "{#FSNAME}":"/data",   "{#FSTYPE}":"ext3"},   ・・・省略 }
  12. 12. LLDのプロセスフロー ディスカバリルールに基づく探索 JSON形式で値取得 {#・・・}形式のマクロに登録 プロトタイプ設定を元に自動登録 1 2 3 4 マクロ名 データ1 データ2 データ3 {#FSNAME} / /data /boot {#FSTYPE} ext3 ext3 ext3
  13. 13. LLDのプロセスフロー ディスカバリルールに基づく探索 JSON形式で値取得 {#・・・}形式のマクロに登録 プロトタイプ設定を元に自動登録 1 2 3 4
  14. 14. 【応用】LLDのカスタマイズ { "data":[ { "{#INSTANCE.NAME}":"teacher", "{#INSTANCE.TYPE}":"t2.small", "{#INSTANCE.ID}":"i-xxxxxxxxx", "{#INSTANCE.PRIVATE.ADDR}":"172.xx.xx.xx" }, { ・・・ } ] } 決まったJSONフォーマットで応答を返せば何にでも応用可能
  15. 15. 2.2 3.0 標準サポートのディスカバリルール ● net.if.discovery ○ NICのディスカバリ ● vfs.fs.discovery ○ ファイルシステムのディスカバリ ● snmp.discovery ○ SNMP OIDのディスカバリ ● vmware.*.discovery ○ VMwareのディスカバリ 標準サポートのディスカバリルール ● net.if.discovery ○ NICのディスカバリ ● vfs.fs.discovery ○ ファイルシステムのディスカバリ ● discovery ○ SNMP OIDのディスカバリ ● vmware.*.discovery ○ VMwareのディスカバリ ● system.cpu.discovery ○ CPUのディスカバリ ● db.odbc.discovery ○ SQL実行によるディスカバリ ● service.discovery ○ Windowsサービスディスカバリ
  16. 16. 2.2 3.0 標準サポートのディスカバリルール ● net.if.discovery ○ NICのディスカバリ ● vfs.fs.discovery ○ ファイルシステムのディスカバリ ● discovery ○ SNMP OIDのディスカバリ ● vmware.*.discovery ○ VMwareのディスカバリ ● system.cpu.discovery ○ CPUのディスカバリ ● db.odbc.discovery ○ SQL実行によるディスカバリ ● service.discovery ○ Windowsサービスディスカバリ 標準サポートのディスカバリルール ● net.if.discovery ○ NICのディスカバリ ● vfs.fs.discovery ○ ファイルシステムのディスカバリ ● snmp.discovery ○ SNMP OIDのディスカバリ ● vmware.*.discovery ○ VMwareのディスカバリ
  17. 17. 2.2 3.0 マクロが展開できる場所 ● アイテム・トリガー等の名前 ● アイテムキー ● トリガー条件式 ● SNMP OID ● 等 マクロが展開できる場所 ● アイテム・トリガー等の名前 ● アイテムキー ● トリガー条件式 ● SNMP OID ● アイテムの単位 ● アイテムのアプリケーション ● IPMIセンサー名 ● トリガーのURL ● 等
  18. 18. 2.2 3.0 マクロが展開できる場所 ● アイテム・トリガー等の名前 ● アイテムキー ● トリガー条件式 ● SNMP OID ● アイテムの単位 ● アイテムのアプリケーション ● IPMIセンサー名 ● トリガーのURL ● 等 マクロが展開できる場所 ● アイテム・トリガー等の名前 ● アイテムキー ● トリガー条件式 ● SNMP OID ● 等
  19. 19. Great! 自動化の幅がますます広がる!
  20. 20. Hands-on environment AWS EC2 AWS EC2 Zabbix Container Zabbix Container Zabbix Container Zabbix Container Zabbix Container Zabbix Container Zabbix Container Zabbix Container Zabbix Server Template AWS Template AWS EC2 AWS連携用コマンド zaws※1 AWS API ※1: https://github.com/ike-dai/zaws AWS EC2 Windows AmazonECS EC2_instance01 ・・・・・ EC2_instance05 EC2_windows
  21. 21. [設定]→[ホスト]ホストが自動追加された? [監視データ]→[最新データ]監視できてる?  ▶単位、アプリケーションに注目 正しくマクロ展開されている?   Step2. 自動登録データの確認
  22. 22. Step2. 自動登録データの確認
  23. 23. 講師がカスタムメトリクスを1つ追加 運用管理者(あなた)は何もしなくてもOK [監視データ]→[最新データ] フィルタのホストを「EC2_instance01」に設定 し確認   ホスト: EC2_instance01   アプリケーション: TechCircle   アイテム名: TechCircleCustom Step3. LLDアイテムの自動追加体験
  24. 24. 監視処理のスケジュール実行 プレフィックス 意味 概要 指定可能な値 md 日付 月の何日に実行するか 1-31 wd 曜日 何曜日に実行するか 1-7 h 時間 何時に実行するか 0-23 m 分 何分に実行するか 0-59 s 秒 何秒に実行するか 0-59 日、曜日、時、分、秒を指定して特定のタイミングで監視処理実行が可能に ※例: 毎月17日 16時 10分 0~59秒の間は5秒毎に監視を実行
  25. 25. 「設定」→「ホスト」から 自動登録されたホスト「EC2_instance01」 のアイテム 「cloudwatch stats monitor (EC2)」 の定期実行設定を実施   「h20mxxs0」   ※現在時刻のちょっと後の時間を指定 Step4. スケジュール監視実行設定
  26. 26. 自動登録されたホストのいずれか1つ アイテム: 「cloudwatch static monitor (EC2)」 の定期実行設定を実施   「h20mxxs0」   ※現在時刻のちょっと後の時間を指定 保存し、少し待つ Step4. スケジュール監視実行設定
  27. 27. [監視データ]→[最新データ] フィルタのホストを「EC2_instance01」に設定 し確認 最下部にある 「cloudwatch stats monitor (EC2)」の 監視結果のリストを表示 指定した時刻に監視されているか確認 Step5. スケジュール実行結果確認
  28. 28. Step5. スケジュール実行結果確認 タイムスタンプが指定した時間辺りで登録されていればOK
  29. 29. LLDオブジェクト削除時の挙動 ちなみに、ディスカバリされたものが削除された場合は・・・
  30. 30. マクロコンテキスト[Advanced 1] user macro定義 {$FS_THRESHOLD} => 70 {$FS_THRESHOLD:/data} => 90   trigger prototype定義 {host:vfs.fs.size[{#FSNAME},pused].last()}> {$FS_THRESHOLD:”{#FSNAME}”}  実際のトリガー {host:vfs.fs.size[/,pused].last()}>70 {host:vfs.fs.size[/data,pused].last()}>90 ユーザマクロが{$MACRO:Context}という形式の指定が可能に
  31. 31. Step6. マクロコンテキストの設定[Advanced 1] 1. 「Template AWS EC2」に以下のトリガープロトタイプを設定 2. ホスト「AWS account」のマクロに以下を登録 [ディスカバリルール] CloudWatch discovery (EC2) [トリガープロトタイプ] 名前: test trigger ({#METRIC.NAME}) 条件式: {Template AWS EC2: cloudwatch.metric[{#METRIC.NAME}].last()}>{$LIMIT:"{#METRIC.NAME}"} Macro Value {$LIMIT} 0 {$LIMIT:”CPUUtilization”} 5
  32. 32. Step6. マクロコンテキストの値確認[Advanced 1] [監視データ]→[最新データ]からEC2_instance01の監視結果一覧を表示 「CPUUtilization monitoring」のグラフを表示
  33. 33. WindowsサービスのLLD[Advanced 2] { "data": [ ・・・略 { "{#SERVICE.DESCRIPTION}": "Provides system monitoring", "{#SERVICE.DISPLAYNAME}": "Zabbix Agent", "{#SERVICE.NAME}": "Zabbix Agent", "{#SERVICE.PATH}": ""C:Program FilesZabbix Agentzabbix_agentd.exe" --config "C:Program FilesZabbix Agentzabbix_agentd.conf"", "{#SERVICE.STARTUPNAME}": "automatic", "{#SERVICE.STARTUP}": 0, "{#SERVICE.STATENAME}": "stopped", "{#SERVICE.STATE}": 6, "{#SERVICE.USER}": "LocalSystem" } ] } アイテムキー: service.discovery
  34. 34. Step7. WindowsサービスLLD設定 1/3[Advanced 2] 1.[設定]→[ホスト]からホスト登録   ホスト名: windows-server   ホストグループ: AWS   エージェントインタフェース:
  35. 35. Step7. WindowsサービスLLD設定 2/3[Advanced 2] 2.ディスカバリルール登録   名前: Windows service discovery   タイプ: Zabbixエージェント   キー: service.discovery
  36. 36. Step7. WindowsサービスLLD設定 3/3[Advanced 2] 3.アイテムプロトタイプ登録   名前: Windows service info [{#SERVICE.NAME}]   タイプ: Zabbixエージェント   キー: service.info[{#SERVICE.NAME}]   値のマッピング: Windows service state
  37. 37. Step7. WindowsサービスLLD結果確認[Advanced 2] [監視データ]→[最新データ]で           windows-serverの監視結果一覧を確認
  38. 38. Conclusion Zabbix3.0は監視運用を 更にインテリジェントに自動化
  39. 39. Thanks! Any questions? Please Contact us: [Tech-Circle Cafe] https://www.facebook.com/groups/techcircle/ [Connpass]   http://techcircle.connpass.com/

×