Zabbix最新情報
2017/09/10 @ OSC 2017 Tokyo/Fall

日本Zabbixユーザー会

田中 敦

自己紹介

2

 名前
 田中敦（たなかあつし）

 所属

 日本Zabbixユーザー会 (旧ZABBIX-JP)

OSS統合監視ツールZabbixの日本のコミュニティ
 主な活動 日本Zabbixユーザー会のサイト(http://www.zabbix.jp/)

でのQ&A対応 ZabbixのWebインターフェースの翻訳3

まずはZabbix 3.4リリース
されました！

アジェンダ Zabbixとは

 Zabbix 3.0以降の新機能（おさらい） Zabbix 3.4について
 Zabbix 3.4での新機能
 新機能の詳細
 Zabbix 3.4利用時の注意点

 まとめ4

5

ZabbixとはZabbixとは
 ラトビアにあるZabbix LLCという会社が開発しているオープ

ンソースの統合監視ツール

 ライセンスは、GPLv2
 Webブラウザを使用して監視の設定ができる
 専用のエージェント、SNMP、IPMI、JMX、SSH、Telnet、独自のスクリプトなど様々な方法を利用して監視が可能

 取得した値をグラフ化したり、マップと呼ばれる機能で障害発生個所を把握しやすい テンプレートと呼ばれる監視設定のセットを事前に用意しておくことで、新規に追加されたサーバーの監視を速やかに開始できる6

Zabbix監視環境の構成
Zabbixサーバー

Zabbix
エージェントZabbix
エージェント(アクティブ)

Telnet / SSH

SNMP / IPMI

監視対象

7

Zabbixの画面イメージ

8

9

Zabbix 3.0以降の新機能（おさらい）Zabbix 3.0の新機能

10 通信の暗号化と認証
 アイテム取得間隔の柔軟化
 マップやスクリーンの共有 予測関数 SMTP認証
 ログから数値取得
 SNMPのLLD時のOID複数化
 値のマッピングのインポート／エクスポートに対応 各種デーモンをフォアグラウンドで実行可
資料：Zabbix 3.0でどう変わるか @OSC 2016 Tokyo/Springhttps://www.slideshare.net/atanaka7/zabbix30

Zabbix 3.2の新機能

11

 トリガーの手動クローズ
 イベントタグの設定

 イベント相関関係の設定
 ヒステリシストリガーの改善
 LLDで生成したアイテムの詳細確認

 Webシナリオのエクスポートとインポート イベント画面から障害画面へ ホストグループの階層化
資料：Zabbixをもっと使おう @OSC 2016 Tokyo/Fall
https://www.slideshare.net/atanaka7/zabbix-osc-2016-tokyofall

12

Zabbix 3.4について

Zabbix 3.4について

13

 2017/8/22に、バージョン3.4.0がリリース
 致命的な不具合があったのですぐに(2017/8/28)バージョン3.4.1がリリース
 ポイントリリースと呼ばれるバージョンなので、サポート期間が短め(4.0がリリースされた1ヶ月後までを予定)
 バージョン3.4がリリースされたので、1つ前の3.2のフルサ

ポート期間終了タイミングが2017年10月までと公開された※サポートポリシー
https://www.zabbix.com/jp/life_cycle_and_release_policy

14

Zabbix 3.4の新機能

Zabbix 3.4の主な新機能
 Webインターフェースの改善 アイテムの追加（vfs.dir.size[]） アイテムの保存前処理
 アイテムの値の同時収集
 スクリプトやコマンドの実行結果ハンドリング
 プロキシ経由でのリモートコマンド実行 障害対応コメント入力時の通知

 通知処理の並列化対応
 JMX監視の改善
 Web監視のURLエンコーディング対応

15

16

新機能の詳細Webインターフェースの改善 ダッシュボードのカスタマイズに対応
 固定のダッシュボードではなく、位置やサイズ、表示するウィジェットがカスタマイズ可能
 複数定義して、ユーザー毎に普段使用するダッシュボードを選択可(最後に表示したダッシュボードが表示される)
 マップの操作性を向上
 アイコンを複数選択して編集が可能

 入力欄の拡大
 SNMP OID、更新間隔、ユーザーのメディアの有効な時間帯

17

新しいダッシュボード18

次ページで紹介するウィジェットを好きな位置、サイズで配置可能

ダッシュボードで使えるウィジェット

19

 URL

 ディスカバリのステータス (*)

 Web監視 (*)

 データの概要

 Zabbixサーバーの状態 (*)

 トリガーの概要 お気に入りのグラフ (*)

 プレーンテキスト お気に入りのスクリーン (*)

 ホストステータス (*)

 お気に入りのマップ (*)

 マップ

 アクションログ

 マップナビゲーション

 グラフ

 時刻

 システムステータス (*)

 障害 (*)(*) はデフォルトのダッシュボードで使用されている。

マップナビゲーション

マップナビゲーション
ウィジェット20

マップ
ウィジェット
ソースがマップナビゲーション

アイテムの保存前処理（前回紹介分）


アイテムの値を取得した時、取得してきた値を加工してアイテムの値として保存する時に、加工するとしても数値の差分を取ったり時間あたりの値（差分/時間）しかなかった

今回追加された機能を使用すると以下のような変換が可能に 乗数(Custom multiplier) 最後尾文字列削除(Right trim)→末尾文字列削除(2017/09/05 by 寺島氏)

 先頭文字列削除(Left trim)
 前後文字列削除(Trim) 正規表現(Regular expression)
 論理値から10進数(Boolean to decimal)

 8進数から10進数(Octal to decimal)
 16進数から10進数(Hexadecimal to decimal) 差分(Delta) 差分/時間(Delta per second)21

アイテムの保存前処理（追加分）
 さらに追加された保存前処理の機能

 XML XPath XPathという機能を使用して、XML形式で取得された値から、特定の属性の値を取り出す

 JSON Path JSONPathと呼ばれる機能の一部を実現して、JSON形式で取得された値から、特定の属性の値を取り出す

22

保存前処理で何ができるか（１） 取得してきた値が文字列でその文字列内の一部に数値が入っていた時に、その値を正規表現を使用して数値として取り出すことが可能

 取得してきた値が文字列でその文字列の前後に単位などの文字列が付いていた時に、文字列を指定して不要な文字列を削除し値を取り出すことが可能

 8進数や16進数の値を10進数に変換して数値として扱うことが可能

23

保存前処理で何ができるか（２） 論理値を数値に変換することが可能

 XML形式やJSON形式で取得してきた値の中から、特定の属性の値を取り出すことが可能

24

XML XPathの例
XMLのサンプル<?xml version="1.0"?><book id="bookz100"><author>Atsushi Tanaka</author><title>Zabbix Users's Guide</title><genre>Computer</genre><price>3000</price><publish_date>2017-09-10</publish_date><description>Guides for Zabbix User.</description></book>25

パラメータ：/book/author<author>Atsushi Tanaka</author>

パラメータ：

number(/book/price)3000

パラメータ： /book/@id
id=“bookz100”

JSON Pathの例
JSONのサンプル{ "store": {"book": {"category": "Computer","author": "Atsushi Tanaka","title": "Zabbix Users's Guide","price": 3000}}}

26

パラメータ：$.store.book.author

Atsushi Tanaka

パラメータ：
3000$.store.book.price保存前処理の設定画面

27[翻訳変更予定]
最後尾文字列削除↓
末尾文字列削除

設定例
28

snmpwalkで以下のような結果が得られるOIDで、括弧の中の数値を取り出す
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (68541085) 7 days, 22:23:30.85

アイテムの値の同時収集

29

 アイテムの依存関係と、保存前処理の機能を組み合わせて実現する
親アイテムの値取得

子アイテム
依存関係
保存前処理で値を切り出し (保存前処理有)Total Accesses: 2070
Total kBytes: 11886
CPULoad: .63838
Uptime: 10323
子アイテム
ReqPerSec: .200523 親アイテム
依存関係
BytesPerSec: 1179.04
保存前処理で値を切り出し (保存前処理有)BytesPerReq: 5879.84
BusyWorkers: 1
IdleWorkers: 9
Scoreboard:_._______W_.....................................
子アイテム
依存関係
.........................................................
保存前処理で値を切り出し.........................................................
(保存前処理有).........................................................
.....................................

Total Accesses
値「2070」Total kBytes
値「11886」

Uptime値「10323」

スクリプトやコマンドの実行結果のハンドリング これまでは、メディアなどで実行したスクリプトやコマンドの実行結果をハンドリングしていなかった
 実行したスクリプトやコマンドの終了コードをハンドリング

して、エラー発生時にはWebインタフェース上で確認できるようになった30

エラー発生時のイベント詳細画面


例えば、メディアスクリプトで問題があったときに0以外でexit（処理終了）すると以下のように赤いマークが表示され、マウスを持って行くとその原因が表示される

31

プロキシ経由でのリモートコマンド実行 これまでは、リモートコマンドを実行することができるのは、Zabbixサーバー上、Zabbixサーバーと直接通信できるZabbixエージェント上だけであった 障害を検知して、リモートコマンドを実行して復旧させようと考えた時に、Zabbixプロキシ経由で監視しているサーバーに対しては、Zabbixエージェントをインストールしていたとしても、リモートコマンドが実行できないので、直接、サービスを再起動させるようなことができなかった
 Zabbix 3.4からは、Zabbixプロキシ経由であっても、リモートコマンドの実行が可能になった32

障害対応コメント入力時の通知
 障害対応コメントを入力した時に、指定した宛先にメールを送ることができたので、例えば、着手したとか解決したとかコメントに記入された時にメールで受け取ることができる

33

通知処理の並列化対応

これまでは、障害を検知して、実際にアクションを実行するプロセスが1つしかなかった

大量に実行しなければならないアクションがあった場合、逐次処理されるので、すべてのアクションを実行し終えるまでに時間がかかってしまっていた

複数のプロセスで平行してアクションを実行できるようになったので、アクションの処理が効率化された



メディアの設定によって、どの程度並列して処理するかを指定することが可能

34

アクション処理大量発生時の概要
障害検知

Escalator
Process

Alerter
Process

Databasefor ZabbixAlerterProcess35

メディアの設定

36[翻訳変更予定]
同時セッション数↓
並列実行数

無制限を選択した場合は、zabbix_server.conf内のStartAlertersで指定した数が上限

JMX監視の改善

37 Java Gatewayで対応できるデータ型を追加

 AtomicBoolean、AtomicInteger、AtomicLong JMXエンドポイントのカスタマイズ
 固定化されていたJMXエンドポイントをカスタマイズ可能に例：
Tomcatservice:jmx:rmi:///jndi/rmi://サーバー:ポート番号/jmxrmi
JBoss Application Server (バージョンによって異なる場合あり)
service:jmx:remoting-jmx://サーバー:ポート番号

38

Zabbix 3.4利用時の注意点
マニュアル：アップグレード時の注意点も確認すること

https://www.zabbix.com/documentation/3.4/manual/installation/upgrade_notes_340

ソケットを使用した処理追加
 alerterプロセスとpreprocessingプロセスの処理用に、Socketを使用した処理が追加された

 3.4.1のパッケージでは「/var/run/zabbix」ディレクトリ、ソースからの場合は「/tmp」ディレクトリに「zabbix_server_alerter.sock」と「zabbix_server_preprocessing.sock」というSocketが作成され利用される

 SELinuxを使用している環境では、権限設定追加が必要となる場合がある

39

正規表現用のライブラリをPCREに変更40

 正規表現として、以前はPOSIX拡張を使用していた

 Zabbix 3.4からは、PCRE(Perl Compatible RegularExpressions)を使用するよう変更された

 表現の指定方法が異なる部分があるようなので、正規表現を使用している部分で、以前とは異なる判断がされていないか注意すること

マニュアル：
https://www.zabbix.com/documentation/3.4/manual/installation/upgrade_notes_340#pcre_library_for_regular_expressions

UserParameterの終了コードに注意 外部スクリプトやアラートスクリプトなど、ZabbixサーバーやZabbixエージェントから呼び出すスクリプトや実行ファイルの終了コード(exitコード)がハンドリングされるようになったのと同時に、UserParameterの実行結果もチェックされるようになった模様

 UserParameterから呼び出すものに関しても、終了コードが正常(=0)になるように注意が必要

41

アクションのデフォルトメッセージ42

 新規にZabbix 3.4をインストールした場合、アクションのデフォルトのメッセージが変更されている

 アクションのメッセージ内に、以前のようにトリガーの条件式に含まれるアイテムやその値を入れたい場合は、以前のメッセージを参考にメッセージに追加すること{TRIGGER.STATUS}: {TRIGGER.NAME}----Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}

以前のバージョン

Item values:

1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}
Original event ID: {EVENT.ID}

3.4
Problem: {TRIGGER.NAME}----Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {TRIGGER.NAME}
Host: {HOST.NAME}
Severity: {TRIGGER.SEVERITY}

Original problem ID: {EVENT.ID}{TRIGGER.URL}

43

まとめまとめ カスタマイズできる領域が拡大し、各環境に合わせた監視用の画面を用意しやすくなった アイテムの値の取得方法も改善や機能追加が行われ、これまで、独自のスクリプトを作成して対応していた部分を、標準の機能で対応できるようになった 一部の処理でボトルネックになっていた部分が改善され、例えば通知やスクリプト実行のアクションの実行処理の遅延が少なくなった

44

参考URL

Zabbix 3.4マニュアル
https://www.zabbix.com/documentation/3.4/manualZabbix サポート期間とリリースポリシー
http://www.zabbix.com/jp/life_cycle_and_release_policy

Zabbix 3.4アップグレード時の注意点
https://www.zabbix.com/documentation/3.4/manual/installation/upgrade_notes_340

45

おわり

46

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

 本資料内で利用させて頂いた各プロダクト名やサービス名などは、各社もしくは各団体の商標または登録商標です。