dockerを使用してGrafana+Prometheus構成をデプロイする

dockerを使用してGrafana+Prometheus構成をデプロイする

docker-compose-monitor.yml

バージョン: '2'

ネットワーク:
  モニター:
    ドライバー: ブリッジ

サービス:
  インフルエンスDB:
    画像: influxdb:latest
    コンテナ名: tig-influxdb
    ポート:
      - 「18083:8083」
      - 「18086:8086」
      - 「18090:8090」
    環境変数:
      - 'env.influxdb'
    ボリューム:
      # データの永続性
      # sudo mkdir -p ./influxdb/data
      - ./influxdb/データ:/var/lib/influxdb
      # docker の時間を東部標準時ゾーン 8 に設定します - ./timezone:/etc/timezone:ro
      - ./localtime:/etc/localtime:ro
    restart: until-stopped #停止後にtelegrafを自動的に再起動します:
    画像: telegraf:latest
    コンテナ名: tig-telegraf
    リンク:
      - インフルクスDB
    ボリューム:
      - ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
      - ./タイムゾーン:/etc/タイムゾーン:ro
      - ./localtime:/etc/localtime:ro
    再起動: 停止しない限り
  プロメテウス:
    画像: プロム/プロメテウス
    コンテナ名: プロメテウス
    ホスト名: プロメテウス
    再起動: 常に
    ボリューム:
      : /home/qa/docker/grafana/prometheus.yml:/etc/prometheus/prometheus.yml
      - /home/qa/docker/grafana/node_down.yml:/etc/prometheus/node_down.yml
    ポート:
      - '9090:9090'
    ネットワーク:
      - モニター

  アラートマネージャー:
    画像: prom/alertmanager
    コンテナ名: アラートマネージャ
    ホスト名: alertmanager
    再起動: 常に
    ボリューム:
      : := ...
    ポート:
      - '9093:9093'
    ネットワーク:
      - モニター

  グラファナ:
    イメージ: grafana/grafana:6.7.4
    コンテナ名: grafana
    ホスト名: grafana
    再起動: 常に
    ポート:
      - '13000:3000'
    ネットワーク:
      - モニター

  ノードエクスポーター:
    イメージ: quay.io/prometheus/node-exporter
    コンテナ名: ノードエクスポーター
    ホスト名: node-exporter
    再起動: 常に
    ポート:
      - '9100:9100'
    ネットワーク:
      - モニター

  キャドアドバイザー:
    画像: google/cadvisor:latest
    コンテナ名: cadvisor
    ホスト名: cadvisor
    再起動: 常に
    ボリューム:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    ポート:
      - '18080:8080'
    ネットワーク:
      - モニター

アラートマネージャ.yml

グローバル:
  解決タイムアウト: 5分
  smtp_from: 'メール'
  smtp_smarthost: 'smtp.exmail.qq.com:25'
  smtp_auth_username: 'メール'
  smtp_auth_password: 'パスワード'
  smtp_require_tls: 偽
  smtp_hello: 'qq.com'
ルート:
  group_by: ['アラート名']
  グループ待機: 5秒
  グループ間隔: 5秒
  繰り返し間隔: 5分
  受信者: 'メール'
受信者:
- 名前: 'メール'
  メール設定:
  - 宛先: 'メールアドレス'
    送信解決: true
禁止ルール:
  - ソースマッチ:
      深刻度: 「重大」
    ターゲットマッチ:
      重大度: '警告'
    等しい: ['alertname', 'dev', 'instance']

プロメテウス

グローバル:
  scrape_interval: 15s # スクレイプ間隔を 15 秒ごとに設定します。デフォルトは 1 分ごとです。
  evaluation_interval: 15s # 15 秒ごとにルールを評価します。デフォルトは 1 分ごとです。
  # scrape_timeout はグローバルデフォルト (10 秒) に設定されています。

# アラートマネージャの設定
警告:
  アラートマネージャー:
  - 静的設定:
    - ターゲット: ['192.168.32.117:9093']
      # - アラートマネージャー:9093

# ルールを一度読み込み、グローバル 'evaluation_interval' に従って定期的に評価します。
ルールファイル:
  - 「node_down.yml」
  # - "ノードエクスポーターアラートルール.yml"
  # - "first_rules.yml"
  # - "second_rules.yml"

# スクレイピングするエンドポイントを 1 つだけ含むスクレイピング設定:
# ここでは Prometheus そのもの。
scrape_configs:
  #IO ストレージ ノード グループ - job_name: 'io'
    スクレイプ間隔: 8秒
    static_configs: #ポートは、ノード エクスポーターが起動されるポートです - ターゲット: ['192.168.32.117:9100']
      - ターゲット: ['192.168.32.196:9100']
      - ターゲット: ['192.168.32.136:9100']
      - ターゲット: ['192.168.32.193:9100']
      - ターゲット: ['192.168.32.153:9100']
      - ターゲット: ['192.168.32.185:9100']
      - ターゲット: ['192.168.32.190:19100']
      - ターゲット: ['192.168.32.192:9100']

  # ジョブ名は、この設定から取得されたすべての時系列にラベル `job=<job_name>` として追加されます。
  - ジョブ名: 'cadvisor'
    static_configs: #ポートはcadvisorによって開始されたポートです - ターゲット: ['192.168.32.117:18080']
      - ターゲット: ['192.168.32.193:8080']
      - ターゲット: ['192.168.32.153:8080']
      - ターゲット: ['192.168.32.185:8080']
      - ターゲット: ['192.168.32.190:18080']
      - ターゲット: ['192.168.32.192:18080']

