centos性能监测(一PrometheusGrafana实现Centos服务器性能监控)
centos性能监测(一PrometheusGrafana实现Centos服务器性能监控)golang编程语言2、与Zabbix的比较PrometheusZabbix
一、Prometheus简介
Prometheus (普罗米修斯)是一套开源的系统监控报警框架。它受启发于 Google 的 Brogmon 监控系统,由工作在 SoundCloud 的前 google 员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。基于golang语言开发。
2016 年,Prometheus 正式加入 Cloud Native Computing Foundation(CNCF)基金会的项目,成为受欢迎度仅次于 Kubernetes 的项目。2017 年底发布了基于全新存储层的 2.0 版本,能更好地与容器平台、云平台配合。
1、特点
- 提供多维度数据模型和灵活的查询方式,通过将监控指标关联多个 tag,来将监控数据进行任意维度的组合,并且提供简单的 PromQL 查询方式,还提供 HTTP 查询接口,可以很方便地结合 Grafana 等 GUI 组件展示数据。
- 在不依赖外部存储的情况下,支持服务器节点的本地存储,通过 Prometheus 自带的时序数据库,可以完成每秒千万级的数据存储;不仅如此,在保存大量历史数据的场景中,Prometheus 可以对接第三方时序数据库和 OpenTSDB 等。
- 定义了开放指标数据标准,以基于 HTTP 的 Pull 方式采集时序数据,只有实现了 Prometheus 监控数据才可以被 Prometheus 采集、汇总、并支持 Push 方式向中间网关推送时序列数据,能更加灵活地应对多种监控场景。
- 支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集。Prometheus 目前已经支持 Kubernetes、etcd、Consul 等多种服务发现机制。
- 易于维护,可以通过二进制文件直接启动,并且提供了容器化部署镜像。
- 支持数据的分区采样和联邦部署,支持大规模集群监控。
2、与Zabbix的比较
Prometheus |
Zabbix | |
编程语言 |
golang |
c |
监控对象 |
不仅适用主机监控,还适用于 Cloud SaaS Openstack,Container 监控 |
属于传统主机监控,主要用于物理主机,交换机,网络等监控 |
内容配置 |
需要手动修改文件配置 |
可以在 WebGui 中配置很多事情 |
3、Grafana介绍
Grafana 是一个开源的监控数据分析和可视化套件。最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用于其他需要数据可视化分析的领域。Grafana 可以帮助你查询、可视化、告警、分析你所在意的指标和数据。可以与整个团队共享,有助于培养团队的数据驱动文化。
二、监控系统安装
软件部署情况:
192.168.64.123 Prometheus、Grafana、node-exporter
192.168.64.124 node-exporter
1、go语言环境安装
因为Prometheus是由golang语言开发,因此先安装go语言环境。
下载压缩包,解压缩, 配置环境变量
go语言下载地址 AMD64对应X86平台。
(CPU)关于x86、x86_64/x64、amd64和arm64/aarch64
# 解压Go语言环境到
/usr/local tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
# 配置系统环境参数
vim /etc/profile
# 在文件的最后添加如下内容:
export PATH=$PATH:/usr/local/go/bin
# 刷新系统配置文件
source /etc/profile
# 使用 go version 命令来验证安装是否成功!
go version
go version go1.18.3 linux/amd64
#得到以上回显则配置成功!
2、Prometheus安装
Prometheus下载地址
下载压缩包,解压缩,启动
# 对软件包进行解压
tar -zxvf prometheus-2.36.1.linux-amd64.tar.gz
# 更改名字 根据自己情况
mv /opt/prometheus-2.34.0.linux-amd64 /opt/prometheus
# 进入软件目录
cd /opt/prometheus
# 查看软件版本
./prometheus --version
#得到以下结果
prometheus version 2.36.1 (branch: HEAD revision: 3c0a100dec2950f23e91f7efbf8867750960807d) build user: root@e59c79158868 build date: 20220609-15:25:21 go version: go1.18.3 platform: linux/amd64
# 启动Prometheus
./prometheus
# 至此 Prometheus的安装和启动已经完成了~可以查看端口是否启用
netstat -tulpn | grep 9090
访问服务器 192.168.64.123:9090 即可打开prometheus的界面了
此时我们启动的prometheus是前端启动,控制台我们执行Ctrl c 后,服务就停止了,我们通过设置service进行后台启动。
# 编辑prometheusd.service
vi /usr/lib/systemd/system/prometheusd.service
# prometheusd.service内容
[Unit]
Description=Prometheus
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。
systemctl daemon-reload
# 启动prometheus服务
systemctl start prometheusd
查看systemctl启动服务的日志信息,可通过以下命令
# 显示所有的systemctl的日志
journalctl
# 查看某个服务的日志
journalctl -u 服务名
# 实时输出某个服务的日志
journalctl -fu 服务名
3、node-exporter探针安装
本文是将node-exporter安装在prometheus的宿主机上,对宿主机进行监控。可以将prometheus安装在其他服务器上,在被监控的服务器上安装node-exporter。node-exporter是prometheus提供的一个可以采集到主机信息的应用程序,它能采集机器的cpu、内存、磁盘等信息。
Prometheus下载地址 选在下载node-exporter
下载压缩包,解压缩,启动
# 对主机探针安装包进行解压
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
# 更改一个简单的名字
mv node_exporter-1.3.1.linux-amd64 node_exporter
# 运行主机探针
cd node_exporter/
./node_exporter
探针启动后会显示探针的端口号,默认node_exporter的监听端口为9100
# 也可以使用此命令启动,指定监听端口为8080
./node_exporter --web.listen-address 127.0.0.1:8080
启动之后,我们可以访问192.168.64.123:9100
点击 Metrics,可以看到服务器的一些性能指标数据
node-exporter启动也是前台启动,如果ctrl c后,服务就会停掉,我们也配置下服务
# 编辑文件
vim /usr/lib/systemd/system/node-exporter.service
# 文件内容
[Unit]
Description=This is prometheus node exporter
After=node_exporter.service
[Service]
Type=simple
ExecStart=/usr/local/node_exporter-1.3.1.linux-amd64/node_exporter
ExecReload=/bin/kill -HUP
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 启动服务
systemctl daemon-reload
systemctl start node-exporter.service
4、Prometheus数据源添加
我们启动了Prometheus服务,也在主机上部署了node-exporter 探针,但此时Prometheus还不能获取到主机数据,我们需要配置下prometheus服务的prometheus.yml文件,让其去拉取note-exporter探针的数据。
编辑prometheus.yml文件中的scrape_configs节点下添加以下内容
scrape_configs:
#原有的数据
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
#新添加的数据 # 采集node exporter监控数据
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
配置文件中配置了两个任务。一个是系统自带的名为 prometheus 的任务,从「localhost:9090」地址读取数据。另一个是我们手动添加的名为 node 的任务,其从「localhost:9100」地址读取数据。配置完成后,我们重新启动 Prometheus。
我们打开Prometheus界面,在 搜索框输入 up 并搜索,可以看到我们刚才配置的名为node的节点,存活状态为1,则Prometheus服务和探针已连接成功。
5、Grafana安装
Grafana下载
下载压缩包,解压缩,启动
# 解压Grafana安装包
tar -zxvf grafana-enterprise-8.4.4.linux-amd64.tar.gz
# 运行Grafana
cd grafana-8.4.4
./bin/grafana-server web
# 后台运行
nohup ./grafana-server web > ../logs/grafana.log &
访问 192.168.64.123:3000 , 首次进入 用户名密码为 admin/admin 可修改密码
进入之后的界面
添加数据源
选择数据源类型为 Prometheus
填写链接参数,如果部署在同一台宿主机上可以直接填 localhost:9090
然后滑到底部 save&test 进行保存与测试
返回,添加一个数据看板,这里将直接引入一个模板,后期将仔细讲解自行创建看板的方法。
填入8919,这是一个已经制作好的node_exporter的看板模板,点击Load加载。
选择数据源为Prometheus,点击Import引入。
这个时候我们就可以看到以下页面啦~
由于是刚添加的监控节点,数据还比较少,大家可以等一段时间再观察。
这是我又在124节点添加探针后最终显示的效果。
至此,Prometheus和Grafana的安装部署以及数据互通就完成啦。