手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

42
手作業なしの安定環境実現に向けた Zabbix活用方法紹介 +Zabbix2.4最新機能紹介 TIS 株式会社 戦略技術センター 池田 大輔 2014/8/1 OSC2014 Kansai@Kyoto

description

OSC2014Kansai@Kyotoでの発表資料です。

Transcript of 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Page 1: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

手作業なしの安定環境実現に向けたZabbix活用方法紹介

+Zabbix2.4最新機能紹介

TIS 株式会社戦略技術センター

池田 大輔

2014/8/1 OSC2014 Kansai@Kyoto

Page 2: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

自己紹介

池田 大輔

TIS株式会社 戦略技術センター

@ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler...

名前

所属

Twitter

Facebook

興味

AWS、VMware監視用プラグイン『HyClops for Zabbix』開発(http://tech-sketch.github.io/hyclops/jp/)技術評論社HP : http://gihyo.jp/book/2014/978-4-7741-6288-1

Amazon : http://www.amazon.co.jp/dp/4774162884

Page 3: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

TIS OSSサポートサービス

保守サポート

コンサルティング マイグレーション

OSSの利用をトータルにバックアップ

Page 4: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

TIS OSSサポートサービス

対象OSS

インフラ基盤

運用基盤

アプリケーション稼働基盤

Page 5: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

TIS OSSサポートサービス

対象OSS

インフラ基盤

運用基盤

アプリケーション稼働基盤

※TISはZabbix社の認定パートナーです。

Page 6: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

アジェンダ

■ Zabbixをほんとに使ってみるべきなのか?

■ 使うと決めたらどうやって使えばうまく活用できるのか?

■ Zabbixのこれまでと今後の動き

Page 7: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixを使うべきなのか?

Page 8: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの特徴を知る

監視対象システムの特徴を知る

Page 9: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの特徴を知る

● Zabbixの監視の仕組み● Zabbixが扱うデータの構造● Zabbixの機能

Page 10: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの特徴を知る

● Zabbixの監視の仕組み● Zabbixが扱うデータの構造● Zabbixの機能

Zabbix Server

trapper

polleralerter

discoverer

Shared Memory

Zabbix Frontend

DB監視設定情報

history syncer

unreachable poller

監視結果情報

設定・確認

SNMP Agent SNMP Agent

Zabbix AgentSNMP Agent

Zabbix Agent

...

Page 11: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの特徴を知る

● Zabbixの監視の仕組み● Zabbixが扱うデータの構造● Zabbixの機能

ホストグループ(例:Linux servers)

アイテム(例:CPU使用率、メモリ空き容量 )

トリガー(例:CPU使用率が

90%以上)

アクション(例:ユーザAに即座にアラートメール送信 )

シンプルグラフ(例:CPU使用率

のグラフ)

グラフ(例:全マシンの

CPU使用率のグラフ )

ユーザ(例:PJ01運用担当者A)

ユーザグループ(例:PJ01運用担当者

グループ)

メディア(メールアドレス、通知スクリプト )

0..*

1..*

テンプレート(例:Template OS Linux)

0..*

0..*

ホスト(例:linux-server01)

0..*0..*

0..*

0..* 0..*

1..*

0..* 0..*

0..*

0..*

0..*

1..*

0..*0..*

0..*

0..*

0..1

1

0..*

1..*

10..*

Page 12: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの特徴を知る

● Zabbixの監視の仕組み● Zabbixが扱うデータの構造● Zabbixの機能

HW

HV

VM VM

別拠点

NW

Webサービス

OS(Linux) OS(Windows)

MW MW

APP APP

IPMI監視

VMware監視

Web監視

Zabbix Agentによる監視 - リソース監視 - ログ監視 - プロセス監視

Java JMX監視

Windows WMI監視

SNMP/SNMPTrap監視ZabbixProxyを利用した多拠点統合監視

Page 13: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

監視対象システムの特徴を知る● 監視に求められる要件

○ 監視対象の機器数○ 監視頻度○ 監視対象機器毎の監視アイテム数○ 監視結果の保存期間

■ 生の監視結果の保存期間■ トレンド(1時間毎の平均/最大/最小)情報の保存期間

○ 障害発生時の運用フロー

つまり

● どれぐらいの時間で障害情報を知りたいのか?● 監視結果からどういった分析をしたいのか?● どういった運用を実現したいのか?

Page 14: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

どうすればうまく使えるのか?

Page 15: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

うまく使うとは?

状態の変化をZabbixで確実に検知できる

低コストで監視環境の構築や運用作業が実現できる

担当者が見落とさないよう確実に情報を届ける

ストレスフリーな安定した運用の実現

Page 16: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

構築・運用作業の低コスト化

どうすればうまく使えるのか?

Page 17: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

構築・運用作業の低コスト化監視設定パターン化 監視設定自動化 運用自動化

テンプレート機能 ネットワークディスカバリ機能

ZabbixAgent自動登録機能

ローレベルディスカバリ機能

アクション機能

監視設定をサーバの用途毎、種別毎等まとめる機能

IPレンジを指定して定期的に監視対象機器の追加・削除を検知

Agent起動時に自身の情報をZabbix Serverに自動連携

監視対象サーバ内の情報を収集し、その内容に合わせて自動設定

条件を設定してあらかじめ登録した運用作業処理実行コマンドを自動実行

Page 18: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

テンプレート機能の効果的活用

テンプレート作成時はマクロを効果的に活用

テンプレートに登録するトリガー設定の例

 『監視アイテムAの直近の値がxxxx以上になれば障害とみなす』

サーバのスペックに応じて変えたい場面などマクロ化すると便利

{テンプレート名:監視アイテムA.last(0)}>={$THRESHOLD}注意● ユーザが設定できるマクロは3種類

○ グローバルマクロ○ テンプレートマクロ○ ホストマクロ

● マクロの優先順位○ ホストマクロ > テンプレートマクロ > グローバルマクロ

Page 19: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

NWディスカバリとAgent自動登録の使い分け

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

Zabbix Serveror

Zabbix Proxy

Target Server

NWDevice

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 (Agetホスト名) - ListenIP (Agent稼働IP) - ListenPort (Agent稼働ポート) - HostMetadata (Agentに割り当てられたメタ情報 )

起動時にプッシュ通知

Page 20: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

NWディスカバリとAgent自動登録の使い分け

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

Zabbix Serveror

Zabbix Proxy

Target Server

NWDevice

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 (Agetホスト名) - ListenIP (Agent稼働IP) - ListenPort (Agent稼働ポート) - HostMetadata (Agentに割り当てられたメタ情報 )

起動時にプッシュ通知

NW機器等の自動設定にも有効

Agent稼働マシンの用途に応じた設定が可能

Page 21: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

例:マシンが搭載しているFSのディスカバリ (vfs.fs.discovery)

ローレベルディスカバリの仕組み

処理の流れ

ディスカバリルールに基づき

監視対象の内部情報を収集

プロトタイプ設定に基づき

監視設定を自動登録

存在しなくなったリソースを検知して設定を自動削除

探索

登録

削除

{ "data":[   {   "{#FSNAME}":"\/",  "{#FSTYPE}":"rootfs"},  {  "{#FSNAME}":"\/data",  "{#FSTYPE}":"ext4"},    ・・・省略

}

ディスカバリ結果格納用マクロ

ディスカバリ結果格納用マクロを利用して『アイテム・トリガー・グラフ・ホスト』設定

例: ディスク使用量確認用アイテムキー設定 vfs.fs.size[{#FSNAME},used]

Page 22: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

アクション機能の活用

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

第1ステップ

管理者・担当者への

メッセージ送信

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

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

間隔1時間

間隔2時間

アクション実行フロー

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

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

障害発生

注意● 実行ステップの管理は1つの実行条件についてのフローのみ

○ 実行ステップの途中の状態に応じて細かい分岐処理等の対応は難しい● ジョブ管理ツール(JobScheduler等)との連携が重要に

アクションはZabbix ServerおよびZabbix Agentから任意のスクリプト実行可能

Page 23: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

状態の変化を確実に検知

どうすればうまく使えるのか?

Page 24: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

状態の変化を確実に検知

● 監視結果登録待ちキューの状態に注意● トリガーの条件式を効果的に活用● 計算アイテム・アグリゲートアイテム

を効果的に活用

Page 25: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

監視待ちキュー

● 監視実行が滞っているアイテムの数を管理○ Zabbixインターナル監視アイテムで監視可能

アイテムキー: zabbix[queue,<from>,<to>]例: zabbix[queue,1m,5m] → 1分以上5分未満のキューの数

注意● キューが溜まっている場合

○ 遅れている監視アイテム・ホストの状態をチェック

○ 監視実行プロセスの数を増やす等チューニング

Page 26: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

トリガー条件式の活用

● トリガー関数、評価式をうまく組み合わせる● 例: ディスク使用量の増加傾向

({ディスク使用量監視アイテム .last(0)} - {ディスク使用量監視アイテム .last(0,604800)})/7+{ディスク使用量監視アイテム .last(0)}

翌日のディスク量の予測量

過去1週間の監視結果から算出する 1日分の増加量平均

現状のディスク使用量

注意● Zabbix2.4から表記方法変わります

○ 旧: >、<、=、#(notを示す記号)、&(andを示す記号)、|(orを示す記号)○ 新: >、<、=、>=、<=、not(もしくは<>)、and、or

Page 27: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

計算アイテム・アグリゲートアイテムの活用

● 例: 分散値を監視○ 負荷分散しているWebサーバのロードアベレージの偏りを監視等

LoadBalancer

Webサーバ1 Webサーバ2 Webサーバ3 Webサーバ4

スケールアウト

個々の値から、全体の状況を監視

Page 28: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

計算アイテム・アグリゲートアイテムの活用

アイテムキー設定例grpavg[Web servers,system.cpu.load[,avg1],last,0]

Zabbixのホストグループ単位で同じアイテムの値を計算処理平均(grpavg)、最大(grpmax)、最小(grpmin)、合計(grpsum)

アグリゲートアイテム

Zabbixの監視アイテムの値を計算処理加算・減算・乗算・除算・Zabbixのトリガー関数による計算処理

計算アイテム

計算処理例Webサーバグループのロードアベレージの分散値の計算「(hostAのロードアベレージ - Webサーバのホスト群のロードアベレージの平均)の2乗」

Page 29: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

担当者に確実に届ける

どうすればうまく使えるのか?

Page 30: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

担当者に確実に届ける

● 不要な通知を発生させない● 「監視できていなかった」を見逃さない

Page 31: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

不要な通知を発生させない

● トリガーの依存関係を有効活用例: 仮想環境の稼働状態を統合的に監視

ハイパーバイザが障害

物理マシン(ハイパーバイザ )

仮想マシン群

Page 32: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

不要な通知を発生させない

● トリガーの依存関係を有効活用例: 仮想環境の稼働状態を統合的に監視

ハイパーバイザが障害

物理マシン(ハイパーバイザ )

仮想マシン群

VMにも影響

各VMが障害

依存関係

Page 33: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

「監視できていなかった」を見逃さない

● 内部イベント情報の検知

○ アクションの設定にて、イベントソース内部イベント選択○ 内部イベントの状態に応じたアクション設定を追加

アクション条件に指定できる要素● イベントタイプ

● アプリケーション

● ホスト

● ホストグループ

● テンプレート

指定可能なイベントタイプの条件

アイテム 通常 取得不可

ディスカバリルール 通常 取得不可

トリガー 通常 不明

Page 34: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixのこれまでと今後

Page 35: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの進化

性能改善 機能拡充

2008/6 1.6リリース

2001/4 初版リリース

2009/12 1.8リリース

2012/5 2.0リリース

2013/11 2.2リリース

2014/xx 2.4リリース予定?

Page 36: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbixの機能拡充

監視できる幅拡大 自動化の促進

2.0 2.0

2.2 2.2

・JMX監視機能の実装・SNMP Trap監視機能の実装

・VMware監視機能の実装・WMI監視機能の実装

・NWディスカバリ機能の拡充 (HTTPS、Telnetによるディスカバリ )・ローレベルディスカバリ機能実装

・ローレベルディスカバリ機能の拡充 (ホストプロトタイプ機能の追加 )・ZabbixAgent自動登録機能の拡充 (ホストメタデータ機能の追加 )・バージョンアップ自動化機能の実装 (DBの自動アップデート機能 )

Page 37: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Zabbix2.4の新機能の一部

監視できる幅拡大 自動化の促進

2.4 2.4

・Web監視機能の拡充 ・ローレベルディスカバリ フィルタリング機能の拡充

Page 38: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

Web監視機能の拡充

・ヘッダーをカスタマイズして監視可能に(シナリオや各ステップに対して設定可能 )

・監視対象のページ情報の細かい指定も可能に(これまではページの全体およびリダイレクトの最終到達ページのみの監視のみ対応だった )

SSL認証にも対応(これまではSSLのクライアント認証が必要なページは独自の作り込みが必要だった )

Web監視が可能な範囲の拡張

Page 39: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

ローレベルディスカバリのフィルタリング機能拡充

ディスカバリの結果に対してフィルタリングした上で登録すべきデータを選別できる

複数のフィルタの複合条件での指定が可能に

より柔軟な自動化設定が可能に

Page 40: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

まとめ

今後の拡張も益々期待されるZabbix

Zabbixが適するのか?を考え

ただ単に導入するだけでなく工夫することで劇的に効果を発揮

見極めて活用を!

Page 41: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

TISでは

● Zabbixの機能の検証活動や情報の発信● Zabbixの価値を向上させるツール開発● Zabbixに関するコンサル● Zabbixの保守サポート

ハイブリッドクラウド監視モジュール

書籍: Zabbix統合監視「徹底活用」

PostgreSQL監視テンプレート

Page 42: 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介

TIS OSSサポートサービス

問い合わせ先

[email protected]

TIS株式会社OSSサポートサービス担当窓口

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