docker-监控环境搭建.md

1.镜像使用(一体化)

1.1.镜像安装

  • 手工配置

    1
    2
    3
    4
    docker stop monitor
    docker rm monitor
    docker run --name monitor --privileged=true -p 9090:9090 -p 3000:3000 -d wuhaocn/monitor:1.0
    docker update monitor --restart=always
  • 自动发现

    1
    2
    3
    4
    5
    docker stop monitor-consul
    docker rm monitor-consul
    docker run --name monitor-consul --privileged=true -p 18500:8500 -p 19090:9090 -p 13000:3000 -d wuhaocn/monitor:2.0
    docker update monitor-consul --restart=always

  • 注册节点信息

    1
    2
    3
    4
    5
    6
    curl -X PUT -d '{"id": "test1","name": "test1","address": "192.168.56.12","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.56.12:9100/","interval": "5s"}]}' http://192.168.56.12:8502/v1/agent/service/register

    curl -X PUT -d '{"id": "test1","name": "test1","address": "192.168.56.12","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.56.12:9100/","interval": "5s"}]}' http://192.168.56.12:8502/v1/agent/service/unregister

    https://www.consul.io/api-docs/agent/service#register-service
    https://www.consul.io/api-docs/agent/service#deregister-service

1.2.容器配置

docker exec -it monitor bash

配置修改地址

  • /usr/local/grafana
    1
    2
    3
    4
    5
    6
    7
    8
    9
    root@f23762ac5af0:/usr/local/grafana/conf# ll
    total 136
    drwxr-xr-x 3 root root 4096 Mar 31 12:35 ./
    drwxr-xr-x 1 root root 4096 Apr 7 02:09 ../
    -rw-r--r-- 1 root root 56590 Mar 31 12:35 defaults.ini
    -rw-r--r-- 1 root root 2270 Mar 31 12:35 ldap.toml
    -rw-r--r-- 1 root root 1045 Mar 31 12:35 ldap_multiple.toml
    drwxr-xr-x 7 root root 4096 Mar 31 12:35 provisioning/
    -rw-r--r-- 1 root root 57840 Mar 31 12:35 sample.ini
  • /usr/local/prometheus
1
2
3
4
5
6
7
8
9
10
11
12
13
root@f23762ac5af0:/usr/local/prometheus# ll
total 197396
drwxr-xr-x 4 root root 4096 Apr 7 02:09 ./
drwxr-xr-x 1 root root 4096 Apr 7 02:16 ../
-rw-r--r-- 1 root root 6148 Apr 7 01:46 .DS_Store
-rw-r--r-- 1 root root 11357 Mar 15 15:30 LICENSE
-rw-r--r-- 1 root root 3773 Mar 15 15:30 NOTICE
drwxr-xr-x 2 root root 4096 Mar 15 15:30 console_libraries/
drwxr-xr-x 2 root root 4096 Mar 15 15:30 consoles/
-rwxr-xr-x 1 root root 105137495 Mar 15 15:21 prometheus*
-rw-r--r-- 1 root root 934 Apr 6 06:11 prometheus.yml
-rwxr-xr-x 1 root root 96946761 Mar 15 15:23 promtool*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
root@9852cf5a3339:/# cat /usr/local/prometheus/prometheus.yml 
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ["localhost:9090"]

- job_name: 'mapplication'
metrics_path: /
static_configs:
- targets: ['192.168.3.41:8901']

1.3 配置生效

修改后重启配置

docker restart monitor

2.镜像使用(拆分)

2.1.安装

  • 默认配置
1
2
3
4
5
6
7
8
9
docker stop prometheus
docker rm prometheus
docker run -d --name=prometheus -p 9090:9090 prom/prometheus
docker update prometheus --restart=always

docker stop grafana
docker rm grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
docker update grafana --restart=always
  • 修改配置
1
2
3
4
docker stop prometheus
docker rm prometheus
docker run -d --name=prometheus -p 9090:9090 -v /home/rcloud/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
docker update prometheus --restart=always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
global:
# 默认情况下,每15s拉取一次目标采样点数据。
scrape_interval: 15s
# 我们可以附加一些指定标签到采样点度量标签列表中, 用于和第三方系统进行通信, 包括:federation, remote storage, Alertmanager
external_labels:
# 下面就是拉取自身服务采样点数据配置
monitor: 'codelab-monitor'
scrape_configs:
# job名称会增加到拉取到的所有采样点上,同时还有一个instance目标服务的host:port标签也会增加到采样点上
- job_name: 'prometheus'
# 覆盖global的采样点,拉取时间间隔5s
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']

2.2 登录配置

  • 登录 http://127.0.0.1:3000
  • 修改密码 默认 admin admin
  • 配置 DataSource 127.0.0.1:9090
  • 添加面板

app(metrics)–data–> (?) + prometheus + grafana