Prometheus+Grafana+Alertmanager监控系统部署(一)

前段时间部署了Prometheus的监控系统,现在把部署的过程和遇到的问题做一个分享。
Prometheus+Grafana+Alertmanager监控系统部署(一)_第1张图片

主要模块:

1)Prometheus Server: 用于收集和存储时间序列数据。

2)Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。

3)Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端,所有向promtheus server提供监控数据的程序都可以被称为exporter

4)Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。

5)Grafana:监控仪表盘,可视化监控数据

6)pushgateway: 各个目标主机可上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据。


Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval,Storage,PromQL
Retrieval负责在活跃的target主机上抓取监控指标数据

Storage存储主要是把采集到的数据存储到磁盘中

PromQL是Prometheus提供的查询语言模块。

怎么采集监控数据

要采集目标的监控数据,首先就要在被采集目标地方安装采集组件,这种采集组件被称为Exporter。prometheus.io官网上有很多这种exporter,官方 exporter列表。

采集完了怎么传输到Prometheus?

采集了数据,要传输给prometheus。怎么做?
Exporter 会暴露一个HTTP接口,prometheus通过Pull模式的方式来拉取数据,会通过HTTP协议周期性抓取被监控的组件数据。
不过prometheus也提供了一种方式来支持Push模式,你可以将数据推送到Push Gateway,prometheus通过pull的方式从Push Gateway获取数据。

主要流程

1)Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;

2)Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;

3)Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager

4)Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等

5)Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据

6)Grafana可接入prometheus数据源,把监控数据以图形化形式展示出


一、开始部署(prometheus监控端)

实验所需的软件包
链接:https://pan.baidu.com/s/14IoLVCoRrMpo2iNprKYFEA 
提取码:uqz4

部署监控服务器,先将prometheus_soft.tar.gz压缩包拷贝至promethues的家目录下,然后安装

[root@prometheus ~]# tar -xf prometheus_soft.tar.gz 
[root@prometheus ~]# cd prometheus_soft/
[root@prometheus prometheus_soft]# tar -xf prometheus-2.17.2.linux-386.tar.gz 
[root@prometheus prometheus_soft]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus

修改配置文件,让promethues自己监控自己

[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml

Prometheus+Grafana+Alertmanager监控系统部署(一)_第2张图片
检查配置文件是否修改正确

[root@prometheus ~]# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml	
  SUCCESS: 0 rule files found

修改/usr/lib/systemd/system/prometheus.service 利用systemd管理prometheus服务

[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/prometheus/data
[Install]
WantedBy=multi-user.target

设置为开启自启并立即启动服务

[root@prometheus ~]# systemctl enable prometheus.service --now	

网页测试 localhost:9090 可以看到监控主机
Prometheus+Grafana+Alertmanager监控系统部署(一)_第3张图片

二、开始部署(prometheus被监控端)

解压缩prometheus_soft.tar.gz

[root@node1 ~]# tar -xf prometheus_soft.tar.gz 
[root@node1 ~]# cd prometheus_soft/
[root@node1 prometheus_soft]# tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz 
[root@node1 prometheus_soft]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter

也编写service服务文件

[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target

启动服务

[root@node1 ~]# systemctl enable node_exporter --now

三、修改监控端服务器配置

如果想让监控服务器能够监控node1,还需要修改prometheus监控端配置,添加node1的监控配置
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml

Prometheus+Grafana+Alertmanager监控系统部署(一)_第4张图片
重庆prometheus服务查看web页面
Prometheus+Grafana+Alertmanager监控系统部署(一)_第5张图片

你可能感兴趣的:(运维)