ノードダウン

グループ:
  - 名前: node_down
    ルール:
      - 警告: インスタンスダウン
        式: 上 == 0
        1mの場合
        ラベル:
          ユーザー: テスト
        注釈:
          概要: 'インスタンス {{ $labels.instance }} がダウンしています'
          説明: 'ジョブ {{ $labels.job }} の {{ $labels.instance }} が 1 分以上ダウンしています。'

        #メモリ残量が10%未満です
      - 警告: メモリ残量が 10% 未満です
        式: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
        2mの場合
        ラベル:
          重大度: 警告
        注釈:
          概要: ホストのメモリ不足 (インスタンス {{ $labels.instance }})
          説明: "ノード メモリがいっぱいになっています (残り 10% 未満)\n 値 = {{ $value }}\n ラベル = {{ $labels }}"

        #ディスク残量が10%未満です
      - 警告: 残りのディスク容量が 10% 未満です。
        式: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 かつ ON (インスタンス、デバイス、マウントポイント) node_filesystem_readonly == 0
        2mの場合
        ラベル:
          重大度: 警告
        注釈:
          概要: ホストのディスク容量が不足しています (インスタンス {{ $labels.instance }})
          説明: "ディスクがほぼいっぱいです (残り 10% 未満)\n 値 = {{ $value }}\n ラベル = {{ $labels }}"

        #CPU負荷 > 80%
      - 警告: CPU 負荷 > 80%
        式: 100 - (平均(インスタンス) (レート(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80
        0分
        ラベル:
          重大度: 警告
        注釈:
          概要: ホストの CPU 負荷が高い (インスタンス {{ $labels.instance }})
          説明: "CPU 負荷は 80% を超えています\n 値 = {{ $value }}\n ラベル = {{ $labels }}"

アラート: https://awesome-prometheus-alerts.grep.to/rules#prometheus-self-monitoring

公式ダッシュボード: https://grafana.com/grafana/dashboards/

これで、Grafana+Prometheus 構成の Docker デプロイメントに関するこの記事は終了です。Grafana+Prometheus の Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • Grafanaのインストールと使用に関する詳細なチュートリアル
  • Grafana を使用して Docker コンテナの監視チャートを表示し、電子メールアラートルールを設定する (図)
  • Prometheus+Grafana を使用した Springboot アプリケーションの監視に関するチュートリアルの詳細な説明
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • docker ベースで Prometheus+Grafana を構築する手順の詳細説明
  • Influx+Grafana のカスタム Python データ収集の概要といくつかの落とし穴
  • SpringBoot+Prometheus+Grafanaでアプリケーション監視とアラームを実装するための詳細な手順
  • Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法
  • Prometheus+Grafanaによるnginxの監視方法を分析する
  • PrometheusはGrafanaディスプレイを使用してMySQLを監視します
  • Ubuntu で Grafana を使用して Docker を監視する方法
  • Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築に関する詳細なチュートリアル
  • Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル
  • ELKとGrafanaが共同でnginxログを分析するための視覚的なモニタリングを開発
  • Grafana のパスワードを忘れても大丈夫です。Grafana の管理者パスワードをリセットする 2 つの方法

<<:  JSONObject の使用方法の詳細な説明

>>:  HTML5+CSS3 ヘッダー作成例と更新

推薦する

HTML/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

Reactは感情を使ってCSSコードを書く

目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...

MySQLのスペースをクリーンアップするいくつかの具体的な方法

目次序文1. ファイルのディスク使用量を確認する1.1 ディスク容量の使用状況を確認する1.2 ディ...

MySQL のテーブルリターンとインデックスカバレッジの例の詳細な説明

目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...

個人的な意見: デザインについて語る

<br />最も実用的なものを選んで話しましょう。まず、勤務先の都市を慎重に選ぶ必要があ...

相対幅と絶対幅が競合する場合の HTML+CSS div ソリューション

相対幅と絶対幅が競合する場合のdivソリューション概要: 一般的に、絶対幅を使用する場合は px を...

vue3 でブロック崩しゲームを開発する方法をステップバイステップで教えます

序文vue3 を使った例をいくつか書いてみましたが、Vue3 のコンポジション API はよく設計さ...

...

ElementUIはel-formフォームリセット機能ボタンを実装します

目次ビジネスシナリオ:効果のデモンストレーション:ビジネスシナリオ: el-form を使用する場合...

フロントエンドブラウザのフォントサイズが12px未満のソリューション

序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ...

Apache Flink の任意の Jar パッケージのアップロードにより、リモート コード実行の脆弱性が再発する問題が発生する (脆弱性警告)

脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...

格納可能なセカンダリメニューを実装するための JavaScript

JavaScriptで格納可能なセカンダリメニューを実装するための具体的なコードは参考までに。具体...

ユーザーのニーズがマーケティング指向のデザインにつながる

<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...

node.jsのインストールとHbuilderXの設定の詳細な説明

npm インストールチュートリアル: 1. Node.jsインストールパッケージをダウンロードする公...