安装node_exporter监控linux系统指标
安装 node export
下载node_exporter 从官网 https://prometheus.io/download/#node_exporter
下载之后 解压缩 然后直接运行即可
# tar xvzf node_exporter-0.17.0.linux-amd64.tar.gz
# mv node_exporter-0.17.0.linux-amd64/ node_exporter
做成服务 方便管理
# vim /usr/lib/systemd/system/node_exporter.service ---配置启动脚本
[Service]
ExecStart=/home/node_exporter/node_exporter --web.listen-address=:20015
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
启动,查看状态,配置开机启动
# systemctl enable node_exporter #设置开机启动
# systemctl daemon-reload #重新加载一下配置。每次改动后也要重新加载
# systemctl start node_exporter #启动
# systemctl status node_exporter #查看服务的状态
在promethues.yml添加配置
- job_name: 'Node' static_configs: - targets: ['172.16.1.2:20015','172.16.1.3:20015'] #node的ip和port
添加node的rule规则
# vim /usr/local/prometheus/rules/node-exporter.yml
# 服务器资源告警策略 groups: - name: 服务器资源监控 rules: - alert: 内存使用率过高 expr: (node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100 > 95 for: 5m # 告警持续时间,超过这个时间才会发送给alertmanager labels: severity: 严重告警 annotations: summary: "{{ $labels.instance }} 内存使用率过高,请尽快处理!" description: "{{ $labels.instance }}内存使用率超过95%,当前使用率{{ $value }}%." - alert: 服务器宕机 expr: up == 0 for: 3m labels: severity: 严重告警 annotations: summary: "{{$labels.instance}} 服务器宕机,请尽快处理!" description: "{{$labels.instance}} 服务器延时超过3分钟,当前状态{{ $value }}. " - alert: CPU高负荷 expr: 100 - (avg by (instance,job)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 95 for: 5m labels: severity: 严重告警 annotations: summary: "{{$labels.instance}} CPU使用率过高,请尽快处理!" description: "{{$labels.instance}} CPU使用大于95%,当前使用率{{ $value }}%. " - alert: 磁盘IO性能 expr: avg(irate(node_disk_io_time_seconds_total[1m])) by(instance,job)* 100 > 90 for: 5m labels: severity: 严重告警 annotations: summary: "{{$labels.instance}} 流入磁盘IO使用率过高,请尽快处理!" description: "{{$labels.instance}} 流入磁盘IO大于90%,当前使用率{{ $value }}%." - alert: 网络流入 expr: ((sum(rate (node_network_receive_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100) > 102400 for: 5m labels: severity: 严重告警 annotations: summary: "{{$labels.instance}} 流入网络带宽过高,请尽快处理!" description: "{{$labels.instance}} 流入网络带宽持续5分钟高于100M. RX带宽使用量{{$value}}." - alert: 网络流出 expr: ((sum(rate (node_network_transmit_bytes_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100) > 102400 for: 5m labels: severity: 严重告警 annotations: summary: "{{$labels.instance}} 流出网络带宽过高,请尽快处理!" description: "{{$labels.instance}} 流出网络带宽持续5分钟高于100M. RX带宽使用量{$value}}." - alert: TCP连接数 expr: node_netstat_Tcp_CurrEstab > 9000 for: 2m labels: severity: 严重告警 annotations: summary: " TCP_ESTABLISHED过高!" description: "{{$labels.instance}} TCP_ESTABLISHED大于90%,当前使用率{{ $value }}%." - alert: 磁盘容量 expr: 100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 95 for: 1m labels: severity: 严重告警 annotations: summary: "{{$labels.mountpoint}} 磁盘分区使用率过高,请尽快处理!" description: "{{$labels.instance}} 磁盘分区使用大于95%,当前使用率{{ $value }}%."
重启promethues
# systemctl restart promethues
访问promethues
安装Grafana与Prometheus集成
Grafana是一个开源的度量分析和可视化系统。
Red Hat, CentOS, RHEL安装grafana
# sudo yum install -y https://dl.grafana.com/oss/release/grafana-8.5.25-1.x86_64.rpm
1、启动服务
# systemctl daemon-reload
# systemctl start grafana-server
# systemctl enable grafana-server
2、访问Granfana
http://ip:3000/
用户名:admin
密码:admin
3、添加prometheus模块
选择promethues数据源
4、添加监控端地址并保存
导入node仪表盘编号11074
查看
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了