このバージョンでの重大な変更はこちらを参照してください。
新バージョンでは、Zabbixサーバの高可用性ソリューションをネイティブで提供します。
このソリューションは、複数のzabbix_serverインスタンスまたはノードで構成されます。一度にアクティブ(現用ノード)にできるのは1ノードのみで他のノードはスタンバイ状態にあり、現用ノードの停止や障害発生時にスタンバイノードに引き継ぐことができます。
参照: 高可用性(HA)クラスタリング
サービス監視について、いくつかのアップデートが行われました。サービス監視では、Zabbixで監視しているインフラストラクチャの概要を提供します。
タグベースの障害へのサービスのマッピング
サービスは、旧バージョンのZabbixではトリガーとその状態に依存していました。新しいバージョンでは、この問題はタグベースのマッピングに置き換えられ、各サービスの問題に対応するようになりました。
サービス構成では、ハード依存とソフト依存はもはや存在しません。代わりに、1つのサービスは複数の親サービスを持つことができます。
サービスメニュー
Zabbixに4つのメニューセクションからなる新しいサービスメニューが追加されました。
サービスの設定のための別のセクション、設定はもう存在しないことに注意してください。
ステータス計算と伝搬ルール
直接の子サービスのステータスや重みから、親サービスのステータスを計算するための新しいステータス計算ルールと柔軟な追加ルールが用意されました。また、親サービスに状態を伝搬するためのルールを柔軟に設定できるようになりました。
サービスのパーミッション設定
サービスに対する柔軟なパーミッションがユーザーの役割の レベルで実装されました。(サービス名やタグに基づいて)選択されたサービスに対して、読み書きまたは読み取り専用アクセス権限を与えることができます。
根本原因の分析
新しい根本原因列には、サービス状態に直接的または間接的に影響を与える根本的な問題が列挙されています。
監視データ → 障害で障害名をクリックすればその障害の詳細を見ることができます。
サービスステータス変更時のアラート
トリガーの状態変化に関するアラートと同様に、サービスの状態変化に関する自動的なアラートを受け取ることができるようになりました。
Zabbixの他のアクションと同じように、新しくサービスアクション機能が追加されました。 サービスアクションには、サービスに関連する問題解決、復旧、更新操作の手順が含まれます。 サービスアクションは指定された受信者にメッセージを送信するアクションと指定された受信者にリモートでアクションを実行するアクションの2種類を設定することが可能です。
トリガーアクションと同様に、サービスアクションは問題のエスカレーションシナリオをサポートします。
新しいメッセージテンプレート サービス、サービスの復旧、サービスの更新 が メディアタイプに追加されたため、サービスアクションの通知を正しく送信できるように定義する必要があります。
サービスの複製
サービスの複製が可能になりました。複製 ボタンが、サービスの設定フォーム に追加されました。サービスの複製を作成すると、その親リンクは保持されますが、子リンクは保持されません。
新規インストール時に、ヒストリテーブルを含むすべてのテーブルでプライマリーキーを使用するようになりました。
既存環境のプライマリーキーへの自動アップグレードはありません。 Instructions for a manual upgrade of history tables to primary keys in pre-existing installations are available for ヒストリテーブルを既存のインストールのプライマリーキーに手動アップグレードする手順は、次のリンクを参照してください。 MySQL/MariaDB、 PostgreSQL、 TimescaleDB v1、 v2、 Oracle。
バージョン6.0.0では、いくつかのダッシュボードウィジェットが追加されました。
ダッシュボードウィジェットに 上位ホスト ウィジェットが追加されました。このウィジェットは、現在非推奨となっている データの概要 ウィジェットを置き換えるために設計されています。
上位ホスト ウィジェットでは、データ概要のためのカスタムテーブルを作成することができます。これは、上位Nホストのようなレポートや、キャパシティ・プランニングに役立つプログレスバー形式のレポート を作成できます。
詳細は、上位のホストウィジェットをご覧ください。
ダッシュボードウィジェットに、アイテムの値ウィジェットが追加されました。
このタイプのウィジェットは、単一の項目の値を目立つように表示するのに便利です。さまざまな表示スタイル が可能です:
詳細は、アイテムの値ウィジェットをご覧ください。
トリガー式のデバッグと内部動作のための新しいマクロがサポートされました。
デバッグ用マクロは、トリガー条件式のデバッグを簡素化します:
内部アクションのマクロは、アイテム、LLDルール、トリガーがサポートされなくなった理由を含んでいます。
詳しくは、サポートされるマクロを参照してください。
トリガーと計算アイテムのための新しい式の構文が、Zabbix 5.4 で導入されました。しかし、単純なマクロでは、まだ古い構文が使われていました。 新しいバージョンでは、単純なマクロの機能が式マクロに移行され、新しい式の構文を採用しました。 以下の比較を参照してください:
Zabbix 6.0 | Zabbix 6.0以前 |
---|---|
{?avg(/host/key,1h)} 新しいバージョンでの式のサンプル |
{host:key.avg(1h)} 前のバージョンでの単純なマクロのサンプル |
以前の単純なマクロは、アップグレード中に式のマクロに変換されます。 式のマクロの範囲は、単純なマクロで提供されていたものと同じです。 したがって、式マクロは次のような場合で使用できます:
アイテム名の位置指定マクロ($1, $2...$9)のサポートはZabbix 4.0から非推奨となり、完全に削除されました。
Zabbix 4.0から非推奨となっていたアイテム名(ディスカバリールール名を含む)のユーザーマクロのサポートは、完全に廃止されました。
保存前処理キューに依存項目の一括処理を導入し、Prometheusメトリクスの検索性能を向上させました。
詳しくはPrometheusのチェック を参照してください。
保存前処理でPrometheusパターンのステップを実行すると、複数の行がマッチすることがあります。この状況に対応するために、新しい結果処理 パラメータ がPrometheusパターンの保存前処理のステップに追加されました。sum、min、max、avg、countなどの関数を導入することで、複数のマッチング行のデータを集約することができます。
PrometheusのメトリクスをZabbixで収集することができるようになりました。しかし、メトリクスの中には作業がしづらいものもあります。具体的に言うと、ヒストグラムタイプのメトリクスは、Zabbixでは同じキー名で異なるパラメータを持つ複数のアイテムとして表示することができます。しかし、これらの項目は論理的に関連しており、同じデータを表しているにもかかわらず、専用の機能がなければ、収集されたデータを分析することは困難でした。新バージョンでは、この機能ギャップをカバーするために、rate()とhistogram_quantile()関数が追加され、PromQLの対応するものと同じ結果を生成します。
この機能を補完する他の新しい追加機能は、bucket_rate_foreach() とbucket_percentile()関数です。 詳細については以下を参照してください :
新しいmonoinc()またはmonodec()ヒストリ関数を使用して、 項目値の単調増加、単調減少をチェックできるようになりました。
新しいヒストリ関数として隣接する値間の変更回数を数えることができるchangecount()が追加されました。 この関数は、すべての変更をカウントする、減少のみ、増加のみをカウントする3つの異なるモードをサポートしています。 例えば、ユーザー数の変化や、システム稼働時間の減少を追跡するために使用することができます。
foreach関数によって返される特定のホスト、アイテム、または値のカウントを簡素化するための新しい関数が追加されました。
集計関数:
Foreach関数:
Zabbix 5.2では、ベースライン監視に役立つ新しいトレンド関数が導入されました。しかし、この機能でも相対的な閾値を定義する必要があります。(例:2021年9月のWebトラフィックが2020年9月に比べて2倍以下であることをチェックする)。実際のところ、このような閾値の定義が困難なケースもあります。例えば、新しいが非常に人気のあるウェブサイトのトラフィックは、1年間で何倍にも有機的に成長するが、その成長率は未知数です。しかし、DDOS攻撃による急激なトラフィックの増加は、有機的なトラフィックの増加とは無関係にアラートを発生させなければいけません。
異常値検出アルゴリズムは、まさにこれを行うもので、他の値のコンテキストの中で正常に見えないデータ(異常値)を見つけるものです。
新しい 履歴関数 trendstl() が追加され、異常率を計算するために 'decomposition' メソッドを使用するようになりました。この関数は、1つの時系列を3つの時系列に分割します。
異常検出は余りの列で動作し、余りの値の大多数から離れすぎている(far from)値があるかどうかをチェックします。"離れすぎている(Far)"とは、余りの配列からの絶対値が、標準偏差または平均偏差のN倍であることを意味します。
文字列関数 concat は、2つ以上のパラメータを連結して使用できるようになりました。文字列と値を異なる組み合わせで結合したり、2つ以上の値を互いに付加したりするのに利用できます。数値データ型もサポートされています。
アイテム設定画面で、選択されたアイテムキーが特定のタイプのデータのみを返す場合、一致する情報のタイプを自動的に提案するようになりました。(例えば、log[]アイテムは、データ型: ログであることが必要) データ型パラメーターがアイテムタブのKeyパラメータの下に配置され、少なくとも1つの保存前処理が定義されている場合は、保存前処理 タブに複製されます。選択したタイプの情報とキーが一致しない可能性がある場合、警告アイコンが データ型 フィールドの横に表示されます。
Zabbixエージェント/エージェント2にいくつかの新しいアイテムが追加されました。
さらに:
mode
で(crc32, md5, sha256)をサポートmode
で (bytes or lines)をサポート詳細については、Zabbixエージェントのアイテムを参照してください。
計算アイテムは、数値だけでなく、テキスト、ログ、文字型の情報にも対応しました。
ユーザーパラメータを設定ファイルから再読み込みできるようになりました。これを行うには、新しい userparameter_reload
ランタイムコントロールオプションを実行します。
または
UserParameter は、このコマンドで再読み込みされる唯一のエージェントの設定オプションです。
これまで、ZabbixサーバーとZabbixプロキシの実行時制御オプションは、BSDベースのシステムには対応していませんでした。ランタイムコマンドの転送方法を変更することで、この制限を撤廃することができました。FreeBSD、NetBSD、OpenBSD、その他*BSD系のOSでほとんどのコマンドをサポートすることができるようになりました。
正確なリストは、ランタイム制御のサーバー向け または プロキシ向け を参照してください。
外部プラグインローダー
これまでは、プラグインはZabbixエージェント2にのみコンパイルして組み込むことができ、利用可能なプラグインのセットを変更する必要があるたびに、エージェントを再コンパイルする必要がありました。外部プラグインローダーが追加されたことで、プラグインをエージェント2に直接統合する必要がなくなり、個別の外部アドオン(ロード可能なプラグイン)として追加できるようになったため、新しい監視メトリクスを収集するための追加プラグインの作成プロセスが容易になりました。
ロード可能な外部プラグインの導入に伴い、以下の設定パラメータを変更しました:
Zabbixのパスワードの複雑さの要件を内部認証方法 で指定できるようになりました。Zabbixユーザが脆弱なパスワードを設定することを防ぐため、以下のような制限をかけることができます:
最適なユーザエクスペリエンスを実現し、様々な実環境で最高のZabbixのパフォーマンスを確保するために 一部の古いデータベースリリースのサポートは終了しました。 これは主に、サポート期間の終了に近いデータベースバージョンと、通常のパフォーマンスに支障をきたす可能性のある未修整の問題があるバージョンに適用されます。
Zabbix 6.0から、公式にサポートしているバージョンの データベースは以下の通りです。
デフォルトでは、サポートされていないデータベースバージョンが検出された場合、Zabbixサーバーとプロキシは起動しません。 ただし推奨はしませんが、サーバーやプロキシのAllowUnsupportedDBVersions設定パラメータを変更することで、DB バージョンをチェックしないようにできます。
MySQL/MariaDBでのインストール時の、utf8mb4 エンコーディングと utf8mb4_bin 照合順序がサポートされました。
以前は utf8 エンコーディングのみがサポートされていましたが、MySQL の場合、これはutf8mb3 encodingの略で適切な UTF-8 文字のサブセットのみをサポートしていました。新しいバージョンでは、すべてのutf8mb4サポートが追加されました。utf8mb3を使用している古いインストールはそのまま維持され、そのエンコードを使用し続けることができます。
Zabbix 6.0 へのアップグレード後のutf8mb4への変換の実行手順も参照してください。
Zabbix getとZabbix senderユーティリティは、-t <seconds>
または--timeout <seconds>
のタイムアウトパラメータをサポートするようになりました。有効な範囲は以下のとおりです:
SNMPゲートウェイが障害状態にあるトリガーに関する情報を提供し、トリガーの詳細でホスト情報を明らかにすることができるようになりました。
さらに、SNMPゲートウェイから送信されるSNMPトラップのレートを制限できるようになりました。
サポートされるOIDのリストは、トリガーホスト名のカンマ区切りのリスト用の新しいOID .10で拡張されました。
SNMPゲートウェイ設定ファイルに新しいパラメーターが追加されました:
詳細はZabbix SNMP Gateway を参照してください。
ZabbixのWeb監視に圧縮コンテンツの処理機能が追加されました。libcurl でサポートされているすべてのエンコーディング形式がサポートされます。
ZabbixのPrometheus保存前処理でのクエリ言語で、以下の2つのラベルマッチングオペレータがサポートされるようになりました。
HTTPメソッド PATCH, HEAD, OPTIONS, TRACE, CONNECT をJavaScriptエンジンに追加しました。また、新しい JS メソッド HttpRequest.customRequest を使って、カスタム HTTPメソッドのリクエストを送信できるようになりました。
追加のJavaScriptオブジェクトもあわせて参照してください。
監査レコード
監査ログに、LLDルール、ネットワークディスカバリーアクション、自動登録アクション、スクリプト実行の結果として発生した変更を含む、すべてのZabbixオブジェクトの設定変更に関するレコードが監査ログに含まれるようになりました。これまで、Zabbixサーバーからの設定変更(例:ディスカバリールールの実行)は記録されませんでした。今回、このようなオブジェクトの変更は、Systemユーザーに起因する監査レコードとして保存されます。
レコードフィルター
レコードを、そのエントリーの原因となったWebインターフェースの操作でフィルタリングする機能が追加されました。 例えばテンプレートのリンク/アンリンクなど、1つの操作の結果として複数のログレコードが作成された場合、そのレコードは同じ記録IDを持つことになります。
監査設定
新しいセクション 管理→一般設定 メニューに 監査ログ が追加され、監査ログの有効化と無効化ができるようになりました。 これまでデータの保存期間セクションにあった監査用の保存期間設定も、新しい監査ログセクションに移動されました。
RHEL 7以降、SLES(全バージョン)、Debian 9以降、Ubuntu 16.04以降のZabbixインストールパッケージがPCRE2のサポートが追加されました。 PCREは引き続きサポートされていますが、ZabbixはPCREまたはPCRE2のどちらか一方のライブラリでコンパイルする必要があり、両方を同時に使用することはできません。
ODBCチェックの処理は、通常のpollerプロセスから、独立したサーバーとプロキシのプロセスであるODBC pollerに移動しました。この変更により、pollerプロセスで作成されるデータベースへの接続数を制限することができます。以前は、ODBCチェックはZabbixエージェントアイテムやSSHチェックなどでも動作する通常のpollerプロセスによって実行されていました。
新しい設定パラメータStartODBCPollersがZabbixサーバー と プロキシ の設定ファイルに追加されました。
内部項目 zabbix[process,<type>] を使用すると、ODBC pollerの負荷を監視できます。
Zabbixの通知からwebhook メディアタイプを使用してGithub issuesを作成できるような統合処理を行うことができるようになりました。
新しい監視のための公式テンプレートが利用できます。
Kubernetesの監視を有効にするには、新しいツールZabbix Helm Chartを使用し、KubernetesクラスタにZabbixプロキシとZabbixエージェントをインストールする必要があります。
テンプレートの設定の詳細については、HTTPテンプレートの操作を参照してください。
これらのテンプレートは以下の方法で取得できます:
テンプレートのリンクがより見やすくなるように、ホスト、ホストプロトタイプ、テンプレート設定フォーム、およびホスト/テンプレート一括更新フォームの最初のタブに配置されました。
その結果、すべてのフォームから、テンプレートリンクのための独立したタブが削除されました。
これに関連して、ホストプロトタイプの設定において、ホストグループ/ホストグループプロトタイプの選択フィールドも、別のタブから最初のタブに移動されました。
Zabbixサーバーとプロキシのランタイムコマンドは、Unixシグナルではなく、ソケット経由で発行されるようになりました。 この変更により、ランタイムコントロールオプションの操作性が向上しました:
ダッシュボードに新しい地理マップウィジェットが導入され、ホストを地理的な地図上に表示できるようになりました。詳しくは地理マップダッシュボードウィジェットと地理マップを参照してください。
最新データセクションにサブフィルターが追加されました。 このサブフィルターは、関連する項目のグループにワンクリックでアクセスするのに便利です。 ワンクリックでアクセスできます。
サブフィルターには、クリックできるリンクが表示され、以下のことが可能です。 共通のエンティティ(ホスト、タグ名、タグの値)に基づいてアイテムをフィルタリングすることができます。 エンティティがクリックされるとすぐに、アイテムがフィルタリングされます。
詳細は、最新データ セクションを参照してください。
監視データ → ホスト → グラフ のグラフページで、いくつかの操作性が改善されました。
詳細は、グラフ ページを参照してください。
監視データ → ホスト から新しいホスト定義を作成することもできるようになりました。
ホスト作成 ボタンは、管理者と特権管理者のユーザーが使用できます。
ホストメニューやホスト設定への直接リンクがある、設定→ホスト、監視データ→ホスト、および任意のページで、ホスト定義の作成と編集のためのフォームがモーダル(ポップアップ)ウィンドウで開かれます。
ホスト編集ページへの直接リンクはまだ機能しており、全画面でホスト編集ページを開きます。
最新データに、アイテムのための新しいコンテキストメニューが導入され、アイテムの構成と利用可能なグラフにアクセスすることができるようになりました。
逆に、ホストのアイテム一覧 の設定メニューに新しいコンテキストメニューが導入され、最新のデータにアクセスすることができるようになりました。他にも便利なオプションがあります。
このメニューは、以前のバージョンのウィザードオプションを置き換えたものです。 同様のメニューは、テンプレートのアイテム にも導入されています。 アイテムのプロトタイプにも同様のメニューが導入されました。
アクションの実行内容の設定時に、該当するオプションのチェックボックスをオフにすると、キャンセルされたエスカレーションに関する通知をキャンセルすることができるようになりました。
最新データ セクションにいくつかの改良が加えられました:
監視データ メニューの概要 セクションが完全に削除されました。 データの概要とトリガーの概要のダッシュボードウィジェットを使用して、同じ機能にアクセスすることができます。
監査ログ機能の変更を実装するために、既存のデータベース構造を再構築する必要がありました。 アップグレードによって、auditlog
とauditlog_details
DB テーブルは、異なるフォーマットの新しいテーブルauditlog
に置き換えられます。既存の監査ログのレコードは削除されます。
Zabbix サーバーとプロキシは、起動前にデータベースのバージョンを確認し、サポート範囲外のバージョンの場合は起動しないようになりました。詳細については、データベースを参照してください。
ZabixはPCREとPCRE2の両方をサポートするようになりました。 RHEL 7以降、SLES(全バージョン)、Debian 9以降、Ubuntu 16.04以降のZabbixパッケージは、PCREの代わりにPCRE2でコンパイルするように更新されました。 ソースからコンパイルする場合、ユーザーは ''--with-libpcre'' または ''--with-libpcre2'' フラグを選択することができます。 既存のインストールをアップグレードする場合、PCRE を PCRE2 に変更すると、いくつかの正規表現の動作が変わることがあります。 詳細については、既知の問題点 を参照してください。
設定ファイルの分割
Zabbixエージェント2プラグインに、個別の設定ファイルが追加されました。デフォルトでは、これらのファイルは ./zabbix_agent2.d/plugins.d/
ディレクトリに配置されます。このパスは、エージェント2設定ファイルの Include
パラメータで指定し、 zabbix_agent2.conf またはzabbix_agent2.win.confファイルの場所を指定します。
ベースライン監視のオプションが拡張され、baselinedevとbaselinewmaの2つの関数が追加されました。
これらの機能において、'シーズン'という用語は、時間、日、週、月、年単位で設定可能な時間枠を指します。シーズンの長さと分析するシーズン数は、関数のパラメーターで設定します。
詳しくは、ヒストリ関数を参照してください。