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

推薦する

HTML で入力ボックスに純粋な数字のみを入力するように制限する方法

inputボックスを純粋な数字のみに制限する1、onkeyup = "value=valu...

CSS3 で画像ドロワー効果を実装するためのサンプル コード

いつものように、まずは画像効果を投稿しましょう: このエフェクトの原理は非常にシンプルです。CSS3...

Window.nameはクロスドメインデータ転送の問題を解決します

<br />原文: http://research.microsoft.com/~hel...

モバイルデバイス上の 1px 境界線を解決する最善の方法 (推奨)

モバイル デバイス向けに開発する場合、Retina 画面上で要素の境界線が太くなるという問題に遭遇す...

MySql インデックス使用戦略の分析

MySql インデックスインデックスの利点1. 一意のインデックスまたは主キー インデックスを作成す...

sbinディレクトリを生成せずにNginxをインストールするソリューション

エラーの説明: 1. Linux (CentOS 7 64) システムに Nginx (1.18.0...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

Vue+js 矢印をクリックして画像を切り替える

この記事の例では、矢印をクリックして画像を切り替えるVue + jsの具体的なコードを共有しています...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

ウェブページ作成のヒントのまとめ

序文この記事は主に、日常の Web ページ制作で遭遇する問題解決スキルの一部をまとめ、皆さんの参考と...

タブ効果を実現する js 開発プラグイン

この記事の例では、タブ効果を実現するためのjsプラグインの具体的なコードを参考までに共有しています。...

XHTML の一般的なタグ

XHTML タグとは何ですか? XHTML タグ要素は、XHTML ドキュメントの基本的なコンポーネ...

Viteは仮想ファイルの実装を導入します

目次背景仮想ファイルのインポート例書類タイプスクリプトのサポート要約する背景新しいプロジェクトで v...