40
Tech-Circle #13 Zabbix Hands-on

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

Embed Size (px)

Citation preview

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

Tech-Circle #13

Zabbix Hands-on

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

Hello!I am Daisuke IKEDATIS Inc.OSS Promotion office

You can find me at:@ike_dai

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

3.0でのLLD機能強化を体験

2.LLDを使った

自動化ハンズオン

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

Lesson2のゴール

LLDのトリガー設定を

効果的に

新しいLLDディスカバリ

ルールを試す

LLDでCloudWatch

自動連携

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

解説に入る前に

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

事前に配布しているURLにアクセス

URL: http://IP:Port/zabbix

Username: AdminPassword: techcircle13

Step0. Zabbix管理画面にアクセス

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

[設定]→[ホスト] ホストの追加からホスト登録

 ホスト名: AWS Account テンプレート: Template AWS 新規グループ作成: AWS マクロ:

Step1. ホスト新規登録

Macro Value

{$KEY}

{$SECRET}

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

LLD (Low Level Discovery) とは?

監視対象のサーバ内の情報を探索して、

アイテム・トリガー・グラフ・ホスト等を自動登録する機能

 Use Case 1サーバ内のデバイス情報を探索

   監視アイテムを自動登録

 Use Case 2VMwareのHV,VM一覧をvSphere APIで取得

   ホストを自動登録

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

LLDのプロセスフロー

ディスカバリルールに基づく探索

JSON形式で値取得

