Prometheus + Influx +Grafana 监控安装部署
下载监控所需安装包:下载地址 (下载文件需要关注我,当时未找到不需要代价的下载方式,所以下载完毕后取消关注即可)
一. Prometheus安装
# 从下载的安装文件夹内找到安装包:prometheus-2.8.1.linux-amd64.tar.gz,并上传到服务器
# 1. 解压文件
tar -zxvf prometheus-2.8.1.linux-amd64.tar.gz -C /opt/
# 2. 重命名
cd /opt
mv prometheus-2.8.1.linux-amd64 prometheus
cd prometheus
# 3. 启动prometheus (以后台的方式启动)
nohup ./prometheus >/dev/null 2>&1 &
登录:localhost:9090 即可查看,确认prometheus是否正常启动
二. Grafana安装
# 从下载的安装文件夹内找到安装包:grafana-6.3.6-1.x86_64.rpm,并上传到服务器
# 1.使用yum 命令安装
yum localinstall grafana-6.3.6-1.x86_64.rpm
#启动 Grafana
systemctl start grafana-server
#停止 Grafana
systemctl stop grafana-server
#重启 Grafana
systemctl restart grafana-server
#设置开机自启动
systemctl enable grafana-server
登录:localhost:3000 ,首次登录账号密码为:admin/admin
三. 搭建服务器节点监控系统
需求:由于某些原因,我想要监控
192.168.1.111,
192.168.1.112,
192.168.1.113,
192.168.1.114,
192.168.1.115.
五台机器的CPU,IO等系统资源使用情况,我该如何使用Prometheus + Grafana 实现呢?
1. 部署node_exporter
node_exporter 是Prometheus 的一个插件,部署该插件,可以将本地机器的系统资源信息收集并发生给Prometheus
# 从下载的安装文件夹内找到安装包:node_exporter-1.0.1.linux-amd64.tar.gz,并上传到服务器
tar -zxvf node_exporter-1.0.1.linux-amd64.tar.gz -C /opt/
cd /opt/
mv c-1.0.1.linux-amd64/ node_exporter
cd node_exporter/
# 启动node_export
nohup ./node_exporter --web.listen-address=":18999" > /dev/null 2>&1 &
# 注意:--web.listen-address=":18999"
# 端口一定不能被占用,否则会报错,可以手动修改为任意端口
# 此时一台机器已经部署完毕,假如你的集群内配置ssh免密登录,直接使用一下命令
ssh -r /opt/node_exporter root@192.168.1.112:/opt
ssh -r /opt/node_exporter root@192.168.1.113:/opt
ssh -r /opt/node_exporter root@192.168.1.114:/opt
ssh -r /opt/node_exporter root@192.168.1.115:/opt
# 如果没有配置,那你只能一遍一遍的输入密码了
2. 配置Prometheus服务端
# 找到Prometheus安装机器位置
cd /opt/prometheus
# 将下面配置添加到prometheus.yml
**注意:**配置文件内的ip及端口,根据你安装node_exporter的改变而改变
- job_name: 'node_1'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.111:18999']
labels:
instance: node1
- job_name: 'node_2'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.112:18999']
labels:
instance: node2
- job_name: 'node_3'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.113:18999']
labels:
instance: node3
- job_name: 'node_4'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.114:18999']
labels:
instance: node4
- job_name: 'node_5'
scrape_interval: 10s
static_configs:
- targets: ['192.168.1.115:9090']
labels:
instance: node5
3. 重启服务端
# 重启Prometheus
nohup ./prometheus >/dev/null 2>&1 &
# 此时可能服务端会起不来,有可能是因为你配置文件内的格式问题,我下面插入一张我配置图片供参考
4. 配置granafa
# 安装
yum localinstall grafana-6.4.4-1.x86_64.rpm
# 启动grafana
systemctl start grafana-server
# 设置开机自启
systemctl enable grafana-server
1. 登录grafana
2. 添加数据源
3. 导入模板
从下载的安装文件夹内找到文件:node-exporter-server-metrics_rev8.json
4. 呈现界面
至此,集群节点监控系统搭建完毕
四. 搭建Spark监控
参考下面这篇博客:
Grafana 内Spark模板:spark_prometheus_metrics.json (下载的安装包内有)
五. 搭建Flink监控
Flink 内部有实现类去采集监控数据指标,并且将数据写入不同的存储。
Flink 里面提供了 InfluxDBReporter 支持将 Flink 的 metrics 数据直接存储到 InfluxDB
1. 部署InfluxDB
# 从下载的安装文件夹内找到安装包:influxdb-1.1.0.x86_64.rpm
# 执行命令:
yum localinstall influxdb-1.1.0.x86_64.rpm
# 启动 influxdb 命令
systemctl start influxdb
# 重启 influxdb 命令
systemctl restart influxd
# 停止 influxdb 命令
systemctl stop influxd
# 设置开机自启动
systemctl enable influxdb
nohup influxd -config /etc/inlfux/influxdb.conf > influxdb.log 2>&1 &
2. 创建数据库
# 进入 influxDB数据库
influx
# 创建数据库
create database flink
# 进入数据库
use flink
# 查看指标(对应mysql内就是表)
show MEASUREMENTS
3. 配置flink
在 flink-conf.yaml 中配置的样例如下:
metrics.reporter.influxdb.class: org.apache.flink.metrics.influxdb.InfluxdbReporter
metrics.reporter.influxdb.host: 192.168.0.115
metrics.reporter.influxdb.port: 8086
metrics.reporter.influxdb.db: flink
# 如果influx没有配置密码登录,可以省略下面两行
metrics.reporter.influxdb.username: test
metrics.reporter.influxdb.password: test
需要将 flink-metrics-influxdb-1.9-SNAPSHOT.jar
依赖放到 lib 目录下的
flink-metrics-influxdb-1.9-SNAPSHOT.jar
位于 $FLINK_HOME/opt
目录下
随后启动flink程序,如果配置都没问题,最终Flink程序的指标会在Prometheus中出现。
4. 配置Granafa
flink 指标尚未研究透彻,模板待定
六. 总结
Prometheus + Influx + Grafana 还可以监控其他的程序。比如说监控服务器上某一进程是否挂了。你自己可以写代码去获取该进程的状态,然后解析其状态并将数据回写到Pushgateway,最后通过Grafana呈现此程序的状态。