0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HTTP agentを使用したりしてMQTT Broker(EMQX Enterprise)をZabbixで監視する

Posted at

はじめに

  • MQTT Broker(EMQX Enterprise)でZabbixを設定した内容をまとめたいと思います。
  • パフォーマンスチェックはAPIの値を取得するのでZabbix agentではなくHTTP agentを使用します。

※追記
procの引数を検索するがてら、Zabbixのソースをのぞいて検索してみたところ、
agent2でMQTTの監視をするプラグインがあったのでそっちを使った方がいいのかも。

やりたいこと

  1. パフォーマンスチェック:API経由でメトリクスを取得する。
  2. 死活監視:APIチェックとプロセスチェック+トリガー検知の作成。

1.パフォーマンスチェック

  • ドキュメント通りに以下のAPIを使用する。
https://{URL}/api/v5/metrics
  • MQTT Broker(EMQX Enterprise)側でAPIKeyとSecretKeyを発行する。
    • これらを使用してPostman等で値が取れるか確認する。

後に結果で返ってきたJSONオブジェクトを整形したり、原因の切り分けができるので推奨とします。

イメージ図
スクリーンショット 2025-02-03 13.19.39.png

Zabbix Item作成

  • 監視のキモとなるItemを作成します。
  • またテンプレート化してマクロに環境変数を入れて管理します。(APIキー、URLなど)

設定内容

Item

  • 使用するTypeはHTTP agentです。
  • Keyは任意で何でも良いのですが、後にダッシュボードで使用するため分かりやすい名前を使用します。
  • URLHeadersに後にテンプレートマクロで記載する環境変数用の枠を入れます。

※初回はトークンとURLを直接入れて原因の切り分けをしてもいいかもしれません。

スクリーンショット 2025-02-03 13.26.55.png

Preprocessing

  • 取得した値を整形するためにPreprocessingタブで整形します
  • JSONPathを指定しParametersに区切り文字を入れます。

個人的にこの区切り文字でちょっと詰まりましたが、隣にTestタブがあるのですぐ結果が分かります。

スクリーンショット 2025-02-03 13.16.53.png

  • 全て設定し終わったらItemをテストします。
    • ResultがValueの値と一致していればOKです。

スクリーンショット 2025-02-03 13.43.40.png

2.死活監視(プロセスチェック)

  • 今回はZabbix agentを使用しproc.numを使用します。

  • 監視対象のプロセスをpsコマンド等で特定する。
ps -aux | grep emqx

Zabbix Item作成

  • TypeにZabbix agentを選択

実施するインスタンスにagentを入れる&Zabbixサーバーへの疎通設定が必要です。
今回は割愛します。

  • Keyにはproc.num[emqx]を入れます。

ドキュメントを見る限り
proc.num[,,,,]のフォーマットに沿うと
proc.num[emqx,,,,]の方が正しいと思います。

proc.numを定義しているところでコード検索したのですが、引数なしの箇所が見つからなかったです。(こちらは自分の力不足)

スクリーンショット 2025-02-03 16.16.09.png

  • 設定後値が取れているか確認する。(1が正常、0が停止状態)

Triggers設定

  • lastを使用。
    • 1の時は稼働していて0の時はアラートを出すように条件式を設定をする。

スクリーンショット 2025-02-17 18.40.43.png

  • systemctl等で停止したりしてテストする。

ダッシュボード設定

  • Add widgetから設定、TypeはItem valueを選択
  • Itemに先ほど指定したキー(proc.num[emqx])があるのでそちらを選択する。

スクリーンショット 2025-02-17 18.53.36.png

  • Advanced configurationにチェックを入れDescriptionにStatus等を入れる。
    • LTS 7.0ならハニカムウェジェットの方がいいかも。

スクリーンショット 2025-02-17 18.53.17.png

参考

EMQX Enterprise APIドキュメント
https://docs.emqx.com/en/emqx/v5.7/admin/api-docs.html#tag/Status/paths/~1status/get

最後に

  • 今回はHTTPエージェントを使用したAPI経由でのメトリクスを取得することができました。
  • ただAPIキーの管理が大変なのでできるならばHTTPエージェントを使用せずに実装したいところですが、ここは要勉強ですね。
  • またトリガー検知の部分はまだまだ最適化できそうなので学んでいきたいところですね。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?