こんにちは。サイオステクノロジー OSS サポート担当 山本 です。
最近は Zabbix や Prometheus™ を使ってみる記事を書いていましたが、なんと Zabbix で Prometheus のデータを扱うことができる、という情報が Zabbix の公式ページで確認することができました。
折角なので、この機能を試してみたいと思います。
■Zabbix 4.2 をインストールする
Zabbix で Prometheus のデータを扱う機能は、Zabbix 4.2 で新規に追加されたものです。
なので、まずは Zabbix 4.2 をインストールします。
Zabbix のインストール手順については過去の投稿で扱っているのと、これまでと大きく変わったところもありませんでしたので、今回は省略させていただきます。
■Prometheus をインストールする
続いて、Prometheus をインストールします。
…と言っても今回必要なのは Metrics のほうなので、Prometheus 本体は必要ありません。
任意の Exporter…例えば、node_exporter あたりを導入します。手順についてはやはり過去の投稿がありますので、そちらを参考に。
■Zabbix で Prometheus のデータを取得する設定をする
Zabbix 4.2 のインストールと node_exporter の起動が終わったら、早速 Zabbix Web インターフェースから設定を行なっていきます。
各要素についての細かい手順は、過去の Zabbix 関連の投稿で扱っていますので、今回は要点のみでざっくりといきます。
・ホスト
ホストについては、node_exporter を起動したホストを登録すればよいでしょう。
・アイテム
「Metrics 全体を取得する https エージェントアイテム」と「対象の Metric を取得する依存アイテム」の組み合わせで設定することが推奨されていますので、その方法で設定していきます。
まず「Metrics 全体を取得する https エージェントアイテム」から。アイテム作成画面で以下の項目を設定します。
名前 : (任意)
タイプ : HTTPエージェント
キー : (任意)
URL : (Metrics の URL)
データ型 : テキスト
ヒストリの保存期間 : 0
タイプ「Zabbixエージェント」では “キー” によって取得内容が決定していましたが、タイプ「HTTPエージェント」では “キー” はアイテムの識別にのみ使用しますので、任意の文字列を入力すれば OK です。
“URL” には Metrics の出力先、例えばローカルで動かした node_exporter なら “https://localhost:9100/metrics” のように設定します。
注意すべき点はヒストリの保存期間です。
Metrics を見たことがある方はご存知かと思いますが、Prometheus の Metrics はなかなかに大量の文字を出力しています。このアイテムでは Metrics 全てを文字列として保存するため、保存期間を長くすると結構な勢いでディスクを消費していくことでしょう。
実際に値を保存するのは次の「依存アイテム」側だけで十分なので、こちらの保存期間は “0” に設定して「依存アイテム」の処理の後にヒストリに保存されずに破棄されるようにしましょう。
なお、ヒストリを保存するように設定すると、node_exporter なら監視間隔の度にこの量のデータが保存されます。
(1回分の取得データです。文字サイズとスクロールバーからどれくらいの量かは想像してください…)
続いて、「対象の Metric を取得する依存アイテム」の設定です。こちらも新規にアイテムを作成していきます。
名前 : (任意)
タイプ : 依存アイテム
キー : (任意)
マスターアイテム : (「Metrics 全体を取得する https エージェントアイテム」の名前)
データ型 : (Metric のデータ形式に合わせて設定)
ヒストリの保存期間 : (データを保存したい期間)
タイプ「依存アイテム」は “マスターアイテム” に設定したアイテムが取得されたとき、そのコピーを作成・保存するアイテムです。”保存期間” や “保存前処理” などは別途適用できるため、何かしらの理由で元データと加工したデータをそれぞれ保存しておきたい場合などに使えます。
これらを設定した後、アイテム設定画面の上部のタブから「保存前処理」のタブに移り、更に設定を追加します。
保存前処理の設定
名前 : Prometheusパターン
パラメータ : (PromQL 形式のクエリ)
注意点として、「パラメータ」に登録する PromQL 形式のクエリは、1つだけデータを返すように設定する必要があります。
複数の Metric を返す設定をすると、以下のようにエラーとなってしまいます。
以上で設定は完了です。設定したとおりの内容が取得できているか、「最新データ」画面で確認してみるとよいでしょう。
■さいごに
今回は、Zabbix4.2 で公式に追加された、Prometheus の Metrics を取得する方法を見てみました。
この機能が追加されたのはポイントリリースである Zabbix4.2 なので、安定版である LTS でこの Prometheus の Metrics を扱う機能を使用できるようになるのは Zabbix5.0 から…リリーススケジュールどおりであれば約1年後 (2020年4月ごろ) ということになるので、しばらくは運用に組み込むのは難しい状態です。また、現時点の機能とは異なる形になる可能性なども考えられます。
しかし、Zabbix と Prometheus を同時に運用しておりどうにかして一本化したいという場合や、Zabbix を既に運用しているが Prometheus なら簡単に取得できるデータを追加で取れるようにしたいと考えている場合など、役に立つケースはあると思いますので、双方の運用を検討されている場合は頭の片隅に置いておくとよいかもしれません。