Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

39
ZABBIX-JP 池田 大輔 Zabbixを使って 大規模クラウド環境の監視を効率化 2013/08/02 OSC2013 Kansai@Kyoto

description

OSC2013 Kansai@Kyotoで話したZabbixを使ったクラウド環境監視の資料です。 ZABBIX-JP

Transcript of Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Page 1: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

ZABBIX-JP池田 大輔

Zabbixを使って

大規模クラウド環境の監視を効率化

2013/08/02 OSC2013 Kansai@Kyoto

Page 2: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 自己紹介● Zabbixの基本情報● Zabbixでクラウド環境を監視するには?

○ 監視環境どうすればいい?○ 監視設定どうすればいい?○ 監視アイテム設定どうすればいい?○ 監視結果を受けての対応(アクション)どうすればいい?

● まとめ● お知らせ

今日お話すること

Page 3: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 名前: 池田 大輔

● ZABBIX-JPのスタッフメンバー

● Twitter: @ike_dai● Facebook:https://www.facebook.com/ikedai● Zabbix関連の活動:

○ Chromix(Zabbixアラート通知用Chrome Extension)開発

○ HyClops for Zabbix(AWS,vSphere自動監視用プラグイン)開発

自己紹介

ike-daiの日記 (http://d.hatena.ne.jp/ike-dai/) Zabbix Conference 2012 @Riga

Page 4: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbixの基本情報

OSS統合監視ツールラトビアのZabbixSIA社が開発2013/08/02時点の最新安定版2.0.7

監視対象機器- Linux- Windows- NW機器等

監視方法

- Zabbix Agent監視- SNMP監視- IPMI監視- エージェントレス監視等

監視内容- リソース監視- 死活監視 - ICMPPing - プロセス- Web監視- ログ監視- HW監視- SQL監視等

Page 5: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbixの基本情報 -監視の仕組み-

Zabbix Server

trapper

poller

alerter

discoverer・・・

Shared Memory

Apache(Zabbix Frontend)

DB Server設定情報

監視結果情報

Zabbix Agent

SNMP Agent

SNMP Agent

dbsyncer

Page 6: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbixの基本情報 -監視設定-

ホストグループ

テンプレート

ホスト

アイテム トリガーグラフ割当

アイテム トリガーグラフ

・・・

・・・

アクション

アクション

アイテム トリガーグラフ

ホストグループ:Linuxホスト:Server1テンプレート:LinuxServerテンプレート

アイテム:CPU使用率トリガー:CPU使用率が5分間平均80%以上アクション:管理者にアラートメール送信

ホスト

Page 7: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● クラウド環境特有の問題は?○ 台数が大量になる○ オートスケーリング機能など稼働状況の変化が激しい○ クラウドAPIを経由した管理が必要○ などなど

Zabbixでクラウド環境監視するには?

Zabbixにはこれらを解決する機能が豊富にある

Page 8: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視環境はどうすればいい?

Page 9: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● ZabbixはNetworkReachableであれば監視可能○ パブリックIPを持つEC2インスタンスならインターネット経由

で監視も可能○ Zabbixが内部NWに属していれば内部NW経由で監視可能

監視環境どうする?

全ての監視対象機器に対してZabbixServerから接続できるよう

にするのが現実的でない場合もあるので分散監視を実施

複数のNW環境を集約して監視したい場合どうする?

Page 10: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbix Proxyを使って

クラウドとオンプレを統合的に監視

監視環境のキーポイント

Page 11: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbix Proxyが便利

監視環境どうする?

Zabbix Server

Target Server

Target Server

Target Server

Target Server

■ ZabbixServer-ZabbixProxy間のみが接続できればOK■ 設定管理/監視結果管理は統合してZabbixServer上で実施可能■ Server-Proxy間のデータ同期頻度、Proxyでのバッファサイズ等設定可■ Server-Proxy間NWが不安定でもProxyのバッファに監視結果を保管できるためデータロストが防げる

Zabbix Proxy

Target Server

Target Server

Target Server

Target Server

拠点A(例:オンプレミス環境 ) 拠点B(例:AWS環境)

管理下の対象機器のみ監視 管理下の対象機器のみ監視Active型

Passive型

設定情報

監視結果

運用担当者

DB DB

Page 12: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbix Proxyが便利

監視環境どうする?

Active型 Passive型

ホスト毎にZabbixProxyを経由して監視するかどうかの設定が可能

Passive型の場合はProxyのインタフェース情報を登録

Proxyの設定ファイル(zabbix_proxy.conf)にZabbixServer情報を設定

ProxyMode=0Server=<Zabbix Server IP address>

Page 13: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視設定はどうすればいい?

Page 14: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 監視対象機器の情報はホストとしてZabbixに対象機器毎に登録○ 監視機器のインタフェース情報○ 監視テンプレート割当○ ホストグループ管理

監視設定どうする?

最新の状況に合わせて

自動的に監視対象マシン情報をZabbixに登録する必要がある

クラウド上で動的に仮想マシンが変化する場合、その登録はどうする?

Page 15: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

ネットワークディスカバリ/自動登録を使って

監視対象機器情報登録自動化

場合によっては

Zabbix API

監視設定のキーポイント

Page 16: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

ディスカバリ(ポーリング型) 自動登録(プッシュ型)

Zabbix Serveror

Zabbix Proxy

Target Server

Target Server

Target Server

Target Server

Zabbix Serveror

Zabbix Proxy

Target Server

Target Server

Target Server

Target Server

指定したNW宛に定期ポーリング

Zabbix Agent

Zabbix Agent

Zabbix Agent

Zabbix Agent

起動時にプッシュ通知

■ NWのIPrange指定をしてポーリング■ 検知条件が豊富 - Zabbix Agent - SNMP - ICMP ping - TCP - HTTP 等

■ Agent起動時にZabbixServerに通知 →無駄なパケットが発生しない(効率的)■ 通知される情報が少ない - Hostname - ListenIP - ListenPort

監視設定どうする?

NWディスカバリ/自動登録が便利

Page 17: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

ディスカバリ(ポーリング型) 自動登録(プッシュ型)

Zabbix Serveror

Zabbix Proxy

Target Server

Target Server

Target Server

Target Server

Zabbix Serveror

Zabbix Proxy

Target Server

Target Server

Target Server

Target Server

指定したNW宛に定期ポーリング

Zabbix Agent

Zabbix Agent

Zabbix Agent

Zabbix Agent

起動時にプッシュ通知

■ NWのIPrange指定をしてポーリング■ 検知条件が豊富 - Zabbix Agent - SNMP - ICMP ping - TCP - HTTP 等

■ Agent起動時にZabbixServerに通知 →無駄なパケットが発生しない(効率的)■ 通知される情報が少ない - Hostname - ListenIP - ListenPort

監視設定どうする?

NWディスカバリ/自動登録が便利

パブリッククラウドの場合、NW IPレンジの特定が難しい →自動登録を検討ZabbixAgentの導入が難しい場合やより柔軟な自動設定をしたい場合 →Zabbix APIを使った自動化を検討

Page 18: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

■ Zabbix1.8から実装された外部とZabbixとのインタフェース - Zabbixに対する操作(設定変更、ホスト追加、グループ作成等)実施 - Zabbixで管理している監視結果の取得(history,event,IT service情報)■ JSON-RPC形式のAPI - URL: http://<zabbix-server>/zabbix/api_jsonrpc.php - メソッド: host.create、host.update、item.get、history.getなど - パラメータ: メソッド毎に必要なパラメータを渡す

host.getの例レスポンス

{ "auth": "xxxxxxx", "method": "host.get", "params": { "output": "extend", "filter": {"host":"Zabbix server"} }, "jsonrpc": "2.0", "id": 1}

{ "jsonrpc":"2.0", "result":[{ "maintenances":[], "hostid":"10084", "host":"Zabbix server", ・・・略 }], "id":1}

リクエストパラメータ

監視設定どうする?

柔軟な登録処理をしたいならZabbixAPI

Page 19: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

■ 例:AWSのEC2インスタンスの自動登録

監視設定どうする?

柔軟な登録処理をしたいならZabbixAPI

AWSリージョン

AWSリージョン

AWSリージョン

AWSリージョン

AW

S A

PI

Scripts

インスタンス情報取得リクエストDescribeInstances

・Public DNS(dns-name)・Public IP(ip-address)・Private IP(private-ip-address)・タグ情報(tag-set)・プラットフォーム情報 (platform)など

Zabbix Server

Zabbix AP

I

host.create(host.update)・パラメータ - インターフェース情報 - 登録ホストグループ指定 - 登録テンプレート指定

・・・

Page 20: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視アイテム設定をどうすればいい?

Page 21: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● IaaSを運用管理する場合レイヤが二分される

① クラウドサービス利用者管理レイヤ■ Zabbix Agentが入れば既存と同様の監視を

② クラウドサービス事業者管理レイヤ■ 情報収集できる口はクラウドAPI■ クラウドAPIを効果的に活用して監視を

監視アイテム設定どうする?

Zabbixで提供される豊富な監視手法を有効活用

Page 22: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

外部チェックスクリプト/Zabbix Agent UserParameterを使って

柔軟な監視を実施

Zabbix Senderも効果的

監視アイテム設定のキーポイント

Page 23: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● クラウドAPI監視に使える監視手法例① 外部チェックスクリプト監視

② ZabbixAgent UserParameter監視

③ Zabbix senderを使った監視

監視アイテム設定どうする?Zabbix S

erver

Zabbix Agent

スクリプト

クラウド

AP

I

ZabbixSender

ZabbixTrapper

ZabbixExternalCheck

リクエスト

監視結果

プッシュ型でZabbixに監視結果送付

リクエスト

監視結果

Page 24: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視アイテム設定どうする?

Serverから直接アクセスなら外部チェックスクリプト監視

■ ZabbixServerから任意の処理実行結果を監視 - 外部チェックスクリプト監視1実行につき1監視結果 - 文字列、数値等が戻り値として返ってくるようスクリプトを作成

■ 監視設定手順 - スクリプト作成 (引数の活用も可能) - ExternalScriptsで指定したディレクトリにスクリプト配置 - Zabbix起動ユーザに実行権限付与 - 外部チェックスクリプト監視アイテム登録

引数はカンマ区切りで複数指定可能マクロ展開にも対応

Page 25: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視アイテム設定どうする?

■ 例:AWS CloudWatchの課金情報監視結果最新値をAWS APIから取得

CloudWatchからAWS課金情報監視例

Serverから直接アクセスなら外部チェックスクリプト監視

Page 26: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

UserParameter=monitor.aws[*],/bin/sh monitor_aws.sh $1

監視アイテム設定どうする?

AgentからアクセスならUserParameter監視

■ ZabbixAgentから任意の処理実行結果を監視 - ZabbixAgent稼働サーバ内で実行した処理結果を監視可能 - ZabbixAgent内の情報収集を実施する等で活用 - クラウドAPIアクセスをAgentから実施する場合にはこの方法もあり

■ 監視設定手順 - Agent設定ファイルにUserParameter定義を実施 - ZabbixにZabbixAgent監視アイテムを登録

新しいキーの定義([*]:アイテムキーの引数を扱うことが可能に )

zabbix_agentd.conf

監視実行内容を記述(引数は$1,$2,$3に格納されて渡ってくる )

設定項目 値

タイプ Zabbix Agent

キー monitor.aws[引数]

Page 27: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbix Server

DB監視結果情報

設定情報

ZabbixTrapper

ZabbixAPI

ZabbixSender

set

ZabbixAPI

libraryset

get

■ 外部から監視結果をプッシュ型で登録するためのプログラム - Zabbix Trapperアイテムに対して値を登録 - 何らかのトリガーをきっかけに監視結果をプッシュ型で送付したい場合等に有効 - Agentレスでもzabbix_senderコマンドを実行するだけで実現可能

$ zabbix_sender -z <zabbix-server> -s "Zabbix server" -k "sender.test" -o 100

Zabbix sender実行例ホスト: Zabbix serverアイテムキー : sender.test に100という数値を送る例

監視アイテム設定どうする?

効率よく監視結果登録するならZabbixSender

Page 28: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

■ 有効活用例: - 外部チェックスクリプトでクラウドAPIから情報を一括取得 - 一括取得した情報をZabbix Senderで一括プッシュ登録

監視アイテム設定どうする?

ZabbixSender+外部チェックスクリプト

クラウド

AP

I

スクリプト

ZabbixExternalCheck

リクエスト

監視結果ZabbixSender

ZabbixTrapperZabbix

TrapperZabbixTrapperZabbix

TrapperZabbixTrapper

Zabbix Server

一度のAPIアクセスで複数の情報の監視が可能

Page 29: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

おまけ:AWS環境ならこんな監視をしてみては?

監視項目 監視手法 詳細な監視アイテム例

OSより上 Zabbix Agent

OS種別毎の監視

- Template OS Linux- Template OS Windowsなど

AWSEC2インスタンス基本情報 AWS EC2 API

- 稼働AZ情報

- インタフェース情報

- 稼働ステータス情報

- インスタンスタイプ情報

- セキュリティグループ情報

- インスタンスプラットフォーム情報

など

AWSEC2インスタンス稼働情報 AWS CloudWatch API

- CPU使用率

- ネットワークIO- ディスクIO- メモリ使用率

など

AWSS3使用情報 AWS S3 API

- バケット毎のサイズ

など

AWS課金情報 AWS CloudWatch API

- サービス毎の課金情報

- トータルの課金情報

など

Page 30: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

監視結果を受けての対応はどうすればいい?

Page 31: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 障害を確実に検知する必要がある● 検知後の処理自動化で運用作業低減したい

アクション設定どうする?

アクションのステップ実行可能

自動処理実施も可能

Page 32: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

アクションステップ実行を使って

適切なタイミングで適切な通知を

リモートコマンド

を活用し自動化を促進

アクション設定のキーポイント

Page 33: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● Zabbixで実施可能なアクションは2種類○ メッセージ通知○ リモートコマンド実行

● アクションはステップ実行可能

アクション設定どうする?

アクションのステップ実行

担当者へのメッセージ送信

第1ステップ

管理者・担当者への

メッセージ送信

プロセスA再起動(カスタムスクリプト)

第2ステップ 第3ステップ

間隔1時間

間隔2時間

アクション実行フロー

管理者へのメッセージ送信

プロセスA再起動(カスタムスクリプト)

トリガー

Page 34: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 設定例:○ 担当者はOperatorsグループ○ 管理者はManagersグループ

アクション設定どうする?

アクションのステップ実行

Page 35: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● リモートコマンドでできること○ Zabbix Agent/Zabbix Serverからコマンド実行○ Telnet/SSH接続してコマンド実行○ IPMIコマンド実行○ グローバルスクリプト実行

アクション設定どうする?

アクションによる自動化

例: 

 - あるサーバ上のプロセスを再起動 - クラウドAPIを叩いてマシンを再起動する処理をZabbix Server上で実行  など

Page 36: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

まとめ

Page 37: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 監視環境は?○ ZabbixProxyを活用して分散監視が効果的

● 監視設定は?○ NWディスカバリ/自動登録で自動設定○ さらに柔軟性が必要ならZabbixAPIが効果的

● 監視アイテム設定は?○ 外部チェックスクリプト/UserParameterで柔軟な監視を○ さらにzabbix_senderで効率良い監視を

● アクション設定は?○ ステップ実行で適切なアクション実行を○ リモートコマンド実行で運用自動化実現を

まとめ

大規模クラウド環境をZabbixを使って監視運用

Page 38: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

● 展示ブース(8/2,8/3)○ 『1号館4F:ホワイエ』○ Zabbixのデモ展示しています○ Zabbixに関するご相談・ご質問お答えします

● コミュニティサイト○ http://www.zabbix.jp/○ フォーラムや最新情報提供等

お知らせ

ZABBIX-JP

Page 39: Osc2013 kansai@kyoto ZABBIX-JP クラウド環境監視効率化

Zabbixで効率良い監視運用の実現を!

ご清聴ありがとうございました

@ike_dai