一、环境介绍
1.1 主机清单
职责 | ip地址 | 备注
Prometheus服务器 | 192.168.100.85 | docker指式的prometheus
待览控Linux | 192.168.100.141 | 待准备组件:docker指式的prometheus
1.2 调用链路图
![](https://img.kancloud.cn/0d/26/0d264dad0b5e6dac42e7fd3456c0bb38_498x175.png)
<hr>
二、待监控Linux机准备
2.1 Centos7安装
2.2 调整host名称
#修改hosts文件
vi /etc/hosts
#录入以下内容,:wq保存并退出
#被监控机器IP
192.168.100.141 centos2
#Prometheus服务器IP
192.168.100.85 centos1
2.3 安装docker
2.4 安装docker-compose
<hr>
三、安装node_exporter
192.168,28.141的centos2上,以docker-compose万式快速安装node_exporter
3.1创建node_exporter文件夹
mkdir /data/node exporter -p
cd /data/node exporter
3.2 创建docker-compose.yaml文件
vi docker-compose.yaml
services:
node_exporter:
image: registry.cn-hangzhou.aliyuncs.com/ldw520/node-exporter:v1.8.0
container_name: node-exporter
restart: always
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
ports:
- '9100:9100'
<hr>
3.3 运行docker-compose
docker-compose up -d (-d后台运行)
<hr>
3.4 在prometheus服务器 加监控机器配置
cd /data/docker-compose
vi prometheus/prometheus.yml
如下图所示,在node_exporter里面加多个tartgets配置,服务器ip写被监控的服务器ip
![](https://img.kancloud.cn/6f/b1/6fb10d9991643db16715f5dd83db95b1_564x269.png)
保存配置后,让配置生效
#centos1中执行
curl ·X PosT http://localhost:9090/-/reload
查看Prometheus网页可发现多了一个监控,已成功
![](https://img.kancloud.cn/aa/46/aa46f6f779aa3b9995a49753243a4dbf_1692x752.png)
<hr>
四、常用的Linux服务器监控指标
1.CPU
2.内存
3.硬盘
4.网络流量
5.文件描述符
6.系统负载
7.系统服务
4.1 cpu监控
CPU的监控质名称是:node_cpusecondstotal,便用总量直接执行node_cpu_seconds_total查询后会出现很多监控指标,然不是想要的node_cpu_seconds_[ota执行后会出现很多监控指标,其中各种类型的比如系统态,用户志都会出mmode标签来区分
我们想要查询CPU的使用率的思路量:查出当前空闲的CPU百分比,晨后用100减去,mode标签值idle就表示当前率闲的CPU
node_cpu_seconds_total
![](https://img.kancloud.cn/7a/4a/7a4a66addf0d7ec03748c968042941f9_1313x779.png)
cpu="0”代表第1核cpu
cpu="1”代表第2核cpu
- 获取空闲cpu监控数据
mode标签值为idle的为空闲(user代表mode为用户,system代表mode为系统...)
node_cpu_seconds_total{mode="idle"}
![](https://img.kancloud.cn/28/ca/28ca3e12b5c0dd0d2d76a5475c25870f_1782x404.png)
获取某台监控机器的cPu数据
instance标签值为centos2服务器的cpu数据
node_cpu_seconds_total{instance='centos2服务器'}
获取1分钟/5分钟/15分钟的cpu负毅
node _load1
node load5
node load15
获取5分钟内的监控数据
之前虽然可以查出来结果,但是不太理想,因为CPU是不断波动的,我们可以在增加一个条件,查询5分钟内的一个CPU使用情况
node_cpu_seconds_total{mode='idle'}[5m]
![](https://img.kancloud.cn/b1/2c/b12ce93c5459ae488396ac5a52755b44_1755x750.png)
获取5分钟内的cpu平均空闲状况我们可以便用irate和avg的数结合刚才查询出5分钟内数据做一个平均情况展示函数的便用方法:的数(指标获取方式)
avg(irate(node_cpu_seconds_total{mode= 'idle'}[5m])) by (instance)
#y(instance)表示以instance标签进行分组
![](https://img.kancloud.cn/5a/2f/5a2f8306aba06df228ac3665993b37fa_1743x355.png)
获取cpu5分钟内的使用率
最后我们可以*100得出一个百分比的空闲率,再由100·即可得到CPU的使用率
100 * avg(irate(node_cpu_seconds_total{mode= 'idle'}[5m])) by (instance)
![](https://img.kancloud.cn/be/b7/beb765913583e386fd27bffadfb21e32_1896x372.png)
<hr>
4.2 内存监控
由于内存的监控项没有像CPU一样区分了很多标签,因此内存监控相较于CPU则需要结合很多个监控
node_memory_MemFree_bytes //空闲内存
node_memory_MemTotal bytes //总内存
node_memory_Cached_bytes //爱爱存
node_memory_Buffers_bytes //缓冲区内存监控内存使用的思路:
1.空闲内存+缦存+缦冲区内存得出空闲总内存
2.得出的空闲总内存再除总内存大小再乘100,得出空闲率
3.再用100·空闲率就得出使用率
首先是获取空闲内存
![](https://img.kancloud.cn/3c/fd/3cfd1bd20df619f7cb6d3811648cb011_1798x523.png)
<hr>
5.3 磁盘使用率
关于磁盘使用率,这里我们用到的主要有:
node,filesystem_free_bytes //剩余磁盘空间
node_filesystem_size_bytes //磁盘空间总大小
node disk相关
这两个监控项中都有相同的标签可以关联,我们这里用到的标签有fstype,fstype标签值是关于磁盘的文件系统类型,对于磁盘监控,我们主要对x5、ext4等文件系统的磁盘进行监控,像(mpfs这种的不必要监控,另一个主要的标签是mountpoint,这个标签值主要用来储存磁盘的挂我点,我们可以通过标签来选择要对那个挂我点的磁盘进行监控磁盘使用率实现思路
1.由磁盘空闲客量除磁盘总容量乘100即可得到磁盘空闲潮
2.用100减磁盘空闲率即可得到磁盘使用率
![](https://img.kancloud.cn/bc/98/bc989d1d5ad98eb8e0748f8f715770d1_1862x488.png)
#linux中获取磁盘空闲率命令
df -hT
<hr>
5.4 网络采集
node_network_相关都属于网络采集数据
#阿络凉出流量
node_network_transmit_bytes_total
#网络流入流量
node_network_receive_bytes_total
- Prometheus教程
- 一. dokcer 安装
- 二. 安装docker-compose
- 三. docker-compose安装Prometheus
- 四. 配置grafana的数据源
- 五. Prometheus的Exporter
- 六. Prometheus的基本术语
- 七. 监控Linux
- 八. 监控redis和mongodb
- 九. 监控mysql数据库
- 十. 监控go程序
- 十一. 监控nginx
- 十二. 监控消息队列
- 十三. 监控docker
- 十四. 监控进程
- 十五. 域名监控
- 十六. SNMP监控
- 十七. 黑盒监控
- 十八. 自定义监控
- 十九. go实现自定义监控
- 二十. 服务发现概述
- 二十一. 基于文件的服务发现
- 二十二. 基于Consul的服务发现
- 二十三. relabeling机制