1. ホーム
  2. docker

企業向けWeChatアラート監視のためのPrometheus+Grafana+AlertmanagerのDockerインストール

2022-02-20 05:12:03

ディレクトリ

I. はじめに

II. Node-exporterのインストール

III. Prometheusのインストール

IV. Cadvisor-exporterのインストール

V. Grafanaのインストール

VI. Alertmanagerのインストール

VII. Blackbox-exporterのインストール

VIII. 注意喚起の効果


I. はじめに

<テーブル ソフトウェア名 紹介文 アクセスアドレス ノードエクスポータ

node-exporterはgo言語で開発され、Linuxシステムからハードウェアおよびシステムメトリクスを収集するために特別に設計されています。

http://192.168.220.76:9100/metrics プロメテウス Prometheusは、SoundCloudが開発したオープンソースの監視・アラートシステムおよび時系列データベース(TSDB)です。

http://192.168.220.76:9090/graph

CADVISOR-Exporter(キャドバイザー・エクスポーター コンテナ情報を収集する。 http://192.168.220.76:8080/containers グラファナ Grafanaは、大規模な測定データを可視化するためのオープンソースプログラムです。 http://192.168.220.76:3000 アラートマネージャー

AlertmanagerはPrometheusに依存しないコンポーネントで、Prometheusのクエリ文に対応し、非常に柔軟なアラートを提供します。

http://192.168.220.76:9093/#/alerts ブラックボックスエキスポータ blackbox_exporterは、http, dns, tcp, icmpの監視データ収集を行うPrometheusの公式エクスポータの一つです。 http://192.168.220.76:9115/prod

画像出典:公式

II. Node-exporterのインストール

 1. node-exporterの起動

docker run -d -p 9100:9100 --name node-exporter\
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  --net="host" \
  prom/node-exporter

2. アクセス方法 :  http://192.168.220.76:9100/metrics

III. Prometheusのインストール

1. 新しいディレクトリprometheusを作成し、設定ファイルprometheus.ymlを編集します。

mkdir /home/prometheus/conf
cd /home/prometheus/conf
vim prometheus.yml

global:
  scrape_interval: 15s 
  evaluation_interval: 15s 
alerting: # Specify alertmanager alerting component address
  alertmanagers:
  - static_configs:
    - targets: [ '192.168.220.76:9093']

rule_files: #Specify alarm rule files
  - "rules.yml"

scrape_configs:
  - job_name: 'nodehost'   
    static_configs:
      - targets: ['192.168.220.76:9100','192.168.220.76:8080']
        labels:
          appname: 'Node1'
  - job_name: 'prometheus'
    static_configs:
      - targets: [ '192.168.220.76:9090']
        labels:
          appname: 'prometheus'
  - job_name: 'prometheus_port_status'
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets: ['192.168.220.76:12345']
        labels:
          instance: 'port_status'
          group: 'tcp'
    relabel_configs: # here for blackbox-exporter configuration
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.220.76:9115


2. rules.yml ファイルを作成する

mkdir /home/prometheus/conf
cd /home/prometheus/conf
vim rules.yml

groups:
- name: example #Define rules groups
  rules:
  - alert: InstanceDown #Define alarm name
    expr: probe_success == 0 #Promql statement that triggers the rule
    for: 30s           
    labels: #Label defines the level and host of the alarm
      name: instance
      severity: Critical
    annotations: 
      summary: " {
{ $labels.appname }}" #Alarm summary, take the name of the appname of the alarm message
      description: " Service stopped running " #Alarm message
      value: "{
{ $value }}%" # Current alarm status value

3. プロメテウスコンテナの作成

docker run -d -p 9090:9090 --name=prometheus \
 -v /home/prometheus/conf/:/etc/prometheus/ \
prom/prometheus 

4. アクセス方法  http://192.168.220.76:9090/graph

5. アクセス方法  http://192.168.220.76:9090/targets

IV. Cadvisor-exporterのインストール

1. Cadvisor-exporterコンテナを起動します。

docker run --volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 --detach=true --name=cadvisor \
--net=host google/cadvisor:latest

2. アクセス方法  http://192.168.220.76:8080/containers/

V. Grafanaのインストール

1. grafana-storageフォルダーを作成し、パーミッションを設定します。


mkdir /home/grafana-storage
chmod 777 -R /home/grafana-storage

2. grafanaコンテナの作成

docker run -d --name grafana\
  -p 3000:3000 \
  -v /home/grafana-storage:/var/lib/grafana \
  grafana/grafana

3. アクセス方法  http://192.168.220.76:3000/   ユーザー名とパスワードはデフォルトでadmin

4. データソースの設定

5. https://grafana.com/grafana/dashboards でテンプレートを検索します。

テンプレートIDを追加し、テンプレートjsonファイルをインポートすると、テンプレートが表示されます

VI. Alertmanagerのインストール

1. alertmanager.yml の作成

vim /home/prometheus/conf/alertmanager.yml

global:
  resolve_timeout: 5m
  wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'
templates:
- '/etc/alertmanager/template/wechat.tmpl'
route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 5m
  receiver: 'wechat'
receivers:
- name: 'wechat'
  wechat_configs:
  - corp_id: <enterprise_id> # here is the enterprise ID of the enterprise wechat
    to_party: '1' # here is the department ID of enterprise wechat
    agent_id: '1000002' #This is the AgentId of the Enterprise Wechat application
    api_secret: <secret> #This is the enterprise Wechat application's secret
    send_resolved: true

vim /home/prometheus/template/wechat.tmpl

{
{ define "wechat.default.message" }}
{
{ range $i, $alert :=.Alerts }}
===alertmanager monitoring alerts===
Alert status: {
{ .Status }}
Alarm level: {
{ $alert.Labels.severity }}
Alert type: {
{ $alert.Labels.alertname }}
Alert application: {
{ $alert.Annotations.summary }}
Faulting host: {
{ $alert.Labels.instance }}
Alert subject: {
{ $alert.Annotations.summary }}
Trigger threshold: {
{ $alert.Annotations.value }}
Alert details: {
{ $alert.Annotations.description }}
Trigger time: {
{ $alert.StartsAt.Format "2021-01-02 15:04:05" }}
===========end ============
{
{ end }}
{
{ end }}


<イグ  2. wechat通知テンプレート wechat.tmpl を作成する。

docker run -d -p 9093:9093 --name alertmanager \
-v /home/prometheus/conf/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
-v /home/prometheus/template:/etc/alertmanager/template \
docker.io/prom/alertmanager:latest

3. スタート

docker run --name blackbox -p 9115:9115 -itd prom/blackbox-exporter

4. Visit http://192.168.220.76:9093/#/alerts

VII. Blackbox-exporterのインストール

 1. blackbox-exporterを起動します。

docker run --name blackbox -p 9115:9115 -itd prom/blackbox-exporter

2. 説明

blackbox-exporterはicmp, tcp, http, postの状態を監視しています。

probe_success メトリクスは、icmp, tcp, http, post の監視が正常かどうかを判断するものです。値1が正常、0が異常です。

3. Visit http://192.168.220.76:9115/prod

VIII. 注意喚起の効果

1. 企業向けWeChatは、以下のようなアラートを受信します。 

* 1.企業向けWeChatでビジネスを作成するか、直接アプリを作成する必要があります。

* 2. ファイルの保存場所に注意してください、すでにコンテナファイルの場所にある

* 3.上記、IPアドレスの置き換えに注意