一、Prometheus简介
Prometheus(普罗米修斯)是一套开源的系统监控报警框架。它受启发于Google的Brogmon监控系统,由工作在SoundCloud的前google员工在年创建,作为社区开源项目进行开发,并于年正式发布。基于golang语言开发。
年,Prometheus正式加入CloudNativeComputingFoundation(CNCF)基金会的项目,成为受欢迎度仅次于Kubernetes的项目。年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。
1、特点
提供多维度数据模型和灵活的查询方式,通过将监控指标关联多个tag,来将监控数据进行任意维度的组合,并且提供简单的PromQL查询方式,还提供HTTP查询接口,可以很方便地结合Grafana等GUI组件展示数据。
在不依赖外部存储的情况下,支持服务器节点的本地存储,通过Prometheus自带的时序数据库,可以完成每秒千万级的数据存储;不仅如此,在保存大量历史数据的场景中,Prometheus可以对接第三方时序数据库和OpenTSDB等。
定义了开放指标数据标准,以基于HTTP的Pull方式采集时序数据,只有实现了Prometheus监控数据才可以被Prometheus采集、汇总、并支持Push方式向中间网关推送时序列数据,能更加灵活地应对多种监控场景。
支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集。Prometheus目前已经支持Kubernetes、etcd、Consul等多种服务发现机制。
易于维护,可以通过二进制文件直接启动,并且提供了容器化部署镜像。
支持数据的分区采样和联邦部署,支持大规模集群监控。
2、与Zabbix的比较
3、Grafana介绍
Grafana是一个开源的监控数据分析和可视化套件。最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用于其他需要数据可视化分析的领域。Grafana可以帮助你查询、可视化、告警、分析你所在意的指标和数据。可以与整个团队共享,有助于培养团队的数据驱动文化。
二、监控系统安装
软件部署情况:
..64.Prometheus、Grafana、node-exporter
..64.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-xzfgo1.18.3.linux-amd64.tar.gz
#配置系统环境参数
vim/etc/profile
#在文件的最后添加如下内容:
exportPATH=$PATH:/usr/local/go/bin
#刷新系统配置文件
source/etc/profile
#使用goversion命令来验证安装是否成功!
goversion
goversiongo1.18.3linux/amd64
#得到以上回显则配置成功!
2、Prometheus安装
Prometheus下载地址
下载压缩包,解压缩,启动
#对软件包进行解压
tar-zxvfprometheus-2.36.1.linux-amd64.tar.gz
#更改名字根据自己情况
mv/opt/prometheus-2.34.0.linux-amd64/opt/prometheus
#进入软件目录
cd/opt/prometheus
#查看软件版本
./prometheus--version
#得到以下结果
prometheus,version2.36.1(branch:HEAD,revision:3c0adecf23e91f7efbf7d)
builduser:root
e59cbuilddate:-15:25:21
goversion:go1.18.3
platform:linux/amd64
#启动Prometheus
./prometheus
#至此Prometheus的安装和启动已经完成了~可以查看端口是否启用
netstat-tulpn
grep
访问服务器..64.:即可打开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管理,要是新服务的服务程序配置文件生效,需重新加载。
systemctldaemon-reload
#启动prometheus服务
systemctlstartprometheusd
查看systemctl启动服务的日志信息,可通过以下命令
#显示所有的systemctl的日志
journalctl
#查看某个服务的日志
journalctl-u服务名
#实时输出某个服务的日志
journalctl-fu服务名
3、node-exporter探针安装
本文是将node-exporter安装在prometheus的宿主机上,对宿主机进行监控。可以将prometheus安装在其他服务器上,在被监控的服务器上安装node-exporter。node-exporter是prometheus提供的一个可以采集到主机信息的应用程序,它能采集机器的cpu、内存、磁盘等信息。
Prometheus下载地址选在下载node-exporter
下载压缩包,解压缩,启动
#对主机探针安装包进行解压
tar-zxvfnode_exporter-1.3.1.linux-amd64.tar.gz
#更改一个简单的名字
mvnode_exporter-1.3.1.linux-amd64node_exporter
#运行主机探针
cdnode_exporter/
./node_exporter
探针启动后会显示探针的端口号,默认node_exporter的监听端口为9
#也可以使用此命令启动,指定监听端口为
./node_exporter--web.listen-address.0.0.1:
启动之后,我们可以访问..64.:9
点击Metrics,可以看到服务器的一些性能指标数据
node-exporter启动也是前台启动,如果ctrl+c后,服务就会停掉,我们也配置下服务
#编辑文件
vim/usr/lib/systemd/system/node-exporter.service
#文件内容
[Unit]
Description=Thisisprometheusnodeexporter
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
#启动服务
systemctldaemon-reload
systemctlstartnode-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:]
#新添加的数据#采集nodeexporter监控数据
-job_name:node
static_configs:
-targets:[localhost:9]
配置文件中配置了两个任务。一个是系统自带的名为prometheus的任务,从「localhost:」地址读取数据。另一个是我们手动添加的名为node的任务,其从「localhost:9」地址读取数据。配置完成后,我们重新启动Prometheus。
我们打开Prometheus界面,在搜索框输入up并搜索,可以看到我们刚才配置的名为node的节点,存活状态为1,则Prometheus服务和探针已连接成功。
5、Grafana安装
Grafana下载
下载压缩包,解压缩,启动
#解压Grafana安装包
tar-zxvfgrafana-enterprise-8.4.4.linux-amd64.tar.gz
#运行Grafana
cdgrafana-8.4.4
./bin/grafana-serverweb
#后台运行
nohup./grafana-serverweb../logs/grafana.log
访问..64.:,首次进入用户名密码为admin/admin,可修改密码
进入之后的界面
添加数据源
选择数据源类型为Prometheus
填写链接参数,如果部署在同一台宿主机上可以直接填localhost:
然后滑到底部savetest进行保存与测试
返回,添加一个数据看板,这里将直接引入一个模板,后期将仔细讲解自行创建看板的方法。
填入,这是一个已经制作好的node_exporter的看板模板,点击Load加载。
选择数据源为Prometheus,点击Import引入。
这个时候我们就可以看到以下页面啦~
由于是刚添加的监控节点,数据还比较少,大家可以等一段时间再观察。
这是我又在节点添加探针后最终显示的效果。
至此,Prometheus和Grafana的安装部署以及数据互通就完成啦。