概要 Prometheus は、HTTP プロトコルを介してリモート マシンからデータを収集し、ローカルの時系列データベースに保存するオープン ソースのサービス監視システムです。シンプルな Web インターフェイス、強力なクエリ言語、HTTP インターフェイスなどを提供します。 Prometheus は、リモート マシンにインストールされたエクスポーターを介して監視データを収集します。ここでは、次の 2 つのエクスポーターが使用されます。
Grafana は、時系列データの視覚化によく使用される、オープンソースで機能豊富なデータ視覚化プラットフォームです。次のデータ ソースのサポートが組み込まれています。 サポートされるデータ ソースはプラグインを通じて拡張できます。 アーキテクチャ図 以下はこの展開のアーキテクチャ図です。 Prometheusをインストールして実行する 1. モニターにPrometheusをインストールする /opt/prometheusにインストールする https://github.com/prometheus/prometheus/releases/download/v1.5.2/prometheus-1.5.2.linux-amd64.tar.gz をダウンロードしてください $ tar zxvf prometheus-1.5.2.linux-amd64.tar.gz $ mv prometheus-1.5.2.linux-amd64 /opt/prometheus 2. インストールディレクトリにある設定ファイルprometheus.ymlを編集します。 vim /opt/prometheus/prometheus.yml # 私のグローバル設定 グローバル: scrape_interval: 15s # スクレイプ間隔を 15 秒ごとに設定します。デフォルトは 1 分ごとです。 evaluation_interval: 15s # 15 秒ごとにルールを評価します。デフォルトは 1 分ごとです。 # scrape_timeout はグローバルデフォルト (10 秒) に設定されています。 # 通信時に、これらのラベルを任意の時系列またはアラートに添付します。 # 外部システム (フェデレーション、リモート ストレージ、Alertmanager)。 外部ラベル: モニター: 'codelab-monitor' # ルールを一度読み込み、グローバル 'evaluation_interval' に従って定期的に評価します。 ルールファイル: # - "最初のルール" # - "second.rules" # スクレイピングするエンドポイントを 1 つだけ含むスクレイピング設定: # ここでは Prometheus そのもの。 scrape_configs: # ジョブ名は、この設定から取得されたすべての時系列にラベル `job=<job_name>` として追加されます。 - ジョブ名: 'プロメテウス' # metrics_path のデフォルトは '/metrics' です # スキームのデフォルトは 'http' です。 静的設定: - ターゲット: ['localhost:9090'] # 以下は追加された部分です - job_name: linux 静的設定: - ターゲット: ['172.30.251.214:9100'] ラベル: インスタンス: db1 - ジョブ名: mysql 静的設定: - ターゲット: ['172.30.251.214:9104'] ラベル: インスタンス: db1 そのうち、172.30.251.214 は MySQL の IP アドレスであり、ポートはエクスポータの対応するリスニング ポートです。 3. Prometheusを起動する [loya@centos6 プロメテウス]$ ./プロメテウス INFO[0000] Prometheusを起動しています (バージョン=1.5.2、ブランチ=master、リビジョン=bd1182d29f462c39544f94cc822830e1c64cf55b) ソース=main.go:75 INFO[0000] ビルドコンテキスト (go=go1.7.5、user=root@a8af9200f95d、date=20170210-14:41:22) source=main.go:76 INFO[0000] 設定ファイル prometheus.yml を読み込んでいます source=main.go:248 INFO[0000] シリーズマップとヘッドチャンクを読み込んでいます... source=storage.go:373 INFO[0000] 0 シリーズがロードされました。ソース = storage.go:378 INFO[0000] ターゲット マネージャーを起動しています... source=targetmanager.go:61 INFO[0000] :9090でリッスンしています ソース=web.go:259 Prometheus には、http://monitor_host:9090 からアクセスできる組み込みの Web インターフェースがあります。 [ステータス] -> [ターゲット] ページには、構成した 2 つのターゲットが表示され、そのステータスは [ダウン] になっています。 4. 次に、監視対象マシンにエクスポーターをインストールして実行する必要があります。 エクスポーターをダウンロードして解凍します: $ mkdir /opt/prometheus/prometheus_exporters $ cd /opt/prometheus/prometheus_exporters $ wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0-rc.1/node_exporter-0.14.0-rc.1.linux-amd64.tar.gz https://github.com/prometheus/mysqld_exporter/releases/download/v0.9.0/mysqld_exporter-0.9.0.linux-amd64.tar.gz をダウンロードしてください $ tar zxvf node_exporter-0.14.0-rc.1.linux-amd64.tar.gz $ tar zxvf mysqld_exporter-0.9.0.linux-amd64.tar.gz # それぞれの実行ファイルを /opt/prometheus/prometheus_exporters に移動します $ ll /opt/prometheus/prometheus_exporters 合計 24464 -rwxr-xr-x 1 ルート ルート 12182376 2月23日 19:01 mysqld_exporter -rwxr-xr-x 1 ルート ルート 12862209 2月23日 19:01 node_exporter node_exporterを実行する $ cd /opt/prometheus/prometheus_exporters $ ./node_exporter INFO[0000] node_exporter を起動しています (バージョン=0.14.0-rc.1、ブランチ=master、リビジョン=5a07f4173d97fa0dd307db5bd3c2e6da26a4b16e) ソース="node_exporter.go:136" INFO[0000] ビルドコンテキスト (go=go1.7.4、user=root@ed143c8f2fcd、date=20170116-16:00:03) source="node_exporter.go:137" INFO[0000] ディレクトリが指定されていません。--collector.textfile.directory source="textfile.go:57" を参照してください。 INFO[0000] 有効なコレクター: source="node_exporter.go:156" INFO[0000] - エントロピーソース="node_exporter.go:158" 情報[0000] - loadavg ソース="node_exporter.go:158" 情報[0000] - 統計ソース="node_exporter.go:158" 情報[0000] - ディスク統計ソース="node_exporter.go:158" INFO[0000] - テキストファイルソース="node_exporter.go:158" 情報[0000] - vmstat ソース="node_exporter.go:158" INFO[0000] - meminfo ソース="node_exporter.go:158" INFO[0000] - ファイルfdソース="node_exporter.go:158" INFO[0000] - ファイルシステムソース="node_exporter.go:158" 情報[0000] - mdadm ソース="node_exporter.go:158" 情報[0000] - netdevソース="node_exporter.go:158" 情報[0000] - sockstat ソース="node_exporter.go:158" INFO[0000] - 時間ソース="node_exporter.go:158" 情報[0000] - zfsソース="node_exporter.go:158" 情報[0000] - edac ソース="node_exporter.go:158" 情報[0000] - hwmonソース="node_exporter.go:158" 情報[0000] - netstatソース="node_exporter.go:158" 情報[0000] - uname ソース="node_exporter.go:158" 情報[0000] - conntrackソース="node_exporter.go:158" INFO[0000] :9100でリッスンしています source="node_exporter.go:176" mysqld_exporter は MySQL に接続する必要があるため、MySQL 権限が必要です。そのためのユーザーを作成し、必要な権限を付与します。 mysql> 'abc123' によって識別される 'prom'@'localhost' に、*.* のレプリケーション クライアント、プロセスを許可します。 mysql> performance_schema.* に対して 'prom'@'localhost' の SELECT 権限を付与します。 .my.cnf ファイルを作成し、mysqld_exporter を実行します。 $ cd /opt/prometheus/prometheus_exporters $ $ cat << EOF > .my.cnf [クライアント] ユーザー=プロム パスワード=abc123 終了 $ $ ./mysqld_exporter -config.my-cnf=".my.cnf" INFO[0000] mysqld_exporter を起動しています (バージョン=0.9.0、ブランチ=master、リビジョン=8400af20ccdbf6b5e0faa2c925c56c48cd78d70b) ソース=mysqld_exporter.go:432 INFO[0000] ビルドコンテキスト (go=go1.6.3、user=root@2c131c66ca20、date=20160926-18:28:09) source=mysqld_exporter.go:433 INFO[0000] :9104 でリッスンしています ソース=mysqld_exporter.go:451 Prometheus Web インターフェースの Status->Targets に戻ると、2 つのターゲットのステータスが UP になっていることがわかります。 Grafanaをインストールして実行する インストール: Grafana のインストールに関する公式ドキュメントは非常に明確なので、ここでは詳細には触れません。 構成: 設定ファイル /etc/grafana/grafana.ini を編集し、dashboards.json セクションの 2 つのパラメータの値を変更します。 [ダッシュボード] 有効 = true パス = /var/lib/grafana/dashboards Prometheus ダッシュボードをインポートします。 $ git クローン https://github.com/percona/grafana-dashboards.git $ cp -r grafana-dashboards/ダッシュボード /var/lib/grafana 起動する: $ /etc/init.d/grafana-serverを起動します http://monitor_host:3000 経由で Grafana Web インターフェースにアクセスします (デフォルトのユーザー名/パスワードは admin/admin です) ログイン後、「データ ソース」ページからデータ ソースを追加します。 次に、さまざまなダッシュボード (左上) と期間 (右上) を選択してグラフをレンダリングできます。 システム概要: MySQL の概要: 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
>>: Linux で ping は成功するがポートが利用できない問題を解決する方法
CentOS 8 がリリースされてから随分経ちました。Linux 仮想マシンをいじっている人間として...
1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...
目次序文1. 環境設定1.1 achartsをインストールする1.2 グローバル参照2. ドーナツチ...
文法規則 列名を選択 テーブル名1から INNER JOIN テーブル名2 ON テーブル名1.列名...
序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...
プロジェクトでは、フォーム テストが頻繁に発生します。単一のフォーム テストについては、詳細な紹介が...
1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...
次の2つのファイルを結合するには、それらを結合して1.txtに結合します。 # 1.txt ジェリー...
webpack-dev-server コアコンセプトWebpack の ContentBase と ...
この記事は主に、みんなで共有できるVue3ベースのフルスクリーンドラッグアップロードコンポーネントを...
序文:金額の保存など、小数点数を保存し、精度要件がある場合、通常は DECIMAL フィールド タイ...
Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...
前回の記事「Zen Coding: HTML/CSS コードを素早く記述する方法」を公開した後、一部...
HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...
ページめくりの問題のシナリオBとCは同じページ(表と裏)にありますページをめくって A をカバーした...