Zabbix 入門
およびZabbix 最新版 4.2 のご紹介
Zabbix 最新情報セミナー
2019/07/10
SRA OSS, Inc. 日本支社
OSS事業本部 技術部 基盤技術グループ

Zabbix 入門

はじめに• Zabbix とは• Zabbix コンポーネント• アーキテクチャ© 2019 SRA OSS, Inc. Japan3

Zabbix とはIT インフラやサービス、アプリケーションの可用性や性能を監視するためのエンタープライズ向け統合監視ソフトウェア

オープンソースソフトウェアとして開発されており、無料で利用可能

開発元はラトビア共和国の Zabbix LLC.

最新バージョンは 4.0（安定版、LTS）と 4.2（ポイントリリース）© 2019 SRA OSS, Inc. Japan

4

Zabbix コンポーネント
Zabbix server

Zabbix Java gateway• 全データ収集・保存、障害検知・通知• Java アプリケーション監視用デーモン• Web フロントエンド・データベース含む• JMX を利用

Zabbix agent

Zabbix sender• ローカル監視データ収集・送信• コマンドラインユーティリティ• パッシブ・アクティブチェック• コマンドラインから監視データ送信

Zabbix proxy

Zabbix get• 代理でエージェントからのデータを収集• コマンドラインユーティリティ• 負荷分散・集中監視• エージェントに特定の監視データを要求© 2019 SRA OSS, Inc. Japan5

アーキテクチャ
Zabbixserver

監視運用

Zabbix
proxy

監視データ
障害通知
データ保存
監視データ

監視データ

Zabbixagent© 2019 SRA OSS, Inc. Japan6

豊富な監視対象• 監視対象環境• 対応プラットフォーム• 監視メトリクス© 2019 SRA OSS, Inc. Japan7

監視対象環境© 2019 SRA OSS, Inc. Japan8対応プラットフォーム
LinuxMacOS X

Solaris

SCO
Open
ServerLinux
AIX

ZabbixserverNet
BSD

Windows

Free
BSD

Zabbixagent

Solaris

OpenBSD

HPUX© 2019 SRA OSS, Inc. Japan

AIXFreeBSDOpen
BSD
9監視メトリクス
エージェントレス監視

エージェント監視VMware

DBICMP

SNMP

SSHTelnet© 2019 SRA OSS, Inc. Japan

Java(JVM)

HTTP
10

障害検知

© 2019 SRA OSS, Inc. Japan

11

障害検知
閾値

文字列

異常値

予測値

© 2019 SRA OSS, Inc. Japan

2019 05/14 09:13:25 [INFO] …
2019 05/14 09:15:10 [ERR] …
2019 05/14 09:21:47 [INFO] …

12

障害発生時の通知• アラート通知とアクション• エスカレーション© 2019 SRA OSS, Inc. Japan13

アラート通知とアクション
メッセージ• E-mail• SMS• アラートスクリプト

リモートコマンド• SSH、Telnet• IPMI• カスタムスクリプト© 2019 SRA OSS, Inc. Japan14

エスカレーション
障害が解消されるまで段階的に通知を実行

10分後
5分後サービスの再起動

管理担当にメール
サービス停止0分後運用担当に再度メール
運用担当にメール© 2019 SRA OSS, Inc. Japan15

ビジュアライゼーション• グラフ• ネットワークマップ• ダッシュボード
© 2019 SRA OSS, Inc. Japan

16

グラフ
収集したデータをグラフ化• グラフタイプ• 線グラフ• 積算グラフ• 円グラフ• 同一グラフ上に複数メトリクス• 自動更新© 2019 SRA OSS, Inc. Japan17

ネットワークマップ
監視環境を可視化• マップ要素• ホスト• ホストグループ
• マップ

• 画像
• 障害をマップ上に表示• 自動更新© 2019 SRA OSS, Inc. Japan

18

