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 ヘッダー作成例と更新

推薦する

WebページのレイアウトではIE6の互換性の問題を考慮する必要があります

下の図は、当社のウェブサイト統計システムの訪問者詳細におけるブラウザ閲覧率を示しており、IE6 が ...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

Vue で PC アドレスをモバイル アドレスにリダイレクトする方法

要件:PC側とモバイル側は2つの独立したプロジェクトです。2つのプロジェクトの内容は基本的に同じで、...

Nginxを再コンパイルしてモジュールを追加する方法

Nginx をコンパイルしてインストールするときに、http_ssl_module などの一部のモジ...

Centos に MYSQL8.X をインストールするチュートリアル

MySQLのインストール(4、5、6は省略可能)ステートメント: CentOS のバージョンは 7....

Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策

序文docker イメージを削除できません。docker docker imagesを確認すると、イ...

Mysql マスタースレーブ同期 Last_IO_Errno:1236 エラー解決

Mysql マスタースレーブ同期の Last_IO_Errno:1236 エラーの原因は何ですか? ...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

レスポンシブWebデザイン学習(1) - 画面サイズと使用率の決定

最近では、モバイルデバイスがますます普及しており、ユーザーがスマートフォンやタブレットを使用して W...

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

メモリ構成が過剰でMySQLが起動できない問題の解決方法

問題の説明MySQL の起動時にエラーが報告されます。エラー ログを確認してください。 [エラー] ...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...

MySQL IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

Linux sftp コマンドの使用法の概要

sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...