Zabbix 6.0 新機能解説
SRA OSS, Inc. 日本支社
OSS 事業本部 基盤技術グループ
赤松 俊弘

whoami 赤松 俊弘（Toshihiro Akamatsu）
 SRA OSS, Inc. 日本支社
OSS 事業本部 基盤技術グループ
 Zabbix 認定プロフェッショナル

職務 PostgreSQL 以外の OSS 全般の技術サポート、構築 主に Zabbix を担当© 2022 SRA OSS, Inc. Japan2

アジェンダ
1. Zabbix とは
2. Zabbix 6.0 新機能解説
1. Zabbix 6.0 について
2. Zabbix 6.0 の新機能

3. アップグレード時の注意点© 2022 SRA OSS, Inc. Japan3

Zabbix とは© 2022 SRA OSS, Inc. Japan

4

Zabbix とはIT インフラやサービス、アプリケーションの可用性や性能を監視するためのエンタープライズ向け統合監視ソフトウェア
オープンソースソフトウェアとして開発・公開されており、無償で利用可能

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

Zabbix 1.0 は 2004/3/23 リリース
© 2022 SRA OSS, Inc. Japan5

コンポーネント
Zabbix server

Zabbix Java gateway• 全データ集約・保存• Java アプリケーション監視用デーモン• 障害検知・通知• JMX を利用

Zabbix agent

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

Zabbix proxy

Zabbix get• 監視データ収集の中継• コマンドラインユーティリティ• 負荷分散・集中監視• エージェントから任意の監視データを取得© 2022 SRA OSS, Inc. Japan6

アーキテクチャ
Zabbix server

監視運用

Zabbix proxy

監視データ

障害通知
監視データ

監視データ

Zabbix agent© 2022 SRA OSS, Inc. Japan7対応プラットフォーム
Zabbix server/proxy

Zabbix agent

Zabbix agent 2• Linux• Linux• Linux• IBM AIX

• IBM AIX

• Windows• FreeBSD• FreeBSD• NetBSD• NetBSD• OpenBSD• OpenBSD• HP-UX• HP-UX• Mac OS X

• Mac OS X

• Solaris• Solaris• Windows© 2022 SRA OSS, Inc. Japan8

監視メトリクス（アイテム）
エージェント監視
リソース監視
•
•
•
•

CPU
メモリ
ネットワーク
ファイルシステム

プロセス/サービス

監視

エージェントレス監視

ポート監視

ICMP 監視

DB 監視

ログ監視

SNMP 監視Java 監視Web 監視SSH/Telnet

監視© 2022 SRA OSS, Inc. Japan

VMware 監視
9障害検知（トリガー）
閾値文字列

過去との比較

予測値© 2022SRA OSS, OSS,
Inc. JapanAll Rights
Reserved©SRA
Inc. Japan

2022 02/14 09:13:25 [INFO] …
2022 02/14 09:15:10 [ERR] …
2022 02/14 09:21:47 [INFO] …

10 10

障害通知（アクション）
担当者にメールHTML メールにも対応

コマンド実行
サーバやプロセスの再起動
パトランプの点灯

Webhook
外部アプリとの連携
Slack, Teams, Redmine etc.
© 2022 SRA OSS, Inc. Japan11データの可視化
グラフ

ダッシュボード

ネットワークマップ© 2022 SRA OSS, Inc. Japan12

Zabbix 6.0 新機能解説© 2022 SRA OSS, Inc. Japan13

Zabbix 6.0• 2022/02/15 リリース
• 長期サポート（LTS）バージョン• フルサポート 3 年、リミテッドサポート 2 年
2025/02

6.0 LTS

2027/02

リミテッドサポート

フルサポート2023/05

5.0 LTS

2025/05

リミテッドサポート

フルサポート2023/10

4.0 LTSリミテッドサポート© 2022 SRA OSS, Inc. Japan14

