手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
-
Upload
daisuke-ikeda -
Category
Technology
-
view
3.358 -
download
1
description
Transcript of 手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介
+Zabbix2.4最新機能紹介
TIS 株式会社戦略技術センター
池田 大輔
2014/8/1 OSC2014 Kansai@Kyoto
自己紹介
池田 大輔
TIS株式会社 戦略技術センター
@ike_dai https://www.facebook.com/ikedai Zabbix,AWS,fluentd,Chef,JobScheduler...
名前
所属
興味
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
TIS OSSサポートサービス
保守サポート
コンサルティング マイグレーション
OSSの利用をトータルにバックアップ
TIS OSSサポートサービス
対象OSS
インフラ基盤
運用基盤
アプリケーション稼働基盤
TIS OSSサポートサービス
対象OSS
インフラ基盤
運用基盤
アプリケーション稼働基盤
※TISはZabbix社の認定パートナーです。
アジェンダ
■ Zabbixをほんとに使ってみるべきなのか?
■ 使うと決めたらどうやって使えばうまく活用できるのか?
■ Zabbixのこれまでと今後の動き
Zabbixを使うべきなのか?
Zabbixの特徴を知る
監視対象システムの特徴を知る
Zabbixの特徴を知る
● Zabbixの監視の仕組み● Zabbixが扱うデータの構造● Zabbixの機能
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
...
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..*
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を利用した多拠点統合監視
監視対象システムの特徴を知る● 監視に求められる要件
○ 監視対象の機器数○ 監視頻度○ 監視対象機器毎の監視アイテム数○ 監視結果の保存期間
■ 生の監視結果の保存期間■ トレンド(1時間毎の平均/最大/最小)情報の保存期間
○ 障害発生時の運用フロー
つまり
● どれぐらいの時間で障害情報を知りたいのか?● 監視結果からどういった分析をしたいのか?● どういった運用を実現したいのか?
どうすればうまく使えるのか?
うまく使うとは?
状態の変化をZabbixで確実に検知できる
低コストで監視環境の構築や運用作業が実現できる
担当者が見落とさないよう確実に情報を届ける
ストレスフリーな安定した運用の実現
構築・運用作業の低コスト化
どうすればうまく使えるのか?
構築・運用作業の低コスト化監視設定パターン化 監視設定自動化 運用自動化
テンプレート機能 ネットワークディスカバリ機能
ZabbixAgent自動登録機能
ローレベルディスカバリ機能
アクション機能
監視設定をサーバの用途毎、種別毎等まとめる機能
IPレンジを指定して定期的に監視対象機器の追加・削除を検知
Agent起動時に自身の情報をZabbix Serverに自動連携
監視対象サーバ内の情報を収集し、その内容に合わせて自動設定
条件を設定してあらかじめ登録した運用作業処理実行コマンドを自動実行
テンプレート機能の効果的活用
テンプレート作成時はマクロを効果的に活用
テンプレートに登録するトリガー設定の例
『監視アイテムAの直近の値がxxxx以上になれば障害とみなす』
サーバのスペックに応じて変えたい場面などマクロ化すると便利
{テンプレート名:監視アイテムA.last(0)}>={$THRESHOLD}注意● ユーザが設定できるマクロは3種類
○ グローバルマクロ○ テンプレートマクロ○ ホストマクロ
● マクロの優先順位○ ホストマクロ > テンプレートマクロ > グローバルマクロ
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自動登録の使い分け
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稼働マシンの用途に応じた設定が可能
例:マシンが搭載しているFSのディスカバリ (vfs.fs.discovery)
ローレベルディスカバリの仕組み
処理の流れ
ディスカバリルールに基づき
監視対象の内部情報を収集
プロトタイプ設定に基づき
監視設定を自動登録
存在しなくなったリソースを検知して設定を自動削除
探索
登録
削除
{ "data":[ { "{#FSNAME}":"\/", "{#FSTYPE}":"rootfs"}, { "{#FSNAME}":"\/data", "{#FSTYPE}":"ext4"}, ・・・省略
}
ディスカバリ結果格納用マクロ
ディスカバリ結果格納用マクロを利用して『アイテム・トリガー・グラフ・ホスト』設定
例: ディスク使用量確認用アイテムキー設定 vfs.fs.size[{#FSNAME},used]
アクション機能の活用
担当者へのメッセージ送信
第1ステップ
管理者・担当者への
メッセージ送信
プロセスA再起動(カスタムスクリプト)
第2ステップ 第3ステップ
間隔1時間
間隔2時間
アクション実行フロー
管理者へのメッセージ送信
プロセスA再起動(カスタムスクリプト)
障害発生
注意● 実行ステップの管理は1つの実行条件についてのフローのみ
○ 実行ステップの途中の状態に応じて細かい分岐処理等の対応は難しい● ジョブ管理ツール(JobScheduler等)との連携が重要に
アクションはZabbix ServerおよびZabbix Agentから任意のスクリプト実行可能
状態の変化を確実に検知
どうすればうまく使えるのか?
状態の変化を確実に検知
● 監視結果登録待ちキューの状態に注意● トリガーの条件式を効果的に活用● 計算アイテム・アグリゲートアイテム
を効果的に活用
監視待ちキュー
● 監視実行が滞っているアイテムの数を管理○ Zabbixインターナル監視アイテムで監視可能
アイテムキー: zabbix[queue,<from>,<to>]例: zabbix[queue,1m,5m] → 1分以上5分未満のキューの数
注意● キューが溜まっている場合
○ 遅れている監視アイテム・ホストの状態をチェック
○ 監視実行プロセスの数を増やす等チューニング
トリガー条件式の活用
● トリガー関数、評価式をうまく組み合わせる● 例: ディスク使用量の増加傾向
({ディスク使用量監視アイテム .last(0)} - {ディスク使用量監視アイテム .last(0,604800)})/7+{ディスク使用量監視アイテム .last(0)}
翌日のディスク量の予測量
過去1週間の監視結果から算出する 1日分の増加量平均
現状のディスク使用量
注意● Zabbix2.4から表記方法変わります
○ 旧: >、<、=、#(notを示す記号)、&(andを示す記号)、|(orを示す記号)○ 新: >、<、=、>=、<=、not(もしくは<>)、and、or
計算アイテム・アグリゲートアイテムの活用
● 例: 分散値を監視○ 負荷分散しているWebサーバのロードアベレージの偏りを監視等
LoadBalancer
Webサーバ1 Webサーバ2 Webサーバ3 Webサーバ4
スケールアウト
個々の値から、全体の状況を監視
計算アイテム・アグリゲートアイテムの活用
アイテムキー設定例grpavg[Web servers,system.cpu.load[,avg1],last,0]
Zabbixのホストグループ単位で同じアイテムの値を計算処理平均(grpavg)、最大(grpmax)、最小(grpmin)、合計(grpsum)
アグリゲートアイテム
Zabbixの監視アイテムの値を計算処理加算・減算・乗算・除算・Zabbixのトリガー関数による計算処理
計算アイテム
計算処理例Webサーバグループのロードアベレージの分散値の計算「(hostAのロードアベレージ - Webサーバのホスト群のロードアベレージの平均)の2乗」
担当者に確実に届ける
どうすればうまく使えるのか?
担当者に確実に届ける
● 不要な通知を発生させない● 「監視できていなかった」を見逃さない
不要な通知を発生させない
● トリガーの依存関係を有効活用例: 仮想環境の稼働状態を統合的に監視
ハイパーバイザが障害
物理マシン(ハイパーバイザ )
仮想マシン群
不要な通知を発生させない
● トリガーの依存関係を有効活用例: 仮想環境の稼働状態を統合的に監視
ハイパーバイザが障害
物理マシン(ハイパーバイザ )
仮想マシン群
VMにも影響
各VMが障害
依存関係
「監視できていなかった」を見逃さない
● 内部イベント情報の検知
○ アクションの設定にて、イベントソース内部イベント選択○ 内部イベントの状態に応じたアクション設定を追加
アクション条件に指定できる要素● イベントタイプ
● アプリケーション
● ホスト
● ホストグループ
● テンプレート
指定可能なイベントタイプの条件
アイテム 通常 取得不可
ディスカバリルール 通常 取得不可
トリガー 通常 不明
Zabbixのこれまでと今後
Zabbixの進化
性能改善 機能拡充
2008/6 1.6リリース
2001/4 初版リリース
2009/12 1.8リリース
2012/5 2.0リリース
2013/11 2.2リリース
2014/xx 2.4リリース予定?
Zabbixの機能拡充
監視できる幅拡大 自動化の促進
2.0 2.0
2.2 2.2
・JMX監視機能の実装・SNMP Trap監視機能の実装
・VMware監視機能の実装・WMI監視機能の実装
・NWディスカバリ機能の拡充 (HTTPS、Telnetによるディスカバリ )・ローレベルディスカバリ機能実装
・ローレベルディスカバリ機能の拡充 (ホストプロトタイプ機能の追加 )・ZabbixAgent自動登録機能の拡充 (ホストメタデータ機能の追加 )・バージョンアップ自動化機能の実装 (DBの自動アップデート機能 )
Zabbix2.4の新機能の一部
監視できる幅拡大 自動化の促進
2.4 2.4
・Web監視機能の拡充 ・ローレベルディスカバリ フィルタリング機能の拡充
Web監視機能の拡充
・ヘッダーをカスタマイズして監視可能に(シナリオや各ステップに対して設定可能 )
・監視対象のページ情報の細かい指定も可能に(これまではページの全体およびリダイレクトの最終到達ページのみの監視のみ対応だった )
SSL認証にも対応(これまではSSLのクライアント認証が必要なページは独自の作り込みが必要だった )
Web監視が可能な範囲の拡張
ローレベルディスカバリのフィルタリング機能拡充
ディスカバリの結果に対してフィルタリングした上で登録すべきデータを選別できる
複数のフィルタの複合条件での指定が可能に
より柔軟な自動化設定が可能に
まとめ
今後の拡張も益々期待されるZabbix
Zabbixが適するのか?を考え
ただ単に導入するだけでなく工夫することで劇的に効果を発揮
見極めて活用を!
TISでは
● Zabbixの機能の検証活動や情報の発信● Zabbixの価値を向上させるツール開発● Zabbixに関するコンサル● Zabbixの保守サポート
ハイブリッドクラウド監視モジュール
書籍: Zabbix統合監視「徹底活用」
PostgreSQL監視テンプレート