ダッシュボード
監視環境を一画面に集約• 多種のウィジェット

• システムステータス• 障害情報• グラフ• etc.
• ユーザがカスタマイズ可能• 自動更新© 2019 SRA OSS, Inc. Japan19

オートディスカバリ
• ネットワークディスカバリ
• アクティブエージェントの自動登録• ローレベルディスカバリ
© 2019 SRA OSS, Inc. Japan20

ネットワークディスカバリ
ネットワークを探索し自動でアクションを実行• 探索対象：監視対象から削除：監視対象に追加• IP アドレス• サービス（FTP、SSH、HTTP、SNMP、etc.）• Zabbix agent…

• アクション

• 監視対象の追加・削除• メトリクスの追加・削除• スクリプトの実行© 2019 SRA OSS, Inc. Japan

21

アクティブエージェントの自動登録
Zabbix agent からの情報により監視を開始• 監視対象の追加・削除：Linux 用の監視を開始：Windows 用の監視を開始• メトリクスの追加・削除• スクリプトの実行…

• 通知の送信© 2019 SRA OSS, Inc. Japan22

ローレベルディスカバリ
発見されたデバイスに対して自動的に監視を開始：監視対象に追加：監視対象から削除• CPU• ファイルシステム• ネットワークインタフェース…

• SNMP OID• Windows サービス

© 2019 SRA OSS, Inc. Japan23

分散監視• Zabbix proxy による分散監視© 2019 SRA OSS, Inc. Japan24

Zabbix proxy による分散監視
Zabbix proxy による集中管理と分散監視

Zabbixserver• Zabbix server の負荷分散

Zabbixproxy• Firewall や DMZ
越しの監視© 2019 SRA OSS, Inc. Japan25

セキュリティ• ユーザ権限• ユーザグループとパーミッション• 暗号化通信© 2019 SRA OSS, Inc. Japan26

ユーザ権限ユーザ種別
Zabbix ユーザ

監視結果

監視設定

管理機能

Zabbix 管理者
Zabbix 特権管理者

ユーザごとに操作範囲を決定© 2019 SRA OSS, Inc. Japan27

ユーザグループとパーミッション
ユーザグループごとのパーミッション• Read/Write• Read only
• Deny© 2019 SRA OSS, Inc. Japan28

暗号化通信Zabbix agent

Zabbix server

Zabbix proxy

Zabbix getZabbix senderZabbix agent

暗号化なし・PSK(事前共有鍵)・証明書を選択可© 2019 SRA OSS, Inc. Japan

29

機能拡張
• Zabbix agent の機能拡張• Zabbix API© 2019 SRA OSS, Inc. Japan30

Zabbix agent の機能拡張
ユーザパラメータ• ユーザ独自のスクリプトによる監視項目を追加
ローダブルモジュール• ユーザ独自の共有ライブラリによる監視項目を追加© 2019 SRA OSS, Inc. Japan31

Zabbix API
API 経由で Zabbix を操作• Zabbix のほとんどの機能をカバー• 監視設定の追加・変更・削除・参照• 収集した監視データの参照• 外部アプリケーションとの連携• 独自のアプリケーション作成© 2019 SRA OSS, Inc. Japan32

Zabbix 4.2 のご紹介

Zabbix 4.2 について
• Zabbix 4.2 の基本情報• Zabbix 4.2 の新機能概要© 2019 SRA OSS, Inc. Japan34

Zabbix 4.2 の基本情報
2019/04/02：Zabbix 4.2.0 リリース

LTS (Long Term Support) ではなくポイントリリース
2019/09/30：フルサポート終了
2019/10/31：リミテッドサポート終了
最新マイナーバージョンは 4.2.4（2019/07/10 現在）© 2019 SRA OSS, Inc. Japan35

Zabbix 4.2 の新機能概要
新しくサポートされる
プラットフォーム

保存前処理の機能拡張

TimescaleDB
サポート

