Zabbix ベースの Jenkins プロセス監視の詳細な説明

Zabbix ベースの Jenkins プロセス監視の詳細な説明

1. 監視アーキテクチャ図

2. 実装のアイデア

  • Jenkins に Metrics プラグインをインストールして、Jenkins がメトリック API を公開できるようにします。
  • API からデータを取得し、そのデータを Zabbix が認識できる形式に解析する Python コードを記述します。
  • 監視とアラート用にZabbixサーバーとエージェントを構成する

3. 具体的な構成

1. Jenkins Metricsプラグインをインストールする

プラグインのダウンロードアドレス: http://updates.jenkins-ci.org/download/plugins/metrics/

Metrics プラグインをインストールします。システム構成には、次に示すように追加の「Metrics」構成があります。


設定項目は複雑ではありません。アクセス キーを生成するには、「生成...」をクリックする必要があります (生成後は必ず保存してください)。このキーは、後で使用する本人確認に使用されます。

保存後、ブラウザに URL (http://jenkins.local,me/metrics/<新しく生成されたアクセス キー>) を入力して、Jenkins がメトリックを公開したかどうかを確認します。次の図が表示されたら、次の手順に進むことができます。

1.1 メトリクスプラグインの紹介

Metrics プラグインは、dropwizard/metrics に基づいて実装されています。 /metrics、/ping、/threads、/healthcheck の 4 つのインターフェースを通じてメトリック データを公開します。

1.2 メトリクスプラグイン: /metrics インターフェースの紹介

上記の画像のメトリック リンク (http://jenkins.local.me/metrics/<Access Key>/metrics) をクリックすると、次のメトリック データが表示されます。

{
 バージョン: "4.0.0",
 ゲージ: {...},
 カウンター: {...},
 ヒストグラム: {...},
 メートル: {...},
 タイマー: {...}
}

ゲージ: メトリックの瞬間値。たとえば、現在の Jenkins Executor の合計数 (jenkins.executor.count.value)
カウンター: メトリックの合計値。たとえば、アクティブな http リクエスト接続の数 (http.activeRequests)
メーター: 一定期間内にイベントが発生する確率。たとえば、Jenkins によって 1 分あたりに実行される成功したタスクの数 (jenkins.runs.success.m1_rate)
ヒストグラム: 統計指標の分布。例: Jenkins Executor の数の分布 (jenkins.executor.count.history)
タイマー: メトリックの期間。例: Jenkins タスクの待機時間 (jenkins.job.waiting.duration)

1.3 メトリクスプラグインのその他のインターフェース

/ping: インターフェースは pong を返します。これは、以下に示すように、Jenkins が動作していることを意味します。

/threads: Jenkinsのスレッド情報を返します

/healthcheck: 次のメトリックを返します。

{
 「ディスク容量」: {
  「健康」:真
 },
 「プラグイン」: {
  「健康」:真、
  「メッセージ」: 「失敗したプラグインはありません」
 },
 「一時スペース」: {
  「健康」:真
 },
 「スレッドデッドロック」: {
  「健康」:真
 }
}

Zabbix サーバーは Zabbix エージェントと通信してデータを収集します。 Zabbix エージェントは、パッシブ モードとアクティブ モードの 2 つのモードに分かれています。私たちはパッシブ モードを使用しています。つまり、Zabbix サーバーがエージェントにデータを要求します。
したがって、Zabbix エージェントが配置されているマシンに Jenkins インジケーター データを取得するためのスクリプトを配置する必要があります。次に、エージェントからデータを定期的に取得するように Zabbix サーバーを構成し、最後にアラームを実装するためのトリガーを構成します。

2.1 監視テンプレートを作成し、ホストグループにリンクする


2.2 監視項目の作成

ここで、いくつかのオプションがそのように入力されている理由を説明する必要があります。

  • タイプ: これは、Zabbix サーバーによって収集されるメトリックのタイプです。前述のように、Zabbix エージェントを選択します。
  • キー値: 監視するインジケーターが Zabbix によって事前定義されていないため。したがって、Jenkins インジケーターを監視するには、ユーザー定義のパラメーターが必要です。キーに入力される値は、jenkins.metrics[gauges.jenkins.node.count.value.value]です。 jenkins.metrics は、実行する必要がある実際のキー名です。 []はキーに対応するコマンドに渡されるパラメータです。初心者にとって、Zabbix のこの部分を理解するのは非常に困難です。おそらく、次のように理解する方が簡単でしょう。ユーザー定義のパラメータを使用して監視を実装する場合、Zabbix サーバーはこのキーをエージェントに送信し、エージェントはこのキーに従って指定されたロジックを実行してインジケーター データを取得します。このロジックは通常、スクリプト (シェル コマンドや Python スクリプトなど) です。スクリプトはパラメータを渡すこともでき、[]内の値がスクリプトに渡されるパラメータとなります。
  • 情報タイプ: 監視データのデータ型。この監視項目は Jenkins ノードの数を監視するため、数値の整数が使用されます。
  • 更新間隔: Zabbix サーバーがエージェントからデータを取得する頻度を示します。

この時点で、Zabbix サーバーは構成されました。 「監視」->「最新データ」で最新データがあるかどうかを確認し、ダッシュボードを作成してデータをグラフィカルに表示することができます。他の監視項目も同様に構成できます。

スクリプトコードの監視

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Zabbix を使用して ogg プロセスを監視する (Windows プラットフォーム)
  • 分散監視システムにおけるZabbixのアクティブ、パッシブ、Web監視のプロセスの詳細な説明
  • 分散監視システムZabbixはSNMPとJMXチャネルを使用してデータを収集します
  • Zabbix による SQL Server サービス ステータスの監視の詳細な説明
  • Zabbixを使用してMySQLを監視する方法
  • Zabbix モニタリング 4.4 から 5.0 にアップグレードするための詳細なチュートリアル
  • Zabbixで監視する必要があるホストを追加するための詳細な手順
  • Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード
  • zabbix を使用して ogg プロセスを監視する (Linux プラットフォーム)

<<:  MySQL kill コマンドの使用ガイド

>>:  画像プレビュー付きのアップロードフォームの完全な HTML

推薦する

Javascript を使用して、スライドバー効果のあるスライドナビゲーション プラグインを開発します。

目次1. はじめに2. 使用方法3. 開発プロセス1. モデル例2. イベントとアニメーション4. ...

マウスの尾行効果を実現する JavaScript

マウス効果では、setTimeout を使用して固定時間にノードを生成し、ノードを削除し、生成された...

MLSQL スタックでストリームのデバッグを簡単にする方法

序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...

Xtrabackup を使用して MySQL をバックアップおよび復元する方法

目次1. バックアップ1.1 万全の準備1.2 追加の準備2 バックアップとリカバリ2.1 データの...

Linuxはiftopを使用してネットワークカードのトラフィックをリアルタイムで監視します

Linux は iftop を使用してネットワーク カードのトラフィックをリアルタイムで監視します。...

HTML の marquee 属性の詳細な説明

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...

NodeはMySQLに接続し、追加、削除、変更、チェックのための実装コードをカプセル化します。

目次ノードはMysqlに接続しますMySQLモジュールをインストールするMySQLに接続するよく使わ...

MySQL ユーザー権限管理の実装

1. MySQL の権限の概要MySQL には、権限を制御する 4 つのテーブルがあります。user...

HTML テーブルタグチュートリアル (17): テーブルタイトルの垂直配置属性 VALIGN

表のキャプションは表の上または下に配置でき、プロパティで調整できます。デフォルトのテーブル タイトル...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

HTMLリンクを書くときは、HTTPリクエストを減らすためにサブフォルダに必ずスラッシュを追加してください。

サブフォルダーの末尾にスラッシュがない場合、2 つの HTTP リクエストが生成され、効率に影響しま...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

MySQL トリガー: トリガーの作成と使用

この記事では、例を使用して MySQL トリガーの作成と使用について説明します。ご参考までに、詳細は...

簡潔なReactコンポーネントを書くためのヒント

目次スプレッド演算子を使用してプロパティを渡すのは避けてください関数パラメータをオブジェクトにカプセ...