Zabbix 6.0 対応データベース
DBMS
MySQL/Percona
MariaDB
PostgreSQL
TimescaleDB
OracleSQLiteバージョン
8.0.X
10.5.00 ～ 10.6.X
13.0 ～ 14.X
2.0.1 ～ 2.3
19.c ～ 21.c
3.3.5 ～ 3.34.X© 2022 SRA OSS, Inc. Japan15

Zabbix 6.0 の新機能
ビジネスサービス監視Zabbix server のHA クラスタ

アノマリー検知とベースライン監視

Kubernetes 監視

新規ウィジェット

ETC その他の新機能© 2022 SRA OSS, Inc. Japan16

ビジネスサービス監視© 2022 SRA OSS, Inc. Japan17

Zabbix のサービス監視とは• 監視対象のインフラをハイレベル（ビジネスレベル）で把握
IT サービスの可用性
IT インフラの構造

IT サービスの SLA
IT インフラの弱点特定© 2022 SRA OSS, Inc. Japan

サービス

18

サービス監視のアーキテクチャ
ホスト A で障害サービス A で障害サービス A© 2022 SRA OSS, Inc. Japanサービス B

19

サービスの階層化
ビジネス
サービス

内部サービス

SFA

外部サービス

RPAWeb サイト© 2022 SRA OSS, Inc. JapanEC サイト20

サービス監視の機能更新• ビジネスレベルでのサービス監視を実現• タグによる障害の紐づけ• 柔軟なステータス計算および伝播• サービスのステータス変化によるアラート通知• 根本原因の表示• サービスへの権限付与© 2022 SRA OSS, Inc. Japan21

タグによる障害の紐づけ• サービスへの障害の紐づけがトリガーからタグに変更• サービスと障害の関係が 1:1 から 1:N に• 冗長化されているサービスなど複雑な構成に対応可© 2022 SRA OSS, Inc. Japan22

柔軟なステータス計算および伝播（1）• 子サービスのステータスから親サービスへのステータスを計算する方法
ステータス計算ルール

説明子サービスで最も重要子サービスの障害のうち最も高い深刻度を親サービスのステータスとするすべての子が障害であったときに最も重要ステータスを正常に設定

すべての子サービスが障害であった
場合に、その障害のうち最も高い深刻度を親サービスのステータスとするステータスは計算せず常に正常© 2022 SRA OSS, Inc. Japan

警告
ビジネスサービス

警告
内部サービス

警告
SFA

情報
RPA

外部サービスWeb サイトEC サイト23

柔軟なステータス計算および伝播（2）• さらに柔軟なステータス計算のための追加ルール• ルールに当てはまる場合に親に伝播する深刻度も合わせて指定
追加のルール少なくとも N 個の子サービスの状態がステータス以上
ビジネス
サービス

少なくとも N% の子サービスの状態がステータス以上
N 個未満の子サービスのステータスがステータス以下
子サービスの N% 未満のステータスがステータス以下
ステータスがステータス以上の子サービスの重みが少なくとも W

内部サービス

警告

外部サービスステータスがステータス以上の子サービスの重みが少なくとも N%
ステータスがステータス以下の子サービスの重みが W 未満

SFA

RPA

Web サイトEC サイトステータスがステータス以下の子サービスの重みが N% 未満© 2022 SRA OSS, Inc. Japan24

柔軟なステータス計算および伝播（3）• ステータス伝播時のルールも詳細に設定可能
情報

ステータス伝播ルール

説明

そのまま

子サービスのステータスをそのまま伝播深刻度を増やす深刻度を 1 ～ 5 増やして伝播深刻度を減らす

深刻度を 1 ～ 5 減らして伝播

このサービスを無視

ステータスを伝播しない

固定ステータス

常に同じステータスを伝播© 2022 SRA OSS, Inc. Japan

ビジネス
サービス

警告
内部サービス

警告
SFA

外部サービス

RPA

Web サイトEC サイト25

サービスのステータス変化によるアラート通知• トリガーによる障害と同様にサービスのステータス変化時にもアクションによる通知が可能© 2022 SRA OSS, Inc. Japan26

