性能监控之prometheus+grafana搭建

前言

Prometheus和Grafana是两个流行的开源工具,用于监控和可视化系统和应用程序的性能指标。它们通常一起使用,提供了强大的监控和数据可视化功能。

Prometheus

  • Prometheus是一种开源的系统监控和警报工具包。它最初由SoundCloud开发,并于2012年发布为开源项目。
  • Prometheus的核心是一个时间序列数据库,它用于存储来自应用程序或系统的指标数据,如CPU利用率、内存使用情况、HTTP请求等。
  • Prometheus通过HTTP协议定期拉取目标系统的指标数据。这些目标可以是应用程序、服务器、数据库等各种系统组件。
  • Prometheus提供了灵活的查询语言PromQL,用于对存储的指标数据进行查询和聚合。
  • 它还支持警报规则,可以根据定义的规则触发警报,并发送通知给相关人员。

Grafana

  • Grafana是一个开源的数据可视化和监控平台,最初由Torkel Ödegaard于2014年创建。
  • Grafana允许用户创建动态且高度可定制的仪表板,用于展示来自各种数据源的数据。
  • 它支持多种数据源,包括Prometheus、Graphite、Elasticsearch、InfluxDB等。
  • Grafana提供了丰富的可视化选项,包括折线图、柱状图、仪表板、热图等,用户可以根据需求自由组合和定制。
  • 通过Grafana,用户可以创建复杂的监控仪表板,将各种数据以直观的方式展示出来,帮助用户更好地理解系统的运行情况和性能指标。

综上所述,Prometheus和Grafana是一对强大的开源工具组合,用于监控系统和应用程序的性能,并通过可视化方式展示监控数据,帮助用户及时发现和解决问题。

概述

本次安装采用docker方式

|------------|--------------|
| 资源 | 信息 |
| linux虚拟机一台 | 172.16.42.68 |
| | |
| 软件 | 版本 |
| prometheus | 2.25.0 |
| grafana | 7.3.7 |

安装部署

安装docker

复制代码
yum install docker
启动docker
systemctl start docker

安装prometheus

复制代码
docker run -itd --name prometheus -p 9090:9090 prom/prometheus:v2.25.0

安装grafana

复制代码
docker run -itd --name grafana -p 3000:3000 grafana/grafana:7.3.7

安装node_export

Node Exporter 是一个开源的 Prometheus Exporter,用于收集主机系统的各种指标数据。它可以在 Linux、Windows 和 macOS 等操作系统上运行,并暴露系统的 CPU 使用率、内存使用率、磁盘空间、网络流量等指标数据,以供 Prometheus 或其他监控系统进行收集和分析。

Node Exporter 通过在主机上运行一个小型的代理程序来收集系统指标数据,并通过 HTTP 端口暴露这些数据,使 Prometheus 或其他监控系统能够轻松地抓取和处理。它是 Prometheus 生态系统中的重要组件之一,帮助用户监控和管理他们的基础设施。

方式1 tar.gz
复制代码
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0-rc.0/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
tar -xvf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz -C /usr/local
mv /usr/local/node_exporter-1.4.0-rc.0.linux-amd64/node_exporter /usr/local/bin/
 
# 编写systemd服务
cat > /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporeter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
 
# 更新内核并启动,自启动
systemctl daemon-reload && systemctl start node_exporter && systemctl enable node_exporter && systemctl status node_exporter
方式2 docker
复制代码
docker run -d --name=node_exporter -p 9100:9100 prom/node-exporter

修改普罗米修斯配置文件

将node_export加入到普罗米修斯的配置文件中

复制代码
docker exec -it prometheus sh
cd /etc/prometheus
vi prometheus.yml

  - job_name: 'linux'        
    scrape_interval: 5s
    static_configs:                   
    - targets: ['172.16.42.68:9100']

重启服务

复制代码
docker restart prometheus

grafana数据统一可视化

普罗米修斯也可以可视化,但是他每一个指标都是单独的,而grafana是可以将普罗米修斯收集到的数据统一合并到一个美观的web图表上

下载json模版(后面会用到)(通用)

https://grafana.com/api/dashboards/12633/revisions/1/download 下载链接

登陆grafana后台

http://172.16.42.68:3000/login

默认admin/admin

修改密码即可

添加datasource

导入json模版文件

页面展示

监控其他的虚拟机

只需在每个虚拟机上安装node_exporter服务即可,同时完成对普罗米修斯配置的修改

其他

1、可以将prometheus配置文件映射出来,后续就不需要去容器中修改了

2、Prometheus配置文件说明

复制代码
job_name: 同样,每个job都有一个名称,用于标记从该配置中抓取的时间序列。

scrape_interval: 所有的linux jobs都设置了相同的抓取间隔为5秒。

static_configs: 每个linux job都有一个静态配置,指定了不同的目标(target):
'42.68' job从'172.16.42.68:9100'获取数据。
'42.66' job从'172.16.42.66:9100'获取数据。
'42.70' job从'172.16.42.70:9100'获取数据。
相关推荐
啟明起鸣2 小时前
【网络编程】从与 TCP 服务器的对比中探讨出 UDP 协议服务器的并发方案(C 语言)
服务器·c语言·开发语言·网络·tcp/ip·udp
九章云极AladdinEdu2 小时前
深度学习优化器进化史:从SGD到AdamW的原理与选择
linux·服务器·开发语言·网络·人工智能·深度学习·gpu算力
zzzsde3 小时前
【Linux】初识Linux
linux·运维·服务器
fouryears_234173 小时前
云服务器使用代理稳定与github通信方法
运维·服务器·github
Ronin3054 小时前
【Linux系统】单例式线程池
linux·服务器·单例模式·线程池·线程安全·死锁
Dovis(誓平步青云)4 小时前
《Linux 基础指令实战:新手入门的命令行操作核心教程(第一篇)》
linux·运维·服务器
半桔5 小时前
【网络编程】TCP 服务器并发编程:多进程、线程池与守护进程实践
linux·服务器·网络·c++·tcp/ip
云泽8086 小时前
从ENIAC到Linux:计算机技术与商业模式的协同演进
linux·运维·服务器
ZeroNews内网穿透6 小时前
企业远程访问方案选择:何时选内网穿透,何时需要反向代理?
运维·服务器·网络·python·安全
NiKo_W7 小时前
Linux 深入理解权限
linux·运维·服务器