centos7虚拟机和docker的安装:可以参考之前的博文
CPU、mysql-exporter、docker监控模板:百度网盘
提取码:0000
先查看服务器时间是否和当前时间一致,如果不一致,查看对应设置:centos7时间同步博文
一、Grafana监控平台搭建步骤
搭建之前关于防火墙:1. 搭建之前先必须开启防火墙,2. 操作之后必须关闭防火墙或者把需要的端口加入防火墙规则中
查看防火墙状态:systemctl status firewalld
a 启动防火墙:systemctl start firewalld
b 关闭防火墙:systemctl stop firewalld
b2 提前把node-exporter、mysqld-exporter、prometheus、grafana、cadvisor端口加入防火墙规则中后重启生效
sudo firewall-cmd --add-port=9100/tcp --permanent
sudo firewall-cmd --add-port=9104/tcp --permanent
sudo firewall-cmd --add-port=9090/tcp --permanent
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --add-port=8090/tcp --permanent
查看列出开放的端口在防火墙中:firewall-cmd --list-ports
重新加载防火墙使其生效(刷新防火墙的配置) firewall-cmd --reload
- 创建并启动 node-exporter 容器
docker run -d -p 9100:9100 --name node-exporter -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter
-
对mysqld_exprot配置数据库的IP、用户名、密码
- 新建mysqld_exporter目录:mkdir -p /data/mysqld_exporter
- 切换到这个目录:cd /data/mysqld_exporter/
- 编辑(host是docker环境的ip、帐号密码默认): vi my.cnf
[client]
host=172.17.0.1
user=root
password=123456 - 加权限:chmod 755 my.cnf
-
创建并启动mysqld_exprot
docker run -d -p 9104:9104 --name mysqld-exporter --volume=/data/mysqld_exporter/my.cnf:/etc/mysql/my.cnf:ro prom/mysqld-exporter --config.my-cnf=/etc/mysql/my.cnf
- 对prometheus配置相关数据
mkdir -p /opt/prometheus
vi /opt/prometheus/prometheus.yml
prometheus.yml 内容 如下:
global:
scrape_interval: 60s
evaluation_interval: 60s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['172.17.0.1:9090']
labels:
instance: prometheus
- job_name: linux
static_configs:
- targets: ['172.17.0.1:9100']
- job_name: mysql
static_configs:
- targets: ['172.17.0.1:9104']
- job_name: 'cadvisor'
static_configs:
- targets: ['172.17.0.1:8081']
通过ifconfig命令查看docker的IP和prometheus.yml文件的IP一致,这里显示一致,如果不一致需要和服务器保持一致
prometheus.yml文件赋权
chmod 755 prometheus.yml
- 创建并启动 prometheus 容器
docker run -d -p 9090:9090 --name prometheus -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/localtime:/etc/localtime:ro prom/prometheus
- 对grafana配置相关数据
mkdir -p /opt/grafana/data
chmod 777 /opt/grafana/data
- 创建并启动 grafana 容器
docker run -id --name=grafana -p 3000:3000 -v /opt/grafana/data:/var/lib/grafana -v /etc/localtime:/etc/localtime:ro grafana/grafana
- docker监控第一种方法(创建并启动 cadvisor 容器)
docker run -d -p 8081:8080 --name cadvisor --privileged=true -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro google/cadvisor:latest
- 监控docker第二种方法(创建并启动 sysdig 容器-后续可以通过docker分析性能指标)
docker run -id --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig
- 使用谷歌浏览器查看: 输入服务器地址:192.xxx.xx.xxx:9090
切换Targets,查看都是up状态,配置OK(Tips:左边的ip可以换成服务器ip+端口进行访问,例如 192.168.xx.xxx:8081)
-
通过IP地址: http://192.xxx.xx.xxx:3000/ 访问Grafana平台, 初始账号密码:admin/admin
这里选择skip跳过,一般不用重设密码
-
配置数据源,选择齿轮,选择Data sources
选择第一个Prometheus, 点击Select
-
只填写下面这一个地方,这里填写docker的ip地址和端口号: http://172.170.1:9090
点击Save & test 按钮,显示下面这两处地方,代表配置成功
-
导入模版,选择Import
选监控CPU的json文件,选择数据源:Prometheus(有时候可能没有,没关系), 选择 Import
-
查看,展示如下,模板配置成功,选择左上角自动展示docker的IP,右上角选择5分钟内,刷新时间为5s
分组名称:linux IP地址:默认展示 选择时间:最近5分钟内, 刷新时间选择:5s
如下展示–配置成功
-
再复制一个浏览器窗口,进行导入mysql.json模版后,默认点击Import按钮
Interval:auto IP地址:默认展示 选择时间:最近5分钟内, 刷新时间选择:5s
-
再复制一个浏览器窗口,docker模板导入及数据展示,配置OK
-
展示下面界面,docker模板导入成功
到此docker监控Grafana技术配置完成!!!