第五章、Prometheus监控案例

实验环境

系统IP地址备注
Centos 7.8172.16.3.255/21Prometheus-server
Centos 7.8172.16.3.226/21Prometheus-agent

监控案例

  • a) 监控Linux服务器
  • b) 监控CPU,内存,磁盘
  • c) 监控服务状态
  • d) 使用Grafana炫图展示监控数据
  • e) 监控Dockr服务器
  • f) 监控MySQL

监控Linux服务器

node_exporter:用户*NIX系统监控,使用Go语言编写的收集器

使用文档:https://Prometheus.io/docs/guides/node-exporter/
GitHub:https://github.com/prometheus/node_exporter/
exporter列表:https://Prometheus.io/docs/instrumenting/exporters/

172.16.3.226操作:(被监控端安装)

在被监控端安装Node_exporter获取数据

[root@k8snode1 ~]# tar zxf node_exporter-1.0.1.linux-amd64.tar.gz
[root@k8snode1 ~]# mv node_exporter-1.0.1.linux-amd64 /usr/local/node_exporter
[root@k8snode1 ~]# cd /usr/local/node_exporter/
[root@k8snode1 node_exporter]# ls
LICENSE  node_exporter  NOTICE
[root@k8snode1 node_exporter]# ./node_exporter --help
[root@k8snode1 node_exporter]#cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
EOF
[root@k8snode1 node_exporter]# systemctl daemon-reload
[root@k8snode1 node_exporter]# systemctl start node_exporter

测试一下是否成功: node服务默认端口是9100

http://172.16.3.226:9100/metrics

在这里插入图片描述

172.16.3.225操作:

[root@k8smaster prometheus]# vim prometheus.yml
添加一个新的实例:

在这里插入图片描述

[root@k8smaster prometheus]# cat sd_config/node.yml 
- targets:
  - 172.16.3.226:9100
[root@k8smaster prometheus]# kill -hup 380

在这里插入图片描述

查看node_CPU的信息

在这里插入图片描述

注:在这里可以看到数据说明Node监控没有问题

在这里插入图片描述

监控CPU、内存、硬盘

公式:
	100 - 空闲率 = 使用率
	100 - 使用率 = 空闲率

CPU使用率:

irate(node_cpu_seconds_total{instance="172.16.3.226:9100",mode="idle"}[5m])*100			# 剩余的使用率
100-(irate(node_cpu_seconds_total{instance="172.16.3.226:9100",mode="idle"}[5m])*100)	# 使用率

在这里插入图片描述

内存使用率:

公式:free + buff/cache=可用率

node_memory_MemFree_bytes		# 剩余的内存,比特为单位
node_memory_MemTotal_bytes	# 总共的内存,比特为单位
node_memory_Cached_bytes		# 缓存
node_memory_Buffers_bytes		# 缓存

(node_memory_MemFree_bytes+ node_memory_Cached_bytes+ node_memory_Buffers_bytes)/ node_memory_MemTotal_bytes*100		# 剩余
(node_memory_MemFree_bytes+ node_memory_Cached_bytes+ node_memory_Buffers_bytes)/ node_memory_MemTotal_bytes*100		# 剩余百分比	
100-(node_memory_MemFree_bytes+ node_memory_Cached_bytes+ node_memory_Buffers_bytes)/ node_memory_MemTotal_bytes*100	# 使用百分比	

在这里插入图片描述

磁盘使用率

node_filesystem_files{mountpoint="/",fstype=~"xfs|ext4"}	# 根分区剩余的值
node_filesystem_free_bytes{fstype=~"ext4|xfs"}  / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100		# 根剩余的百分比
100 - (node_filesystem_free_bytes{fstype=~"ext4|xfs"}  / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100)		# 根已使用的百分比

在这里插入图片描述

监控服务状态

172.16.3.226操作:

[root@k8snode1 node_exporter]# cat > /usr/lib/systemd/system/node_exporter.service << EOF
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service

[Install]
WantedBy=multi-user.target
EOF

