Prometheus监控工具安装部署

1

组件介绍

Prometheus是一个开放性的监控解决方案,其灵感来自于Google的Borgmon,于2016年5月继k8s后加入CNCF基金会。Prometheus具备易于管理,高效,可扩展,易集成的特点。详细介绍见官网:https://prometheus.io/docs/introduction/overview/

部署环境

  • CDH5.16.2

  • CentOS 7

  • Prometheus部署在CDH集群的工具节点上

2

组件安装

下载linux安装包

地址:https://prometheus.io/download/

Prometheus监控工具安装部署_第1张图片

安装Prometheus

部署服务器上建立文件夹并进行解压

tar -zxvf prometheus-2.17.2.linux-amd64.tar.gz -C /opt/

Prometheus监控工具安装部署_第2张图片

Prometheus监控工具安装部署_第3张图片

采用默认配置的yaml文件进行测试

当前Prometheus是安装在CDH集群的工具节点上的,9090端口被Hbase占用,因此启动的时候,需要指定启动端口号,这里采用9091端口进行启动

./prometheus --config.file=prometheus.yml \
--web.listen-address=:9091 \
--storage.tsdb.path="/u01/prometheus-data"

Prometheus监控工具安装部署_第4张图片

访问部署机器的9091端口

Prometheus监控工具安装部署_第5张图片

Prometheus启动测试完成

配置Prometheus服务

创建prometheus用户和组

groupadd -r prometheus;
useradd -r -g prometheus -s /sbin/nologin -M -c "prometheus Daemons" prometheus;

编写启动脚本,放到prometheus的安装目录下,start_prometheus.sh

# 指定日志存放目录
mkdir -p /var/log/prometheus.log
# 指定数据存放目录,指定数据过期时间(默认15天)
/opt/prometheus-2.17.2.linux-amd64/prometheus --config.file=/opt/prometheus-2.17.2.linux-amd64/prometheus.yml \
--web.listen-address=:9091 \
--web.enable-lifecycle \
--storage.tsdb.path="/u01/prometheus-data" \
--storage.tsdb.retention=15d &>> /var/log/prometheus.log

# 修改启动脚本权限
chmod 755 start_prometheus.sh

新增prometheus.service

# 增加服务
vi /usr/lib/systemd/system/prometheus.service

# 文件内容
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
# 启动脚本
ExecStart=/opt/prometheus-2.17.2.linux-amd64/start_prometheus.sh

[Install]
WantedBy=multi-user.target

启动服务

systemctl enable prometheus.serivce
systemctl start prometheus.service
systemctl status prometheus

更新配置

curl -X POST http://127.0.0.1:9091/-/reload

访问工具节点9091端口,promethus撸通

Prometheus监控工具安装部署_第6张图片

3

使用Node-Exporter收集节点数据

下载Node-Exporter

地址:https://prometheus.io/download/

Prometheus监控工具安装部署_第7张图片

使用Node-Exporter

将下载的tar包传到服务器上,执行解压启动

#解压
tar -zxvf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz -C /opt/
#启动
/opt/node_exporter-1.0.0-rc.0.linux-amd64/node_exporter

Prometheus监控工具安装部署_第8张图片

抓出来的监控指标如下

Prometheus监控工具安装部署_第9张图片

配置node_exporter服务(集群每台机器都配置)

vi /usr/lib/systemd/system/node_exporter.service

# 配置
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
# 启动脚本
ExecStart=/opt/node_exporter-0.18.1.linux-amd64/node_exporter

[Install]
WantedBy=multi-user.target

启动node_exporter服务

# 配置开机启动
systemctl enable node_exporter

systemctl start node_exporter
systemctl status node_exporter

4

Prometheus收集Node_Exporter监控数据

配置yml文件,添加node_exporter收集数据配置

Prometheus监控工具安装部署_第10张图片

重启Prometheus

systemctl restart prometheus.service

访问部署机的9091端口 /targets,查看到node任务的状态是Up,证明Node_Exporter接收数据正常

Prometheus监控工具安装部署_第11张图片

切换到Graph使用PromQL表达式查一下机器的负载

Prometheus监控工具安装部署_第12张图片

CDH集群上最终部署情况如下图

Prometheus监控工具安装部署_第13张图片

5

小结

为什么会选择使用Prometheus呢?在数据平台上会运行很多不同类型的数据处理作业。以Spark为例,批处理任务可以使用SparkListener进行监控指标的抓取,流应用可以使用StreamListener进行监控,将这些指标采集到Prometheus后,可以实现作业级别的细粒度监控。Flink亦支持Prometheus抓取监控指标。再依赖于Prometheus提供的各种Exporter如kafka ES。目的是用Prometheus+Grafana来构建一套大数据的监控平台。

你可能感兴趣的:(Prometheus监控工具安装部署)