新バージョンでは、Zabbixサーバの高可用性ソリューションをネイティブで提供します。
このソリューションは、複数のzabbix_serverインスタンスまたはノードで構成されます。
一度にアクティブ(現用ノード)にできるのは1ノードのみで、他のノードはスタンバイ状態にあり、
現用ノードの停止や障害発生時に、スタンバイノードに引き継ぐことができます。
参照: 高可用性(HA)クラスタリング.
サービス監視について、いくつかのアップデートが行われました。
サービス監視では、Zabbixで監視しているインフラストラクチャのハイレベルなビューを提供します。
Zabbixに4つのメニューセクションからなる新しいサービスメニューが追加されました。
その他、サービス機能の主な改善点は以下の通りです。
サービスは、旧バージョンのZabbixでは、トリガーとその状態に依存していました。
新しいバージョンでは、この問題はタグベースのマッピングに置き換えられ、各サービスの問題に対応するようになりました。
サービスの設定と閲覧は、サービス →サービス に統合され、サービス設定のための独立したセクションは
設定 → サービス にはなくなりました。
サービス構成では、ハード依存とソフト依存はもはや存在しません。
代わりに、1つのサービスは複数の親サービスを持つことができます。
Services menu
There is now a new Services menu in Zabbix, with four menu sections:
直接の子サービスのステータスや重みから、親サービスのステータスを計算するための新しいステータス計算ルールと柔軟な追加ルールが用意されました。また、親サービスに状態を伝搬するためのルールを柔軟に設定できるようになりました。
サービスに対する柔軟なパーミッションがユーザーの役割の レベルで実装されました。(サービス名やタグに基づいて)選択されたサービスに対して、読み書きまたは読み取り専用アクセス権限を与えることができます。
新しい根本原因列には、サービス状態に直接的または間接的に影響を与える根本的な問題が列挙されています。
監視データ → 障害で障害名をクリックすればその障害の詳細を見ることができます。
トリガーの状態変化に関するアラートと同様に、サービスの状態変化に関する自動的なアラートを受け取ることができるようになりました。
Zabbixの他のアクションと同じように、新しくサービスアクション機能が追加されました。
サービスアクションには、サービスに関連する問題解決、復旧、更新操作の手順が含まれます。
サービスアクションは指定された受信者にメッセージを送信するアクションと指定された受信者にリモートでアクションを実行するアクションの2種類を設定することが可能です。
トリガーアクションと同様に、サービスアクションは問題のエスカレーション シナリオをサポートします。
新しいメッセージテンプレート サービス、サービスの復旧、サービスの更新
が メディアタイプに追加されたため、サービスアクションの通知を正しく送信できるように定義する必要があります。
サービスの複製が可能になりました。複製 ボタンが、サービスの設定フォーム に追加されました。サービスの複製を作成すると、その親リンクは保持されますが、子リンクは保持されません。
新規インストール時に、履歴テーブルを含むすべてのテーブルでプライマリーキーを使用するようになりました。
既存環境への主キーの自動アップグレードはありません。 履歴テーブルを主キーに 手動でアップグレードする方法については以下のリンクを参照してください。
MySQL/MariaDB
PostgreSQL
TimescaleDB v1 and v2
Oracle
バージョン6.0.0では、いくつかのダッシュボードウィジェットが追加されました。
ダッシュボードウィジェットに 上位ホスト ウィジェットが追加されました。このウィジェットは、現在非推奨となっている データの概要 ウィジェットを置き換えるために設計されています。
上位ホスト ウィジェットでは、データ概要のためのカスタムテーブルを作成することができます。これは、上位Nホストのようなレポートや、キャパシティ・プランニングに役立つプログレスバー形式のレポート を作成できます。
詳細は、上位のホストウィジェットをご覧ください。
ダッシュボードウィジェットに、アイテムの値ウィジェットが追加されました。
このタイプのウィジェットは、単一の項目の値を目立つように表示するのに便利です。さまざまな表示スタイル が可能です:
詳細は、アイテムの値ウィジェットをご覧ください。
トリガー式のデバッグと内部動作のための新しいマクロがサポートされました。 デバッグ用マクロは、トリガー条件式のデバッグを簡素化します:
· {TRIGGER.EXPRESSION.EXPLAIN}, · {TRIGGER.EXPRESSION.RECOVERY.EXPLAIN} - これらは、項目ベースの関数のみに適用され
部分的に評価されたトリガー式またはリカバリートリガー式に展開されます。
· {FUNCTION.VALUE<1-9>}, {FUNCTION.RECOVERY.VALUE<1-9>} - これらは、その時の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関数で返却される、特定のホストや項目のカウントを簡略化するための 新しい関数が追加されました。
集計関数: - count - foreach関数が返す配列内の値の合計(整数を返す) - item_count - 現在有効な項目のうち、フィルタ条件に一致するものの総数 (整数を返す)
Foreach関数: - exists_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でほとんどのコマンドをサポートすることができるようになりました。 正確なリストは、ランタイム制御*のサーバー向け または プロキシ向けproxy を参照してください。
これまでは、プラグインはZabbixエージェント2にのみコンパイルして組み込むことができ、利用可能なプラグインのセットを変更する必要があるたびに、エージェントを再コンパイルする必要がありました。外部プラグインローダーが追加されたことで、プラグインをエージェント2に直接統合する必要がなくなり、個別の外部アドオン(ロード可能なプラグイン)として追加できるようになったため、新しい監視メトリクスを収集するための追加プラグインの作成プロセスが容易になりました。
ロード可能な外部プラグインの導入に伴い、以下の設定パラメータを変更しました: - Plugins.<PluginName>.Path パラメーターは Plugins.<PluginName>.System.Path へ移動しました。 - Plugins.<PluginName>.Capacity パラメーターは、まだサポートされていますが、非推奨となりました。Plugins.<PluginName>.System.Capacity をご使用ください。
Zabbixのパスワードの複雑さの要件を内部認証方法 で指定できるようになりました。
Zabbixユーザが脆弱なパスワードを設定することを防ぐため、以下のような制限をかけることができます:
最適なユーザエクスペリエンスを実現し、様々な実環境で最高のZabbixのパフォーマンスを確保するために 一部の古いデータベースリリースのサポートは終了しました。
これは主に、サポート期間の終了に近いデータベースバージョンと 通常のパフォーマンスに支障をきたす可能性のある未修整の問題があるバージョンに適用されます。
Zabbix 6.0から、公式にサポートしているバージョンの データベースは以下の通りです。
デフォルトでは、サポートされていないデータベースのバージョンが検出された場合、Zabbix server と proxyは起動しません。
ただし、推奨はしませんが、サーバー やプロキシ. の 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ゲートウェイ設定ファイルに新しいパラメーターが追加されました: - ProblemBaseOID - 障害トリガーテーブルのOID; - ProblemMinSeverity - 最小の深刻度、それより低い深刻度のトリガーは含まれません; - ProblemHideAck - 指定した場合、未確認の障害があるトリガーのみが含まれます; - ProblemTagFilter - 指定した場合、指定したタグ名を持つトリガーのみが含まれます; - TrapTimer - 設定されている場合、Zabbix は指定された時間内に深刻度が最も高いトラップを1つしか送信しません。
詳細は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 Git repository からダウンロードし、手動でZabbixの設定 → テンプレート セクションにインポートします。 同じ名前のテンプレートが既に存在する場合、インポートする前に、存在しない場合に削除 オプションをチェックし、 クリーンなインポートを実現します。この方法では、更新されたテンプレートから除外された項目が削除されます。 (ただし、削除された項目の履歴は失われます)
テンプレートのリンクがより見やすくなるように、ホスト、ホストプロトタイプ、テンプレート設定フォーム、およびホスト/テンプレート一括更新フォームの最初のタブに配置されました。
その結果、すべてのフォームから、テンプレートリンクのための独立したタブが削除されました。
これに関連して、ホストプロトタイプの設定において、ホストグループ/ホストグループプロトタイプの選択フィールドも、別のタブから最初のタブに移動されました。
Zabbixサーバーとプロキシのランタイムコマンドは、Unixシグナルではなく、ソケット経由で発行されるようになりました。 この変更により、ランタイムコントロールオプションの操作性が向上しました: - コマンド実行の結果がコンソールに表示されるようになりました。 - ノード番号の代わりにHAノード名など、より長い入力パラメータを送信することができます。
ダッシュボードに新しい地理マップウィジェットが導入され、ホストを地理的な地図上に表示できるようになりました。詳しくは地理マップ ダッシュボードウィジェット と地理マップ を参照してください。
最新データセクションにサブフィルターが追加されました。 このサブフィルターは、関連する項目のグループにワンクリックでアクセスするのに便利です。 ワンクリックでアクセスできます。
サブフィルターには、クリックできるリンクが表示され、以下のことが可能です。 共通のエンティティ(ホスト、タグ名、タグの値)に基づいてアイテムをフィルタリングすることができます。 エンティティがクリックされるとすぐに、アイテムがフィルタリングされます。
詳細は、最新データ セクションを参照してください。
監視データ → ホスト → グラフ のグラフページで、いくつかの操作性が改善されました。
詳細は、グラフ ページを参照してください。
監視データ → ホスト から新しいホスト定義を作成することもできるようになりました。
ホスト作成 ボタンは、管理者と特権管理者のユーザーが使用できます。
ホストメニューやホスト設定への直接リンクがある、設定→ホスト、監視データ→ホスト、および任意のページで、ホスト定義の作成と編集のためのフォームがモーダル(ポップアップ)ウィンドウで開かれます。
ホスト編集ページへの直接リンクはまだ機能しており、全画面でホスト編集ページを開きます。
最新データに、アイテムのための新しいコンテキストメニューが導入され、アイテムの構成と利用可能なグラフにアクセスすることができるようになりました。
逆に、ホストのアイテム一覧 の設定メニューに新しいコンテキストメニューが導入され、最新のデータにアクセスすることができるようになりました。
他にも便利なオプションがあります。
このメニューは、以前のバージョンのウィザードオプションを置き換えたものです。 同様のメニューは、テンプレートのアイテム にも導入されています。 アイテムのプロトタイプにも同様のメニューが導入されました。
アクションの実行内容の設定時に、該当するオプションのチェックボックスをオフにすると、キャンセルされたエスカレーションに関する通知をキャンセルすることができるようになりました。
最新データ セクションにいくつかの改良が加えられました:
監視データ メニューの概要 セクションが完全に削除されました。 データの概要とトリガーの概要のダッシュボードウィジェットを使用して、同じ機能にアクセスすることができます。
監査ログ機能の変更を実装するために、既存のデータベース構造を再構築する必要がありました。 アップグレードによって、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つの関数が追加されました。
これらの機能において、「シーズン」という用語は、時間、日、週、月、年単位で設定可能な時間枠を指します。
シーズンの長さと分析するシーズン数は、関数のパラメーターで設定します。
詳しくは、ヒストリ関数を参照してください。