根本原因の表示• サービスのステータスに影響を与えている障害のリストを「根本原因」列に表示

根本原因に表示される障害は {SERVICE.ROOTCAUSE} マクロで取得可能© 2022 SRA OSS, Inc. Japan27

サービスへの権限付与• ユーザロール単位でサービスへの Read-Write 権限が付与可能• 個々のサービス、またはタグによる指定が可能• サービスのマルチテナント対応© 2022 SRA OSS, Inc. Japan28

Zabbix server の HA クラスタ

© 2022 SRA OSS, Inc. Japan29

Zabbix server の HA クラスタ
• Active/Standby• 1 つの DB を共有• マイナーバージョン間での互換性あり

詳細は次のセッション「Zabbix クラスタ構成解説」で© 2022 SRA OSS, Inc. Japan30

アノマリー検知とベースライン監視© 2022 SRA OSS, Inc. Japan31

アノマリー検知とベースライン監視
アノマリー検知
過去のデータと比べて大きく異なる値を検知

ベースライン監視
過去のデータの周期性から外れたデータを検知© 2022 SRA OSS, Inc. Japan32

アノマリー検知
STL 分解で元データをトレンド、周期変動、残差に分解し異常値を検知
元データトレンド周期変動© 2022 SRA OSS, Inc. Japan

残差33アノマリー検知のトリガー関数• trendstl(/host/key,eval period:time shift,detection period,season,<deviations>,<devalg>,<s_window>)• 全体のデータのうち異常値の数の割合を0～1の間の値で返す
パラメータ

説明/host/key

ホストおよびアイテム

eval period

STL 分解に利用するデータの期間

detection period

アノマリー（異常値）の検知対象期間

season

周期の期間

deviations

異常値とする偏差値（デフォルト：3）

devalg

偏差アルゴリズム（デフォルト：mad）

s_windowloess ウィンドウのスパン（デフォルト：10 * 評価期間中のエントリ数 + 1）
© 2022 SRA OSS, Inc. Japan34

アノマリー検知の設定例• trendstl(/host/key,100h:now/h,10h,2h,2.1,”mad”)• 過去 100 時間のトレンドデータを元に 2 時間を周期として直近 10 時間の異常率を返すただし評価期間中の各残差の MAD (中央絶対偏差) を計算し偏差値が 2.1 に達した場合、その値を異常とみなす• trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp")• 1 年前を起点に過去 1 ヶ月のトレンドデータを元に 2 時間を周期として直近 1 日の異常率を返す
ただし評価期間中の各残差のサンプル標準偏差を計算し偏差値が 3 に達した場合、異常とみなす© 2022 SRA OSS, Inc. Japan35

ベースライン監視• 過去のデータの指定期間の繰り返しから得られる値を監視に利用• トレンドデータから計算• 期間: 1日、周期: 4週間の場合• 現在が火曜日の場合、4 週間の月曜日のデータを元に前日の月曜日を評価
評価ポイント評価に利用

昨日 現在

4 週間前

3 週間前

2 週間前

© 2022 SRA OSS, Inc. Japan

1 週間前

今週36

ベースライン監視のトリガー関数• baselinedev(/host/key,data period:time shift,season_unit,num_seasons)• 周期の中の指定した期間の標準偏差を返す• baselinewma(/host/key,data period:time shift,season_unit,num_seasons)• 周期の中の指定した期間の平均値を返す
パラメータ

説明/host/key

ホストおよびアイテム

data period

データ期間

season_unit

周期単位

num_seasons

周期数© 2022 SRA OSS, Inc. Japan37

ベースライン監視の設定例• baselinedev(/host/key,1d:now/d,"M",6)• 前日と過去 6 ヶ月間の同じ日の標準偏差数（母数）を計算• baselinewma(/host/key,1h:now/h,"d",3)• 昨日までの3日間のうち、最後の1時間を基準として平均値を計算© 2022 SRA OSS, Inc. Japan38

アノマリー検知とベースライン監視の評価方法

