文章目录

  • docker安装Prometheus
  • 1、介绍
  • 2、安装
  • 2.1、下载镜像包
  • 2.2、启动node-exporter
  • 2.3、启动mysqld-exporter
  • 2.4、启动cadvisor
  • 2.5、启动prometheus
  • 2.6、启动grafana
  • 3、导入模板
  • 3.1、docker模板
  • 3.2、springboot模板
  • 3.3、主机监控
  • 3.4、mysql模板
  • 4、附录
  • 4.1、springboot 集成prometheus
  • 4.2、引入依赖
  • 4.3、配置文件


docker安装Prometheus

1、介绍

Node Exporter :收集服务器硬件和操作系统信息
mysqld-exporter:收集mysql使用情况数据信息
cAdvisor:负责收集服务器运行的docker容器信息
Prometheus Server:普罗米修斯监控的服务器
Grafana:用于展示普罗米修斯监控的图形化界面

备注:所有步骤截图未被成功显示,如需带有截图的文档,可私信

2、安装

2.1、下载镜像包

docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull google/cadvisor
docker pull prom/prometheus
docker pull grafana/grafana

2.2、启动node-exporter

二进制包安装(官方推荐):

wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
tar -zxvf node_exporter-0.17.0.linux-amd64.tar.gz
mv node_exporter-0.17.0.linux-amd64 /usr/local/node_exporter
chmod 777 node_exporter
nohup /usr/local/node_exporter/node_exporter &

docker安装:

docker run -d -p 19100:9100 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /:/rootfs:ro \
  prom/node-exporter

访问url:
http://127.0.0.1:19100/metricsdocker普罗米修斯 docker部署普罗米修斯_prom

这些都是收集到的数据,用于做宿主机Linux数据展示

2.3、启动mysqld-exporter

启动mysqld-exporter:

docker run -d --name mysqld_exporter -p 19104:9104 -e DATA_SOURCE_NAME="root:qaz123$%^@(127.0.0.1:13306)/" prom/mysqld-exporter

访问url:
http://127.0.0.1:19104/metricsdocker普罗米修斯 docker部署普罗米修斯_java_02

收集到得数据,用于做MySQL数据库数据展示

2.4、启动cadvisor

启动cadvisor:

docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 18080:8080 -d --name=cadvisor --restart=always google/cadvisor:latest

访问url:
http://127.0.0.1:18080/metricsdocker普罗米修斯 docker部署普罗米修斯_java_03

这些收集到的数据,用于做Docker容器数据展示

2.5、启动prometheus

新建prometheus目录,并编辑prometheus.yml文件

mkdir /usr/local/prometheus/data
cd /usr/local/prometheus/data
vim prometheus.yml

配置如下内容:

global:
  scrape_interval:     60s
  evaluation_interval: 60s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: [127.0.0.1:19090']
        labels:
          instance: prometheus

  - job_name: node
    static_configs:
      - targets: ['127.0.0.1:19100']
        labels:
          instance: node

  - job_name: cadvisor
    static_configs:
      - targets: ['127.0.0.1:18080']
        labels:
          instance: cadvisor

  - job_name: mysqld
    static_configs:
      - targets: ['127.0.0.1:19104']
        labels:
          instance: mysqld

  - job_name: gateway
    metrics_path: '/actuator/gateway/prometheus'
    static_configs:
      - targets: ['127.0.0.1:80']
        labels:
          instance: gateway

启动prometheus:

sudo docker run -d -p 19090:9090 --name prom -v /usr/local/prometheus/data:/data  prom/prometheus --config.file=/data/prometheus.yml

访问url:
http://127.0.0.1:19090/docker普罗米修斯 docker部署普罗米修斯_java_04

访问targets,入口如下:

docker普罗米修斯 docker部署普罗米修斯_linux_05


docker普罗米修斯 docker部署普罗米修斯_java_06

2.6、启动grafana

创建文件夹并设置权限:

mkdir /usr/local/grafana-storage
chmod 777 -R /usr/local/grafana-storage

启动grafana:

docker run -d \
  -p 13000:3000 \
  --name=grafana \
  -v /usr/local/grafana-storage:/var/lib/grafana \
  grafana/grafana

查看端口状态:

netstat -anpt

docker普罗米修斯 docker部署普罗米修斯_docker_07

访问url:
http://127.0.0.1:13000/ 账号:admin/admin
跳转到登录页面后,默认的用户名和密码都是admin,第一次登陆可重置密码后进去首页

设置data source:

docker普罗米修斯 docker部署普罗米修斯_docker普罗米修斯_08


docker普罗米修斯 docker部署普罗米修斯_prom_09


docker普罗米修斯 docker部署普罗米修斯_java_10


点击Save & Test按钮,出现绿色提示,说明配置成功

docker普罗米修斯 docker部署普罗米修斯_prom_11

3、导入模板

3.1、docker模板

搜索导入193模板

docker普罗米修斯 docker部署普罗米修斯_prom_12


docker普罗米修斯 docker部署普罗米修斯_prom_13

3.2、springboot模板

搜索导入4701/6756模板

docker普罗米修斯 docker部署普罗米修斯_java_14


docker普罗米修斯 docker部署普罗米修斯_docker普罗米修斯_15


docker普罗米修斯 docker部署普罗米修斯_prom_16

3.3、主机监控

搜索导入9276/8919模板

docker普罗米修斯 docker部署普罗米修斯_prom_17


docker普罗米修斯 docker部署普罗米修斯_linux_18


docker普罗米修斯 docker部署普罗米修斯_linux_19

docker普罗米修斯 docker部署普罗米修斯_prom_20

3.4、mysql模板

搜索导入7362模板

docker普罗米修斯 docker部署普罗米修斯_java_21


docker普罗米修斯 docker部署普罗米修斯_docker普罗米修斯_22

4、附录

4.1、springboot 集成prometheus

4.2、引入依赖

在spring boot工程中引入actuator以及micrometer-registry-prometheus的依赖

<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
		<groupId>io.micrometer</groupId>
		<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

4.3、配置文件

暴露prometheus的接口,暴露metrics.tags,和spring.application.name一致

management:
  endpoints:
    web:
      exposure:
        include: 'prometheus'
      base-path: /actuator/${spring.application.name}/
  metrics:
    tags:
      application: ${spring.application.name}