注: --collector.systemd: 如果想要监控服务的话需要开启systemcd的监控
–collector.systemd.unit-whitelist=(docker|sshd|nginx).service: 指定要监控的服务有哪些,可以匹配所有也可以指定匹配

[root@k8snode1 node_exporter]# systemctl daemon-reload
[root@k8snode1 node_exporter]# systemctl restart node_exporter
[root@k8snode1 node_exporter]# ps -ef | grep node
root     32469     1  0 15:57 ?        00:00:00 /usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist="(docker|sshd|nginx).service"

注:ps查看的时候可以看到刚刚添加的内容已经出现在这里啦

node_systemd_unit_state # 标签提供的

在这里插入图片描述

注:服务状态
Value=1 说明服务当前所在的状态

Grafana炫图展示监控数据:

Grafana是一个开源的度量分析和可视化系统

安装文档:https://grafana.com/grafana/download
模板共享网址:https://grafana.com/dashboards
共享图表网址:https://grafana.com/dashboards/9276

172.16.3.225操作:

[root@k8smaster ~]# docker run -d --name=grafana -p 3000:3000 grafana/grafana:5.4.3

http://172.16.3.225:3000/ # 默认用户密码是admin – 刚开始登录的时候会让你重新修改密码

添加一下Prometheus的数据源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将Linux服务器创建一个仪表盘在这里展现出来—自己手定义

在这里插入图片描述
在这里插入图片描述

导入共享图标网址: 模板id:9276

在这里插入图片描述
在这里插入图片描述

通过下图可以看到以下模板显示的内容

在这里插入图片描述

监控Docker服务器

cAdvisor(Container Advisor)google开源,用于收集正在运行的容器资源使用和性能信息。

https://github.com/google/cadvisor
共享仪表盘: https://grafana.com/dashboards/193

172.16.3.225操作:

[root@k8smaster ~]# sudo docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
--privileged \
--device=/dev/kmsg \
google/cadvisor:latest

172.16.3.225:8080/metrics 		# 收集容器相关的信息、信息指标

在这里插入图片描述

将cAdvisor添加到Prometheus里监控
[root@k8smaster ~]# vim /usr/local/prometheus/prometheus.yml

在这里插入图片描述

[root@k8smaster prometheus]# kill -hup 380

在这里插入图片描述

导入193仪表盘

在这里插入图片描述
在这里插入图片描述

可以看到已经有DOcker的容器信息了在这里插入图片描述

监控MySQL

mysql_exporter:用于收集MySQL性能信息

MySQL共享仪表盘(模板):https://grafana.com/dashboards/7362
部署注意事项:https://github.com/prometheus/mysqld_exporter

172.16.3.226操作:

[root@k8snode1 ~]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

2、解压安装
[root@k8snode1 ~]# tar zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz 
[root@k8snode1 ~]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
[root@k8snode1 ~]# cd /usr/local/mysqld_exporter/
[root@k8snode1 mysqld_exporter]# ls
LICENSE  mysqld_exporter  NOTICE
[root@k8snode1 mysqld_exporter]# ./mysqld_exporter --help

3、授权用户
[root@k8snode1 mysqld_exporter]# mysql -uroot –p
mysql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'chinaedu';
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';

4、mysql_exporter客户端在运行的时候免密的方式登录
[root@k8snode1 mysqld_exporter]# cat .my.cnf 
[client]
user=exporter
password=chinaedu

5、启用mysql_exporter并且指定刚刚设置的文件,免密登录
[root@k8snode1 mysqld_exporter]# ./mysqld_exporter --config.my-cnf=.my.cnf

6、默认暴露的端口是9104--- 访问一下出现内容说明获取到了MySQL的数据
172.16.3.226:9104/metrics

在这里插入图片描述

172.16.3.225操作:

[root@k8smaster ~]# vim /usr/local/prometheus/prometheus.yml 		# 添加一下MySQL的监控实例

在这里插入图片描述

[root@k8smaster prometheus]# kill -hup 380
http://172.16.3.225:9090

在这里插入图片描述

在这可以看到已经添加上了MySQL的数据 — 接下来我们通过Grafana导入一个7362模板展示MySQL数据----步骤省略直接看结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维生涯记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值