トリガー関数の計算結果を基準としてどう評価するかはユーザ次第© 2022 SRA OSS, Inc. Japan39

Kubernetes 監視© 2022 SRA OSS, Inc. Japan40

Kubernetes 監視• ノードと Pod の自動検出と監視• ノードや Pod に関する情報をエージェントレスで収集• ノードホストから詳細な情報を取得可能• 以下のテンプレートが追加• Kubernetes nodes by HTTP
• Kubernetes cluster state by HTTP
• Kubernetes API server by HTTP
• Kubernetes Controller manager by HTTP
• Kubernetes Scheduler by HTTP
• Kubernetes kubelet by HTTP
© 2022 SRA OSS, Inc. Japan41

Kubernetes 監視の概要図
Kubernetes クラスタ
コントロールプレーンノード
Zabbix AgentkubeletZabbix Agentkubelet
Zabbix Proxykube-statemetricskubescheduler
kube-apiserver© 2022 SRA OSS, Inc. Japan

kube-controlmanager

42

Kubernetes 監視導入ツール• Kubernetes 監視をフルに活用するためには
Zabbix proxy と Zabbix agent を Kubernetes クラスタに導入する必要あり• そのためのツールである Zabbix Helm Chart を提供• https://git.zabbix.com/projects/ZT/repos/kuberneteshelm/browse?at=refs%2Fheads%2Frelease%2F6.0• 要件• Kubernetes cluster 1.18 以上• Helm 3.0 以上• Zabbix server 6.0 以上• kube-state-metrics 2.13.2 以上© 2022 SRA OSS, Inc. Japan43

新規ウィジェット© 2022 SRA OSS, Inc. Japan44

地理マップウィジェット
• 地図に監視対象の場所を表示• 発生している障害によって色分け• インベントリで緯度、経度の設定が必要© 2022 SRA OSS, Inc. Japan

45

アイテムの値ウィジェット
• 単一のアイテムの現在値を表示• 表示スタイル、アイコンも変更可能© 2022 SRA OSS, Inc. Japan

46

上位ホストウィジェット
• ユーザがカスタマイズ可能なデータ概要テーブルを表示• 特定アイテムの TOP N やバーゲージ表示が可能© 2022 SRA OSS, Inc. Japan47

その他の新機能© 2022 SRA OSS, Inc. Japan

48

データベースのバージョンチェック機能• Zabbix server/proxy 起動時 DB のバージョンをチェック• 対応バージョン外なら起動しない
zabbix_server.log

Unable to start Zabbix server due to unsupported PostgreSQL databaseserver version (10.17)

Must be at least (13.0)
Use of supported database version is highly recommended.
Override by setting AllowUnsupportedDBVersions=1 in Zabbix server
configuration file at your own risk.
© 2022 SRA OSS, Inc. Japan49

新規追加されたアイテムキー• agent.hostmetadata：エージェントのホストメタデータ• kernel.openfiles：現在開いているファイルディスクリプタ数• net.tcp.socket.count[]：パラメータに一致する TCP ソケット数• net.udp.socket.count[]：パラメータに一致する UDP ソケット数• vfs.dir.get[]：JSON 形式のディレクトリ情報• vfs.file.get[]：JSON 形式のファイル情報• vfs.file.owner[]：ファイルの所有者情報• vfs.file.permissions[]：ファイルのパーミッション© 2022 SRA OSS, Inc. Japan