{#・・・}形式のマクロに登録

プロトタイプ設定を元に自動登録

1

2

3

4

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

LLDのプロセスフロー

JSON形式で値取得

{#・・・}形式のマクロに登録

プロトタイプ設定を元に自動登録

1

2

3

4

ディスカバリルールに基づく探索

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

LLDのプロセスフロー

ディスカバリルールに基づく探索

JSON形式で値取得

{#・・・}形式のマクロに登録

プロトタイプ設定を元に自動登録

1

2

3

4

{

"data":[

   {

   "{#FSNAME}":"\/",

  "{#FSTYPE}":"ext3"},

  {

  "{#FSNAME}":"\/data",

  "{#FSTYPE}":"ext3"},

  ・・・省略

}

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

LLDのプロセスフロー

ディスカバリルールに基づく探索

JSON形式で値取得

{#・・・}形式のマクロに登録

プロトタイプ設定を元に自動登録

1

2

3

4

マクロ名 データ1 データ2 データ3

{#FSNAME} / /data /boot

{#FSTYPE} ext3 ext3 ext3

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

LLDのプロセスフロー

ディスカバリルールに基づく探索

JSON形式で値取得

{#・・・}形式のマクロに登録

プロトタイプ設定を元に自動登録

1

2

3

4

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

【応用】LLDのカスタマイズ

{"data":[ { "{#INSTANCE.NAME}":"teacher", "{#INSTANCE.TYPE}":"t2.small", "{#INSTANCE.ID}":"i-xxxxxxxxx", "{#INSTANCE.PRIVATE.ADDR}":"172.xx.xx.xx" }, { ・・・ } ]}

決まったJSONフォーマットで応答を返せば何にでも応用可能

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

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サービスディスカバリ

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

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のディスカバリ

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

2.2 3.0マクロが展開できる場所

● アイテム・トリガー等の名前● アイテムキー● トリガー条件式● SNMP OID● 等

マクロが展開できる場所

● アイテム・トリガー等の名前● アイテムキー● トリガー条件式● SNMP OID● アイテムの単位● アイテムのアプリケーション● IPMIセンサー名● トリガーのURL● 等

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

2.2 3.0マクロが展開できる場所

● アイテム・トリガー等の名前● アイテムキー● トリガー条件式● SNMP OID● アイテムの単位● アイテムのアプリケーション● IPMIセンサー名● トリガーのURL● 等

マクロが展開できる場所

● アイテム・トリガー等の名前● アイテムキー● トリガー条件式● SNMP OID● 等

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

Great!

自動化の幅がますます広がる!

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

Hands-on environment

AWS EC2 AWS EC2

ZabbixContainer

ZabbixContainer

ZabbixContainerZabbix

Container

ZabbixContainer

ZabbixContainer

ZabbixContainerZabbix

Container

Zabbix Server

Template AWSTemplate AWS EC2

AWS連携用コマンドzaws※1

AWS API

※1: https://github.com/ike-dai/zaws

AWS EC2Windows

AmazonECS

EC2_instance01

・・・・・

EC2_instance05 EC2_windows

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

[設定]→[ホスト]ホストが自動追加された?

[監視データ]→[最新データ]監視できてる? ▶単位、アプリケーションに注目

正しくマクロ展開されている?

 

Step2. 自動登録データの確認

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

Step2. 自動登録データの確認

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

講師がカスタムメトリクスを1つ追加運用管理者(あなた)は何もしなくてもOK

[監視データ]→[最新データ] フィルタのホストを「EC2_instance01」に設定し確認  ホスト: EC2_instance01  アプリケーション: TechCircle  アイテム名: TechCircleCustom

Step3. LLDアイテムの自動追加体験

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

監視処理のスケジュール実行

プレフィックス 意味 概要 指定可能な値

md 日付 月の何日に実行するか 1-31

wd 曜日 何曜日に実行するか 1-7

h 時間 何時に実行するか 0-23

m 分 何分に実行するか 0-59

s 秒 何秒に実行するか 0-59

日、曜日、時、分、秒を指定して特定のタイミングで監視処理実行が可能に

※例: 毎月17日 16時 10分 0~59秒の間は5秒毎に監視を実行

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

「設定」→「ホスト」から自動登録されたホスト「EC2_instance01」のアイテム

「cloudwatch stats monitor (EC2)」 の定期実行設定を実施

  「h20mxxs0」  ※現在時刻のちょっと後の時間を指定

Step4. スケジュール監視実行設定

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

自動登録されたホストのいずれか1つ

アイテム: 「cloudwatch static monitor (EC2)」 の定期実行設定を実施

  「h20mxxs0」  ※現在時刻のちょっと後の時間を指定保存し、少し待つ

Step4. スケジュール監視実行設定

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

[監視データ]→[最新データ]フィルタのホストを「EC2_instance01」に設定し確認

最下部にある「cloudwatch stats monitor (EC2)」の

監視結果のリストを表示指定した時刻に監視されているか確認

Step5. スケジュール実行結果確認

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

Step5. スケジュール実行結果確認

タイムスタンプが指定した時間辺りで登録されていればOK

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

LLDオブジェクト削除時の挙動

ちなみに、ディスカバリされたものが削除された場合は・・・

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

マクロコンテキスト[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}という形式の指定が可能に

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

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

Page 32: Tech circle#13 zabbix3.0ハンズオン lld
Page 33: Tech circle#13 zabbix3.0ハンズオン lld

Step6. マクロコンテキストの値確認[Advanced 1]

[監視データ]→[最新データ]からEC2_instance01の監視結果一覧を表示

「CPUUtilization monitoring」のグラフを表示

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

WindowsサービスのLLD[Advanced 2]

{ "data": [ ・・・略

{ "{#SERVICE.DESCRIPTION}": "Provides system monitoring", "{#SERVICE.DISPLAYNAME}": "Zabbix Agent", "{#SERVICE.NAME}": "Zabbix Agent", "{#SERVICE.PATH}": ""C:\Program Files\Zabbix Agent\zabbix_agentd.exe" --config "C:\Program Files\Zabbix Agent\zabbix_agentd.conf"", "{#SERVICE.STARTUPNAME}": "automatic", "{#SERVICE.STARTUP}": 0, "{#SERVICE.STATENAME}": "stopped", "{#SERVICE.STATE}": 6, "{#SERVICE.USER}": "LocalSystem" } ]}

アイテムキー: service.discovery

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

Step7. WindowsサービスLLD設定 1/3[Advanced 2]

1.[設定]→[ホスト]からホスト登録  ホスト名: windows-server  ホストグループ: AWS  エージェントインタフェース:

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

Step7. WindowsサービスLLD設定 2/3[Advanced 2]

2.ディスカバリルール登録  名前: Windows service discovery  タイプ: Zabbixエージェント  キー: service.discovery

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

Step7. WindowsサービスLLD設定 3/3[Advanced 2]

3.アイテムプロトタイプ登録  名前: Windows service info [{#SERVICE.NAME}]  タイプ: Zabbixエージェント  キー: service.info[{#SERVICE.NAME}]  値のマッピング: Windows service state

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

Step7. WindowsサービスLLD結果確認[Advanced 2]

[監視データ]→[最新データ]で          windows-serverの監視結果一覧を確認

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

Conclusion

Zabbix3.0は監視運用を

更にインテリジェントに自動化

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

Thanks!Any questions?Please Contact us:

[Tech-Circle Cafe] https://www.facebook.com/groups/techcircle/ [Connpass]  http://techcircle.connpass.com/