参考https://blog.csdn.net/qq_39093474/article/details/135890643
1 安装docker
https://blog.csdn.net/weixin_66205602/article/details/140019700?spm=1001.2014.3001.5502
查看版本
docker --version
2 下载镜像包
docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull prom/prometheus
docker pull grafana/grafana
3 容器启动
启动node-exporter
docker run -d --name node-exporter \
--restart=always -p 9100:9100 \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /:/rootfs:ro prom/node-exporter
查看访问
http://192.168.1.75.10:9100/metrics
启动mysqld-exporter
docker run -d --name mysqld_exporter \
--restart=always -p 9104:9104 \
-e DATA_SOURCE_NAME="root:Password123@(172.17.0.2:3306)/" \
prom/mysqld-exporter
IP改为被监控的数据库IP,用户名、密码如实填写
查看访问
http://192.168.1.75.10:9104/metrics
启动prometheus
新建目录prometheus,编辑配置文件prometheus.yml
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
写入内容
global:
scrape_interval: 60s
evaluation_interval: 60sscrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
instance: prometheus- job_name: linux
static_configs:
- targets: ['172.17.0.2:9100']
labels:
instance: localhost
# - targets: ['192.168.1.22:9100']
#这里添加targets,可以使用Prometheus监控其他装有node_exporter的节点,单节点则不需要
# labels:
# instance: 192.168.1.22- job_name: cadvisor
static_configs:
- targets: ['172.17.0.4:8080']
labels:
instance: cAdvisor- job_name: mysqld
static_configs:
- targets: ['172.17.0.3:9104']
labels:
instance: mysql-exporter
注意:修改IP地址,这里的172.17.0. xx就是docker容器内的私网,需要自行查询。
通过docker网络查IP
docker network inspect bridge
注意:如果node-exporter、mysql-exporter不是用docker创建的。IP修改为对应的服务器IP
启动prometheus
docker run -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
注意:宿主机的路径必须是绝对路径:/opt/prometheus/prometheus.yml
,否者报错
访问url:
http://192.168.175.10:9090/graph
访问targets,url如下:
http://192.168.175.10:9090/targets
4 启动grafna
新建空文件夹grafana-storage,用来存储数据
mkdir /opt/grafana-storage
添加权限
chmod 777 -R /opt/grafana-storage
启动grafana
docker run -d --name grafana --restart=always \
-p 3000:3000 --name=grafana \
-v /opt/grafana-storage:/var/lib/grafana grafana/grafana
访问url:
http://192.168.1.31:3000/
默认会先跳转到登录页面,默认的用户名和密码都是admin
登录之后,它会要求你重置密码。你还可以再输次admin密码
密码设置完成之后,就会跳转到首页
添加prometheus
点击Setting——Add data source,
选择prometheus
name名字写Prometheus
type 选择Prometheus,因为数据都从它那里获取
url 输入Prometheus的ip(docker容器私网ip)+端口
点击下面的Save & Test,如果出现绿色的,说明ok了
导入监控模版
回到首页,导入grafana监控模板
监控mysql
导入mysql的监控模板,id为7362
监控主机
导入主机的监控模板,模板id为8919,以相同方式导入即可
监控容器
导入容器的监控模板,模板id为179,以相同方式导入即可
监控redis
导入容器的监控模板,模板id为 763,以相同方式导入即可
保存后效果