詳細はAppendix II へ50更新されたアイテムキー• vfs.file.cksum[]：第 2 パラメータ <mode> が追加（crc32 (デフォルト), md5, sha256）• vfs.file.size[]：第 2 パラメータ <mode> が追加（bytes (デフォルト), lines）• vfs.fs.discovery：Windows の場合、ボリューム名を{#FSLABEL} マクロで取得• vfs.fs.get： Windows の場合、ボリューム名を{#FSLABEL} マクロで取得© 2022 SRA OSS, Inc. Japan51

単調変化の検知• monoinc() 関数：任意期間の単調増加を検知• monodec() 関数：任意期間の単調減少を検知

monoinc() の場合

mode = weakmode = strict

同じ値© 2022 SRA OSS, Inc. Japan52

変化回数の検知• changecount() 関数 ：任意期間に隣接する値の間で変化があった回数を返す

mode
• all
• inc
• dec

：増減問わずカウント ⇒ 3：増加のみカウント ⇒ 2：減少のみカウント ⇒ 1© 2022 SRA OSS, Inc. Japan53

Github メディアタイプの追加• Webhook で Github の issue を登録可能

障害
タグ・リンク

issue No.

© 2022 SRA OSS, Inc. Japan54

Zabbix ユーザのパスワードポリシー設定• 最小パスワード長• 必須項目• 大文字小文字• 数字• 記号• 推測が容易な文字列の禁止• よくあるパスワード• ユーザ名を含む© 2022 SRA OSS, Inc. Japan55

Zabbix get、Zabbix sender のタイムアウト
zabbix_get、zabbix_sender コマンドでタイムアウトを指定するパラメータをサポート-t <seconds>--timeout <seconds>• Zabbix get：1 ～ 30 秒 (デフォルト: 30 秒)• Zabbix sender ：1 ～ 300 秒 (デフォルト: 60 秒)© 2022 SRA OSS, Inc. Japan56

アップグレード時の注意点© 2022 SRA OSS, Inc. Japan57

アップグレードの前に• 公式ドキュメントの新機能およびアップグレードに関するページを確認• 1. Introduction – 5 What‘s new in Zabbix 6.0.0 ～ 6.0.x• 4. Installation – 7 Upgrade procedure• 4. Installation – 8 Known issues• 4. Installation – 10 Upgrade notes for 6.0.0 ～ 6.0.x© 2022 SRA OSS, Inc. Japan58

Zabbix 6.0 アップグレード時の注意点 1• RHEL で Zabbix server のパッケージは 8 系のみ提供• Zabbix proxy は RHEL 7 のパッケージも提供• Zabbix agent は RHEL 5、agent 2 は RHEL 6 以上

• Zabbix server と Zabbix proxy は要同一メジャーバージョン• Zabbix agent は後方互換性あり• DB のサポートバージョンに注意• サポート外だとデフォルトでは起動しない• RHEL 8 の公式リポジトリの PostgreSQL、MySQL を利用するにはRHEL 8.4 以上が必要© 2022 SRA OSS, Inc. Japan59

Zabbix 6.0 アップグレード時の注意点 2• history テーブルへの主キー追加は別途スクリプトを実行• スクリプトは zabbix-sql-scripts パッケージに同梱• テーブルの変換には history テーブル分の空き容量が必要• PCRE が PCRE2 に変更• 正規表現の記述方法に一部違い• 監査ログの履歴は移行不可• 6.0 からの監査ログのスキーマの変更による© 2022 SRA OSS, Inc. Japan60

Zabbix 6.0 アップグレード時の注意点 3• アイテム名でのポジショナルマクロ ($1, $2 …) のサポート削除• アップグレードで自動変換はされない• Zabbix のサポート契約があるとマクロを変換してくれるコマンドラインユーティリティが利用可能© 2022 SRA OSS, Inc. Japan61

参考• Zabbix 6.0 manual• https://www.zabbix.com/documentation/6.0/en/manual• What's new in Zabbix 6.0.0• https://www.zabbix.com/documentation/6.0/manual/introducti
on/whatsnew600• Zabbix roadmap• https://www.zabbix.com/jp/roadmap© 2022 SRA OSS, Inc. Japan62

SRA OSS Tech Blog
• 弊社 Tech Blog では Zabbix を始め、様々な OSS の技術情報を掲載• Zabbix 6.0 に関する技術情報も随時掲載予定• SRA OSS Tech Blog
• https://www.sraoss.co.jp/tech-blog/© 2022 SRA OSS, Inc. Japan63

オープンソースとともに© 2022 SRA OSS, Inc. Japan64

Appendix
新規追加されたアイテムキー© 2022 SRA OSS, Inc. Japan65

agent.hostmetadata• エージェントのホストメタデータを返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：文字列
• パラメータ：なし

ホストメタデータ
1. zabbix_agentd.conf の HostMetadata に設定した文字列
2. HostMetadataItem に設定したアイテムキーの取得結果
3. 両方設定していなければ空文字列© 2022 SRA OSS, Inc. Japan66

kernel.openfiles• 現在開いているファイルディスクリプタ数を返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：数値（整数）• パラメータ：なし© 2022 SRA OSS, Inc. Japan

67

net.tcp.socket.count[]• パラメータに一致する TCP ソケット数を返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：数値（整数）• パラメータ：<laddr> ローカルの IPv4/v6 アドレス（CIDR 表記可）
<lport> ローカルのポート番号もしくはサービス名<raddr> リモートの IPv4/v6 アドレス (CIDR 表記可)<rport> リモートのポート番号もしくはサービス名<state> 接続状態（established, syn_sent, syn_recv,fin_wait1, fin_wait2, time_wait, close,close_wait, last_ack, listen, closing）© 2022 SRA OSS, Inc. Japan

68

net.udp.socket.count[]• パラメータに一致する UDP ソケット数を返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：数値（整数）• パラメータ：<laddr> ローカルの IPv4/v6 アドレス（CIDR 表記可）
<lport> ローカルのポート番号もしくはサービス名<raddr> リモートの IPv4/v6 アドレス (CIDR 表記可)<rport> リモートのポート番号もしくはサービス名<state> 接続状態（established, unconn）© 2022 SRA OSS, Inc. Japan69

vfs.dir.get[][{"basename":"zabbix_agentd.d","pathname":"/etc/zabbix/zabbix_agentd.d","dirname":"/etc/zabbix","type":"dir","user":"root","group":"root","permissions":"0755","uid":0,"gid":0,"size":4096,"time": {"access":"2021-11-10T04:16:58+0900","modify":"2021-11-10T00:50:35+0900","change":"2021-11-10T04:16:56+0900“},"timestamp": {"access":1636485418,"modify":1636473035,"change":1636485416}},• ディレクトリの情報を JSON 形式で返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型：テキスト• パラメータ：dir<regex_incl><regex_excl><types_incl>

ディレクトリのパス
含めるエンティティの正規表現除外するエンティティの正規表現リストする種類 (file, dir, sym,sock, bdev, cdev, fifo, dev,
all)<types_excl> リストしない種類<max_depth> 探索するサブディレクトリの深さ<min_size>
リストする最小 byte 数<max_size>
リストする最大 byte 数<min_age>
リストする最小タイムスタンプ<max_age>
リストする最大タイムスタンプ<regex_excl_dir>除外するディレクトリの正規表現© 2022 SRA OSS, Inc. Japan]
70

vfs.file.get[]• ファイルの情報を JSON 形式で返す{"type": "file","user": "root","group": "zabbix","permissions": "0600","uid": 0,"gid": 975,
"size": 25903,"time": {"access": "2021-11-09T11:22:32+0900","modify": "2021-11-09T11:22:28+0900","change": "2021-11-09T11:22:28+0900"},"timestamp": {"access": 1636424552,"modify": 1636424548,"change": 1636424548}• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：テキスト• パラメータ：file ファイルのフルパス}© 2022 SRA OSS, Inc. Japan71

vfs.file.owner[]• ファイルの所有者情報を返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：文字列
• パラメータ：file
ファイルのフルパス<ownertype> 所有者の種類（user, group）<resulttype>
所有者の表示形式（name, id）© 2022 SRA OSS, Inc. Japan

72

vfs.file.permissions[]• ファイルのパーミッション情報（8 進数 4 桁）を返す• タイプ：Zabbix エージェント
Zabbix エージェント（アクティブ）• データ型 ：文字列
• パラメータ：file
ファイルのフルパス

Windows の Zabbix agent ではサポートされない© 2022 SRA OSS, Inc. Japan73