Prometheus实现 Linux可视化监控
效果展示:
当前系统UBuntu
需要安装prometheus和插件node_exporter、Grafana、Alertmanager 、blackbox_exporter、pushgateway
prometheus:
Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控;
Alertmanager :
警报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的。警报规则在 Prometheus 定义,警报规则触发以后,才会将信息转发到给独立的组件 Alertmanager ,经过 Alertmanager r对警报的信息处理后,最终通过接收器发送给指定用户,另外在 Alertmanager 中没有通知组的概念,只能自己对软件重新Coding,或者使用第三方插件来实现。
blackbox_exporter:
Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。用户可以直接使用go get命令获取Blackbox Exporter源码并生成本地可执行文件:go get prometheus/blackbox_exporter
pushgateway:
Pushgateway 是 Prometheus 生态中一个重要工具,使用它的原因主要是:
- Prometheus 采用 pull 模式,可能由于不在一个子网或者防火墙原因,导致 Prometheus 无法直接拉取各个 target 数据。
- 在监控业务数据的时候,需要将不同数据汇总, 由 Prometheus 统一收集。
node_exporter:
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据
Grafana:
查询、可视化和理解数据,并获取数据警报,无论数据存储在何处。在 Grafana,都可以通过美观、灵活的数据面板创建、探索和共享所有数据。
实现步骤:
1、下载prometheus、node_exporter、Alertmanager 、blackbox_exporter、pushgateway
地址:https://prometheus.io/download/
2、解压安装包
#创建文件夹 > mkdir /data > mkdir /app # 将压缩包全部上传到data中 # 将data的压缩包统一解压到app文件夹中 > for i in `ls`; do tar xf $i -C /app ;done
# 将名称简写
> cd /app
> for i in `ls`; do mv $i `echo $i | cut -d'-' -f1`; done
3、开启prometheus
promeheus直接执行是前台运行的,所以这里启动需要用nohup ./prometheus & 启动后,Prometheus UI默认运行在9090端口。浏览器可以直接打开访问,无账号密码验证
> cd /app/prometheus
> nohup ./prometheus &
访问http://IP地址:9090/
4、Prometheus利用node_exporter监控其他节点
在 Prometheus 的架构设计中,Prometheus Server 并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够监控到更多信息,如主机的 CPU 使用率等,我们需要使用到 node_exporter。Prometheus 周期性的从 Exporter 暴露的 HTTP 服务地址(通常是 /metrics)拉取监控样本数据。
> cd /app/node_exporter
> cp node_exporter /usr/lcoal/bin
#启动node_exporter
> ./node_exporter &
node_exporter端口为9100,访问 http://IP地址:9100/metrics (node 节点)查看抓取内容
5、将node_exporter 配置到Prometheus
> cd /app/Prometheus/ > vim prometheus.yml
# 在配置文件中加入node节点
重启prometheus,查看node_exporter是否加入成功
# kill prometheus
> ps -ef | grep prometheus
# kill 进程号
> cp /app/prometheus
#启动
> nohup ./prometheus &
进入targets
node_exporter的状态为up,node_exporter配置到prometheus成功
6、安装Grafana
1 2 3 4 5 6 | #获取grafana > wget https: //dl.grafana.com/enterprise/release/grafana-enterprise-9.4.3-1.x86_64.rpm # 安装grafana > rpm install grafana-enterprise-9.4.3-1.x86_64.rpm --force --nodeps > systemctl enable grafana-server && systemctl start grafana-server > netstat -nuptl|grep 3000 |
浏览器访问 http://IP:3000,默认账号密码:admin admin
7、为grafana添加数据源
8、Import via grafana.com
输入端口8919的,点击load
查看仪表
数据展示
数据时间根据时间段查看
可选:将grafana配置到prometheus
步骤:
1)
> cd /app/prometheus
> vim prometheus.yml
2)
3) 重启prometheus
> ps -ef | grep prometheus
> kill 进程ID
> cd /app/prometheus
> nohup ./prometheus &
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~