ディスカバリの機能拡張

Prometheusとの統合

通知・メディアの機能拡張

マップの機能拡張

フロントエンドの機能拡張© 2019 SRA OSS, Inc. Japan36

新しくサポートされる
プラットフォーム

© 2019 SRA OSS, Inc. Japan37

新しくサポートされるプラットフォーム

RaspberryPi

Mac OS/X

Windows エージェントの MSI© 2019 SRA OSS, Inc. JapanSUSE EnterpriseLinux Server 12

Docker イメージ
38

保存前処理の機能拡張• JavaScript• バリデーションと絞り込み• 失敗時のカスタマイズ• 保存前処理のテスト• Zabbix proxy でのサポート• エラーメッセージの拡張© 2019 SRA OSS, Inc. Japan39

保存前処理の復習
取得
データ

処理後データ

保存前処理
取得したデータを加工して保存© 2019 SRA OSS, Inc. Japan

40

JavaScript

パラメータにスクリプトを直接入力© 2019 SRA OSS, Inc. Japan

41

JavaScript50

10function (value){// 華氏から摂氏へreturn (value - 32) * 5 / 9}
© 2019 SRA OSS, Inc. Japan42

バリデーションと絞り込み• 値の範囲• 変化がなければ破棄• 正規表現と一致する/しない• 指定秒内に変化がなければ破棄• JSON内/XML内/正規表現
使用時のエラーチェック

バリデーション絞り込み© 2019 SRA OSS, Inc. Japan43

バリデーション－値の範囲－

取得した値が想定の範囲内かどうかを確認© 2019 SRA OSS, Inc. Japan44

バリデーション－値の範囲－

5050
値の範囲
0 ≦ 100999© 2019 SRA OSS, Inc. Japan

取得
不可45

バリデーション－正規表現に一致する/しない－

取得した値が正規表現に一致する/しないを確認© 2019 SRA OSS, Inc. Japan

46

バリデーション－正規表現に一致する/しない－
v3.0

v3.0
正規表現に一致する^v¥d¥.¥d$v3© 2019 SRA OSS, Inc. Japan

取得
不可47

バリデーション－ JSON内/XML内/正規表現使用時のエラーチェック－

取得した値にエラーメッセージが含まれるか確認© 2019 SRA OSS, Inc. Japan

48

バリデーション－ JSON内/XML内/正規表現使用時のエラーチェック－{“res”: 1“err”: “”}{“res”: -1“err”: “hoge”}

JSON内のエラーチェック$.err{“res”: 1“err”: “”}取得不可© 2019 SRA OSS, Inc. Japan

49

絞り込み

取得した値に変化があれば保存、なければ破棄© 2019 SRA OSS, Inc. Japan

50

絞り込み
1

11null

変化がなければ破棄…

…

00© 2019 SRA OSS, Inc. Japan

ストレージを節約

51

失敗時のカスタマイズ

保存前処理でエラーが発生しても取得不可にしない© 2019 SRA OSS, Inc. Japan

52

失敗時のカスタマイズ－値を破棄－

5050値の範囲(0 ≦ 100)+ 値を破棄
null999© 2019 SRA OSS, Inc. Japan53

失敗時のカスタマイズ－値を設定－

5050値の範囲(0 ≦ 100)
+ 値を設定：-1-1999© 2019 SRA OSS, Inc. Japan

54

失敗時のカスタマイズ－エラーを設定－

5050値の範囲(0 ≦ 100)
+ エラーを設定：”範囲外”

999© 2019 SRA OSS, Inc. Japan

取得
不可
55

JavaScript の失敗時のカスタマイズ

無効化されて選択できない

スクリプト内の if 文で同等の書き方が可能
 値を破棄 値を設定 エラーを設定⇒⇒⇒

null を返す
適当な値を返す
例外を投げる© 2019 SRA OSS, Inc. Japan56

保存前処理のテスト

エラー発生© 2019 SRA OSS, Inc. Japan57

Zabbix proxy でのサポート
Zabbix 4.0

データを集めて渡すだけ

Zabbix 4.2

保存前処理は任せた© 2019 SRA OSS, Inc. Japan

保存前処理済みのデータを送信
58

エラーメッセージの拡張
Zabbix 4.0

Zabbix 4.2

保存前処理のどのステップでエラーが発生したかより分かりやすい© 2019 SRA OSS, Inc. Japan

59

TimescaleDB サポート• TimescaleDB とは• TimescaleDB のアーキテクチャ• housekeeper の違い© 2019 SRA OSS, Inc. Japan

60

TimescaleDB とは
時系列データに強い PostgreSQL
PostgreSQL のEXTENSION

OSS
PostgreSQLとの互換性

パフォーマンス向上

時系列データ特化

データ削除が速い

時系列分析
関数

クエリも速い

時系列データ管理機能© 2019 SRA OSS, Inc. Japan

61

TimescaleDB のアーキテクチャ
2019/04/16

2019/04/17

2019/04/18

2019/04/19

chunk(子テーブル)

hypertable(親テーブル)history テーブルを時間単位でパーティショニング© 2019 SRA OSS, Inc. Japan62

housekeeper の違い
PostgreSQL

TimescaleDB

DELETE FROM history
WHERE
itemid = xxxx AND clock < yyyy

SELECTdrop_chunks(zzzz, ’history’)

2019/04/16

2019/04/17

2019/04/18

2019/04/19

子テーブルごと削除
VACUUM 不要

該当行を検索して削除
要 VACUUM© 2019 SRA OSS, Inc. Japan63

ディスカバリの機能拡張••••

ディスカバリによるホスト名の指定
ローレベルディスカバリでの保存前処理
JSONPath を使用した LLD マクロの追加
その他のディスカバリの機能拡張© 2019 SRA OSS, Inc. Japan64

ディスカバリによるホスト名の指定
Zabbix 4.0 まで
DNS or IP アドレス

Zabbix 4.2
チェック項目から指定© 2019 SRA OSS, Inc. Japan65

ローレベルディスカバリでの保存前処理© 2019 SRA OSS, Inc. Japan

66

JSONPath を使用した LLD マクロの追加{{“name”: “/dev/sda1”,“fs”: {“name”: “xfs”, }}“{#NAME}”: “/dev/sda1”,“{#FSNAME}”: “xfs”,}© 2019 SRA OSS, Inc. Japan67

その他のディスカバリの機能拡張
 LLD ルールを通常アイテムの依存アイテムとして設定可能
 LLD ルールを処理するプロセスが独立したプロセスに
 LLD ルールが受け入れる JSON フォーマットが変更{“data”: [{discovery row},{discovery row}][{discovery row},{discovery row}]}
© 2019 SRA OSS, Inc. Japan68

Prometheus との統合

© 2019 SRA OSS, Inc. Japan69

Prometheus との統合

Prometheusのexporter

HTTP エージェント

メトリクス

メトリクス名{ラベル名=“ラベル値”,…} メトリクス値© 2019 SRA OSS, Inc. Japan70

Prometheus との統合
－Prometheus パターン－
cpu{mode=“sys”} 0.2
cpu{mode=“user”} 2.5
cpu{mode=“idle”} 95.2

2.5
Prometheus パターン
cpu{mode=“user”}

Prometheus パターンからメトリクスを抽出© 2019 SRA OSS, Inc. Japan71

Prometheus との統合
－Prometheus から JSON－
cpu{mode=“sys”} 0.2
cpu{mode=“user”} 2.5
cpu{mode=“idle”} 95.2[{"name":"cpu","value":“0.2",“line_raw":“cpu{cpu=mode=¥“sys¥"} 0.2¥r","labels":{"mode":“sys"},}]

Prometheus から JSON
cpu{mode=“sys”}

Prometheus ⇒ JSON ⇒ LLD マクロ ⇒ LLD ルール© 2019 SRA OSS, Inc. Japan72

通知・メディアの機能拡張• E メール通知での HTML フォーマットサポート• メディアタイプのテスト© 2019 SRA OSS, Inc. Japan73

Eメール通知での HTML フォーマットサポート© 2019 SRA OSS, Inc. Japan74

メディアタイプのテスト© 2019 SRA OSS, Inc. Japan75

マップの機能拡張• マップで使用可能なマクロの追加• マップでのアニメーション GIF サポート

© 2019 SRA OSS, Inc. Japan76

マップで使用可能なマクロの追加
場所

ホスト要素

ホストグループ要素

トリガー要素マップ要素

ラベル{HOST.ID}{INVENTORY.*}{HOSTGROUP.ID}{INVENTORY.*}{TRIGGER.ID}{INVENTORY.*}{MAP.ID}{MAP.NAME}URL の名前URL の名前および値{HOST.ID}{HOSTGROUP.ID}{TRIGGER.ID}{MAP.ID}{HOST.CONN/
DNS/HOST/IP/
NAME}{INVENTORY.*}{HOST.CONN/
DNS/HOST/IP/NAME}{INVENTORY.*}{HOST.CONN/
DNS/HOST/IP/NAME}{INVENTORY.*}{MAP.NAME}© 2019 SRA OSS, Inc. Japan77

マップでのアニメーション GIF サポート

© 2019 SRA OSS, Inc. Japan78

フロントエンドの機能拡張• トリガー一覧画面のフィルタ項目追加• SVG のツールチップにタイムスタンプ表示© 2019 SRA OSS, Inc. Japan79

トリガー一覧画面のフィルタ項目追加© 2019 SRA OSS, Inc. Japan

80

SVG のツールチップにタイムスタンプ表示© 2019 SRA OSS, Inc. Japan

81

その他

© 2019 SRA OSS, Inc. Japan82

その他の機能拡張
 Web 監視で HTTP ヘッダ内を正規表現で検索可能に
 zabbix_sender が ServerActive で設定した
全 IP アドレスにデータ送信可能に ダッシュボードウィジェットの非破壊リサイズ/並べ替え アイテムプロトタイプの一括更新
 net.dns、net.dns.record で IPv6 をサポート
 vmware.eventlog に skip パラメータ追加© 2019 SRA OSS, Inc. Japan83

Zabbix 4.4 について••••

テンプレートシンタックスの統一
プラグイン
ベースライン監視© 2019 SRA OSS, Inc. Japan84

テンプレート テンプレート作成のガイドライン
 テンプレートのバージョニング テンプレートを XML 形式から JSON/YAML 形式に<templates><template><template>Template name</template><name>Template name</name><description/>…
© 2019 SRA OSS, Inc. Japan

templates:
template:
template: “Template name”
name: “Template name”
description:…
85

シンタックスの統一
func(param1, param2, param3, ...)・トリガー
{host:key.func(param)}op const・トリガー
func(host:key, param)op const

・計算アイテム
func(key|host:key, param1, …)・計算アイテム
func(key|host:key, param1, …)・アグリゲート
grpfunc[group, key, func, period]

・アグリゲート
grpfunc(group, key, func, period)© 2019 SRA OSS, Inc. Japan86

プラグイン
 Webhook アクション実行時の Webhook
 障害発生時の Webhook

 トップレベルおよびコンテキストメニューへの独自リンクの追加© 2019 SRA OSS, Inc. Japan87

ベースライン監視© 2019 SRA OSS, Inc. Japan88

Zabbix 4.4 リリース予定

2019 年 9 月© 2019 SRA OSS, Inc. Japan89

Zabbix で効率的な監視運用を！

© 2019 SRA OSS, Inc. Japan90