Zabbix Conference Japan 2017 クラウド/DC事業者の中での ......IDCFクラウド上に拧築するZabbix DR拧成 詰め込みすぎない/ 複数メジャーバージョン掑在
Osc 2013 tokyo fall ZABBIX-JP 『クラウド/DevOps実践へのZabbix適用』
-
Upload
daisuke-ikeda -
Category
Documents
-
view
3.425 -
download
17
description
Transcript of Osc 2013 tokyo fall ZABBIX-JP 『クラウド/DevOps実践へのZabbix適用』
● 自己紹介● DevOpsって?● DevOps実践● ZabbixがDevOps時代に適する理由● Zabbixの便利な機能紹介(最新版Zabbix2.2便利機能紹介)
○ Devにも役立つ監視機能○ NoOps実現に向けた自動化機能
● まとめ● お知らせ
今日お話すること
● 名前: 池田 大輔● ZABBIX-JPのスタッフメンバー● Twitter: @ike_dai● Facebook:https://www.facebook.com/ikedai● Zabbix関連の活動:
○ Chromix(Zabbixアラート通知用Chrome Extension)開発○ HyClops for Zabbix(AWS,vSphere自動監視用プラグイン)開発
自己紹介
@ITさんで連載中「クラウド &DevOps時代の運用をZabbixで」(http://www.atmarkit.co.jp/ait/articles/1309/18/news008.html)
Zabbix Conference 2012 @Riga
DevOps?
DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology (IT) professionals. DevOps is a response to the interdependence of software development and IT operations. It aims to help an organization rapidly produce software products and services.
Wikipediaより引用:http://en.wikipedia.org/wiki/DevOps
簡単にまとめると・・・
DevOpsとは、ソフトウェア開発者と ITプロフェッショナルの間の「コミュニケーション」 ,「コラボレーション」 ,「インテグレーション」に重きをおいた開発手法。
開発と運用の相互依存を実現するための考え方であり、迅速にソフトウェアプロダクトやサービスを作る ことを助けることが目的。
DevOpsの実践
Dev
・迅速に安定した開発が実施できるよう CI実践等 →アジャイルな開発手法 →テスト自動化
Ops
・クラウドによる迅速なリソース入手・運用処理自動化によるNoOps実践 →運用のソフトウェア制御化
Dev視点・Ops視点統合的な監視→見える化統合的な判断をもとにした迅速な対応を取れる体制づくり
実践する環境の文化・制度等が強く影響
とはいえ、実践を支えるツールをうまく活用することが非常に重要
DevOpsの実践
Dev
・迅速に安定した開発が実施できるよう CI実践等 →アジャイルな開発手法 →テスト自動化
Ops
・クラウドによる迅速なリソース入手・運用処理自動化によるNoOps実践 →運用のソフトウェア制御化
Dev視点・Ops視点統合的な監視→見える化統合的な判断をもとにした迅速な対応を取れる体制づくり
実践する環境の文化・制度等が強く影響
とはいえ、実践を支えるツールをうまく活用することが非常に重要
Zabbix
Zabbixの基本情報
OSS統合監視ツールラトビアのZabbixSIA社が開発2013/10/19時点の最新安定版2.0.9 (開発版2.1.7)
監視対象機器- Linux- Windows- NW機器等
監視方法- Zabbix Agent監視- SNMP監視- IPMI監視- エージェントレス監視等
監視内容- リソース監視- 死活監視 - ICMPPing - プロセス- Web監視- ログ監視- HW監視- SQL監視等
Zabbixの基本情報 -監視の仕組み-
Zabbix Server
trapperpolleralerter
discoverer・・・
Shared Memory
Apache(Zabbix Frontend)
DB設定情報
監視結果情報
Zabbix Agent
SNMP Agent
SNMP Agent
dbsyncer
Zabbixの基本情報 -監視設定-
ホストグループ
テンプレート
ホスト
アイテム トリガーグラフ割当
アイテム トリガーグラフ
・・・
・・・
アクション
アクション
アイテム トリガーグラフ
ホストグループ:Linuxホスト:Server1テンプレート:LinuxServerテンプレート
アイテム:CPU使用率トリガー:CPU使用率が5分間平均80%以上アクション:管理者にアラートメール送信
例
ホスト
ZabbixのDevOpsにマッチする機能
DevOps役割に応じた使い分け
Zabbix
死活監視
リソース監視
ハードウェア
MW MW MW
APP APP APP
Web監視
ログ監視
DB監視
OS
APP、DB、サーバ、ネットワーク等各エンジニアに必要な情報を統合監視
2013/08/19 - Error:2013/08/20 - Info..
APPエンジニア向け
サーバエンジニア向け
場合によっては経営者・営業さん向けなど
各層の監視をサポート
役割に応じた適切なビューア
ZabbixのDevOpsにマッチする機能
NoOps実現に向けた自動化促進
Zabbixテンプレートテンプレートテンプレート
ホスト
ホスト
ホスト
ZabbixAgent
ZabbixAgent自動登録
監視設定テンプレート
ネットワークディスカバリ
サーバ内部の構成情報自動取得(ローレベルディスカバリ )
障害
障害対応アクション自動実行
追加
追加
ZabbixでWeb監視
Devにも有用な監視機能
ブラウザからWebページを見るという動作を監視することが可能
・Basic認証、NTLM認証のかかっているページの監視可能・POST変数の引き渡しが必要なページの監視可能・プロキシ経由の監視可能・クッキー情報を使ったページアクセス可能
ページ1
ページ2
・・・
Zabbix● レスポンスタイム● レスポンスコード● ダウンロード速度● ページの文字列
ZabbixでWeb監視
Devにも有用な監視機能
シナリオ例 - Step1.ページ1(URL:http://hostname/page1.html) 正常状態: 200のレスポンスコードでページに ”Top Page”という文字列が含まれる - Step2. ページ2(URL:http://hostname/page2.html) ※POSTデータにページ1で選択された情報を持つ 正常状態: 200のレスポンスコードでページに POSTで渡ってくる情報が含まれる
設定例
Name: Page1URL: http://hostname/page1.htmlPOST: なしRequired String: Top PageRequired status code: 200
設定例
Name: Page2URL: http://hostname/page2.htmlPOST: menu=”abc”&hoge=xxx&・・・Required String: abcRequired status code: 200
Top Page
menu abc
http://hostname/page1.html
Page2
abc
http://hostname/page1.html
POST
menu=abchoge=xxx・・・
ZabbixでWeb監視
Devにも有用な監視機能
各Stepで変数設定が可能に - 静的な変数と正規表現により抽出した変数の活用が可能
New
静的な変数設定 → {変数名}=固定値
正規表現により抽出した変数設定 → {変数名}=regex:正規表現
http://hostname/page1.html
<span class="memberid">12345678</span>
Webページの内容
{memberid}=regex:<span class="memberid">(.+?)</span>
Stepの変数設定
以降のStepのURLおよびPOST変数で展開可能
Zabbixでログ監視
Devにも有用な監視機能
ZabbixServer
ZabbixAgent
Log file
Info・・・Error・・・Info・・・
ログ監視アイテムキー(Zabbix2.0系)
単一のログファイル監視: log[filepath, <pattern>, <encoding>, <maxlines>, <mode>]ローテートログファイル監視: logrt[filepath_pattern, <pattern>, <encoding>, <maxlines>, <mode>]
例:log[filepath, Error, , ,skip]
Zabbix Agentアクティブチェック
Error・・・
パターンにマッチしたログ情報のみZabbixにプッシュ通知
受信したログに対して更にフィルタリングしてトリガー設定可能
※最後にチェックした際のログサイズ(lastlogsize)と最後にチェックした時間(lastlogchecktime)をもとに追記が発生したかを確認
Zabbixでログ監視
Devにも有用な監視機能
New
ログの抽出が可能に - これまではパターンにマッチしたログを行単位で収集 - Zabbix2.2からは1行の内、マッチした部分のみを抽出可能
sample.log
201310161001 Info Time: 123sec201310161015 Info Time: 100sec201310161023 Info Time: 140sec
この部分のみ抽出して監視可能※ただし、Zabbixへの保存はLogタイプなので注意
2.0系: log[filepath, <pattern>, <encoding>, <maxlines>, <mode>]2.2系: log[filepath, <pattern>, <encoding>, <maxlines>, <mode>, <output>]
log[/path/sample.log,"Time: (.*)sec",,,skip,\1]
正規表現によるパターン指定でサブグループが取り込めるよう設定
抽出したいサブグループの番号を指定
Zabbix Agent自動登録機能
NoOps実践に向けた機能
Target Server
Zabbix Agent
起動時にZabbixAgentの情報をプッシュ通知
■ 起動時に設定ファイル(zabbix_agentd.conf)に記載の以下の情報を通知(Zabbix2.0,1.8の場合) - Hostname - ListenIP - ListenPort■ この情報をもとにホスト追加、テンプレート割り当て等のアクション実行が可能■ 起動時に通信が失敗した場合でもRefreshActiveChecksで指定した間隔で定期的に情報送信
新たに追加されたホストを自動的に監視スタート可能
Zabbix Agent
Target Server
Target Server
Target Server
Zabbix Agent
Target Server
Zabbix Agent
Zabbix Serveror
Zabbix Proxy
Zabbix Agent
※送付先は、ServerActiveで指定したZabbix Server (カンマ区切りで複数先指定も可能)
実行条件ホスト名 含まれる linux
Hostname=linux-server02ListenIP=10.0.0.2ListenPort=10050
Zabbix Agent自動登録機能
NoOps実践に向けた機能
Zabbix AgentZabbix
Server
具体例
イベントソース『自動登録』アクション
実行内容- ホストを追加- ホストグループに追加 Linux serversグループ- テンプレートとのリンクを追加 Template OS Linux
実行条件ホスト名 含まれる linux
Hostname=linux-server02ListenIP=10.0.0.2ListenPort=10050
Zabbix Agent自動登録機能
NoOps実践に向けた機能
Zabbix AgentZabbix
Server
具体例
イベントソース『自動登録』アクション
実行内容- ホストを追加- ホストグループに追加 Linux serversグループ- テンプレートとのリンクを追加 Template OS Linux
注)自動登録されるのはエージェントのインタフェースのみ
実行条件ホスト名 含まれる linux
Hostname=linux-server02ListenIP=10.0.0.2ListenPort=10050
Zabbix Agent自動登録機能
NoOps実践に向けた機能
Zabbix AgentZabbix
Server
具体例
イベントソース『自動登録』アクション
実行内容- ホストを追加- ホストグループに追加 Linux serversグループ- テンプレートとのリンクを追加 Template OS Linux
可能な実行内容- メッセージの送信- リモートコマンド実行- ホストを追加- ホストグループに追加- テンプレートとのリンクを追加- ホストを無効
より複雑なことをするなら
Zabbix Agent自動登録機能
NoOps実践に向けた機能
新たにHostMetadataの通知機能が実装されより柔軟な自動設定が可能に
New
Zabbix2.0系
- Hostname- ListenIP- ListenPort
Zabbix2.2系
- Hostname- ListenIP- ListenPort- HostMetadata
HostMetadataに各サーバの特性を示す情報を付与することでアクション設定に活用可能
zabbix_agentd.conf設定例HostMetadata = Linux DBServer
アクション実行条件例A and BA. ホストメタデータ 含まれる LinuxB. ホストメタデータ 含まれる DBServer
ローレベルディスカバリ機能
NoOps実践に向けた機能
サーバ内部情報を探索し、探索結果に応じた適切な監視設定自動化
- Zabbix2.0から搭載された機能- 各サーバのNICやファイルシステム、SNMP OIDのディスカバリが可能
lo
eth0
eth1
/
/boot
/var/proc/mountsの情報を自動取得注)Linuxの場合
/proc/net/devの情報を自動取得注)Linuxの場合
Zabbix AgentZabbix Server
SNMP Agent探索定期実行
DB
探索探索結果に応じて監視設定自動登録
ローレベルディスカバリ機能
NoOps実践に向けた機能
ファイルシステムディスカバリ設定例 - ディスカバリルール -
ディスカバリルール用キーを登録
- ファイルシステム: vfs.fs.discovery- NIC:net.if.discovery- SNMP OID:任意(OID設定箇所に対象のSNMP OIDを指定)
フィルタリング設定可能
ディスカバリ結果が格納されるマクロ変数の値に対してフィルタリング設定可能
ローレベルディスカバリ機能
NoOps実践に向けた機能
ファイルシステムディスカバリ設定例 - アイテムプロトタイプ -
監視アイテムキーを登録
ディスカバリ結果が格納されているマクロを活用してアイテムキー設定
- ファイルシステム : {#FSNAME}, {#FSTYPE}- NIC : {#IFNAME}- SNMP OID : {#SNMPINDEX}, {#SNMPVALUE}
ローレベルディスカバリ機能
NoOps実践に向けた機能
ローレベルディスカバリの仕組み
{ { "data":[ { "{#FSNAME}":"\/", "{#FSTYPE}":"rootfs"}, { "{#FSNAME}":"\/proc", "{#FSTYPE}":"proc"}, { "{#FSNAME}":"\/sys", "{#FSTYPE}":"sysfs"}, ・・・省略
}
- JSON形式で情報が返される- この形式に準拠すれば他の様々な値のディスカバリに活用可能
ファイルシステムの例
NoOps実践に向けた機能
ローレベルディスカバリ機能ホストプロトタイプ設定によりディスカバリ結果を使ったホスト登録が可能に
New
Zabbix2.0系
- アイテムプロトタイプ- トリガープロトタイプ- グラフプロトタイプ
Zabbix2.2系
- アイテムプロトタイプ- トリガープロトタイプ- グラフプロトタイプ- ホストプロトタイプ
ホストプロトタイプ設定可能情報
ホスト情報
- ホスト名 - 表示名
ホストグループ情報
- 既存グループ指定 -マクロ名で新規グループ登録
テンプレート情報
- テンプレート指定
ホストインベントリ情報
- 無効/手動/自動の選択
VMware環境の自動監視
NoOps実践に向けた機能
New
VMwareのvSphereAPIをもとに情報収集
Zabbix Server
API
vCenterServer
VMware ESXi
VMware ESXi
VMware ESXi
URL:https://vcenter/sdk
API
URL:https://esxi/sdk
VM
VM
VM
vCenter経由 - クラスタのディスカバリ - ESXiのディスカバリ - VMのディスカバリ
VMwareESXi経由 - VMのディスカバリ
ローレベルディスカバリ結果はマクロとして登録され、ホストプロトタイプを使ってホスト自動登録{#VM.NAME},{#HV.NAME}など
監視できること- ハイパーバイザとVMの紐付け- ハイパーバイザ、VMのリソース (CPU,Memory,NIC,DiskIO等)- ハイパーバイザ、VMの稼働状態 (稼働時間,ステータス等)
アクション自動化
NoOps実践に向けた機能
監視状況に応じてアクションの自動実行が可能
指定可能なイベントソース (アクション実行元 )
トリガー 監視アイテムに対して設定したしきい値検知
ディスカバリ NWディスカバリ機能による新規監視対象機器検知
自動登録 ZabbixAgent自動登録機能による新規マシン検知
内部イベント アイテム取得不可、トリガー不明等の検知 New
イベントソース アクション実行条件 アクション実行内容
トリガー ディスカバリ 自動登録 内部イベント
アプリケーション
ホストグループ
ホストテンプレート
ホスト
トリガー
トリガー名
トリガーの深刻度
トリガーの値
期間
メンテナンスの状態
ホストのIPアドレスサービスのタイプサービスのポートディスカバリルールディスカバリチェックディスカバリオブジェクトディスカバリのステータスアップタイム/ダウンタイム受信した値プロキシ
ホスト名プロキシホストメタデータ
イベントタイプ - アイテムの取得不可状態 - トリガーの不明状態 - ディスカバリルールの取得不可状態
アクション自動化
NoOps実践に向けた機能
監視状況に応じてアクションの自動実行が可能
条件指定に使える要素
New
イベントソース アクション実行条件 アクション実行内容
New
トリガー ディスカバリ 自動登録 内部イベント
メッセージの送信
リモートコマンド
メッセージの送信
リモートコマンド
ホストを追加
ホストを削除
ホストグループに追加
ホストグループから削除
テンプレートとのリンクを作成
テンプレートとのリンクを解除
ホストを有効
ホストを無効
メッセージの送信
リモートコマンド
ホストを追加
ホストグループに追加
テンプレートとのリンクを作成
ホストを無効
メッセージの送信
アクション自動化
NoOps実践に向けた機能
監視状況に応じてアクションの自動実行が可能
実行できる内容
New
イベントソース アクション実行条件 アクション実行内容
リモートコマンドについて
- ZabbixServerからもZabbixAgentからも実行可能
- SSH/Telnet接続しての実行可能
Zabbixは ◯DevとOps、場合によってはBizにとって必要な情報をインテグレーション - 豊富な監視機能
◯NoOps実現に向けた監視・運用のプラットフォームとして活用可能 - 監視設定自動化(自動登録機能・LLD等) - 運用オペレーション自動化(豊富なアクション実行機能)
まとめ
DevOpsの意識の下、迅速で安定したサービス運用にZabbix活用が有効
お知らせZABBIX-JP
● 10/19,20両日ブース出展○ Zabbix2.1.7のデモ展示しています○ Zabbixに関するご相談・ご質問お答えします
その他
● 書籍出版予定○ 寺島さんの入門編に続く応用的な内容○ 『Zabbix統合監視[実践]活用
- 物理・仮想・クラウド混在環境の省力運用(仮)』○ 技術評論社さんから12月頃出版予定