参考文档:
https://blog.csdn.net/guoyinzhao/article/details/81283761
https://cizixs.com/2018/01/24/use-prometheus-and-grafana-to-monitor-linux-machine/
https://www.linuxidc.com/Linux/2018-01/150354.htm ( 比较详细)

1. 实验说明

Prometheus 监控 为 C/S 架构。

实验主机分布如下:

IP 用途 服务
192.168.2.21 server Prometheus,
192.168.2.22 client exporter
192.168.2.23 client Grafana

1.1 准备工作

对所有主机做如下操作

  1. # 关闭selinux
  2. setenforce 0 && sed -i s/SELINUX=enforce/SELINUX=disabled/g /etc/selinux/config
  3. # 关闭防火墙
  4. systemctl stop firewalld && systemctl disable firewalld
  5. # 安装 epel源
  6. yum install -y epel-release
  7. # 安装docker 并启动
  8. yum install -y docker
  9. systemctl start docker && systemctl enable docker

2. 基础环境安装

2.1 server主机上安装 Prometheus

  1. 创建 prometheus配置文件
  1. mkdir /etc/prometheus/
  2. vim /etc/prometheus/prometheus.yml
  3. mkdir /data/prometheus
  4. chmod -R 777 /data/prometheus
  1. global:
  2. scrape_interval: 60s
  3. evaluation_interval: 60s
  4. scrape_configs:
  5. - job_name: prometheus
  6. static_configs:
  7. - targets: ['localhost:9090']
  8. labels:
  9. instance: prometheus
  10. - job_name: linux
  11. static_configs:
  12. - targets: ['192.168.2.21:9100']
  13. labels:
  14. instance: db1
  15. - targets: ['192.168.2.22:9100']
  16. labels:
  17. instance: db1
  18. - job_name: mysql
  19. static_configs:
  20. - targets: ['192.168.2.23:9104']
  21. labels:
  22. instance: db1
  1. 启动docker-prometheus
  1. docker run --name prometheus -it -d \
  2. -p 9090:9090 \
  3. -v /etc/prometheus/:/etc/prometheus/ \
  4. -v /etc/prometheus/rules:/etc/prometheus/rules \
  5. -v /data/prometheus:/prometheus \
  6. --restart=always \
  7. quay.io/prometheus/prometheus \
  8. --config.file=/etc/prometheus/prometheus.yml \ # 可进入docker容器, prometheus --help 查看用法 \
  9. --web.enable-lifecycle # Enable shutdown and reload via HTTP request.

2.2 在client 主机上安装 exporter

这里的 docker-exporter 的网络模式要运行为 host 模式。

在这个模式下,docker 不会为容器创建单独的网络 namespace,而是共享主机的 network namespace,也就是说:容器可以直接访问主机上所有的网络信息。

  1. docker run -d \
  2. -p 9100:9100 \
  3. --restart=always \
  4. --name node-exporter \
  5. -v "/proc:/host/proc" \
  6. -v "/sys:/host/sys" \
  7. -v "/nodefs:/rootfs" \
  8. --net="host" \
  9. quay.io/prometheus/node-exporter:latest \
  10. --collector.filesystem.ignored-mount-points="^/(dev|proc|sys|var/lib/docker)($|/)" # 可进入docker容器, node_exporter --help 查看用法
  11. # docker run -d -p 9100:9100 --name node-exporter quay.io/prometheus/node-exporter:latest

查看所配置的node信息是否上线: http://192.168.2.21:9090/targets

3. 安装运行Grafana

  1. # 创建数据目录
  2. mkdir /data/grafana_db -p
  3. chmod -R 777 /data/grafana_db
  4. # 启动grafana
  5. docker run -d \
  6. -p 3000:3000 \
  7. --name grafana \
  8. -v /data/grafana_db:/var/lib/grafana \
  9. -e "GF_SECURITY_ADMIN_PASSWORD=admin" \
  10. --restart=always \
  11. grafana/grafana:5.1.3
  12. # 默认的帐号/密码为admin/admin
  13. # docker run -d -p 3000:3000 --name grafana grafana/grafana:5.1.3

安装插件:

  1. # 安装饼图插件
  2. grafana-cli plugins install grafana-piechart-panel

3.1 为grafana添加Prometheus数据源。

Prometheus Grafana监控 - 图1

3.2 添加监控模版

上面我们把 Prometheus 的数据导入了 grafana , 接下来,我们添加监控模版,让数据展示出来。

监控模板地址)
下载模版: https://grafana.com/api/dashboards/ ID_NUM /revisions/1/download ( ID_NUM:改为模版的ID号 )

3.2.1 主机监控

  1. 搜索 Prometheus system : 添加主机监控模版

Prometheus Grafana监控 - 图2

Prometheus Grafana监控 - 图3

注意: Grafana 的版本,不然数据可能出不来

  1. 导入模版

Prometheus Grafana监控 - 图4

Prometheus Grafana监控 - 图5