Prometheus安装部署添加PushGateway监控以及主机与进程监控
Prometheus安装部署及进程与主机监控
Prometheus安装部署以及主机监控
1 .Prometheus的安装
官网:https://prometheus.io/
下载地址:https://prometheus.io/download/
1.1下载linux安装包Prometheus2.35.0 server的二进制包,
解压并且添加基本的配置即可正常启Prometheus Server现在最新的是2.3.8
Prometheus基于Golang编写,编译后的软件包,不依赖于任何的第三方依赖。
1.1 下载上传安装包到服务器
我这边用xftp或者命令直接上传到服务器,以及完成
mkdir /data/prometheus_watcher/bag
1.2 创建解压目录并将安装包解压。
创建目录
mkdir /data/prometheus_watcher/bag
解压
tar xvf prometheus-2.35.0.linux-amd64.tar.gz -C /data/prometheus_watcher
修改目录名
mv /data/prometheus_watcher/prometheus-2.35.0-rc0.linux-amd64 /data/prometheus_watcher/prometheus
Prometheus这里就基本安装完成,后面就是修改配置并添加相关的监控
1.3 启动Prometheus Server
cd /data/prometheus_watcher/prometheus
nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&1 &
1.5.6打开web页面查看
浏览器输入:http://ip:9090/
1.4 配置开机自启动
vim /usr/lib/systemd/system/prometheus.service
#这是rhel7版本,rhel6添加服务与rhel7不一样,需要注意,centos同理,在文件中写入如下内容
[Unit]
Description=Prometheus Monitoring System
Documentation=https://prometheus.io
[Service]
Type=simple
ExecStart=/data/prometheus_watcher/prometheus/prometheus --storage.tsdb.path=/data/prometheus_watcher/prometheus/data --config.file=/data/prometheus_watcher/prometheus/prometheus.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意 :/data/prometheus_watcher 是安装目录
1.5 启动服务+验证
systemctl daemon-reload #重新加载配置
systemctl enable prometheus.service #加入开机自启
systemctl start prometheus.service #启动
systemctl ststus prometheus.service #查看状态
2 添加对PushGateway 监控
对PushGateway 监控首先需要安装PushgatewayPrometheus在正常情况下是采用拉模式从产生metric的作业
或者exporter(比如专门监控主机的NodeExporter)拉取监控数据。但是我们要监控的是Flink on YARN作业,
想要让Prometheus自动发现作业的提交、结束以及自动拉取数据显然是比较困难的。PushGateway就是一个中转
组件,通过配置Flink on YARN作业将metric推到PushGateway,Prometheus再从PushGateway拉取就可以了。
2.1下载在上传pushgateway-1.4.3.linux-amd64.tar.gz到服务器
下载地址:https://prometheus.io/download/
2.2 解压并修改目录名
tar xvf pushgateway-1.4.3.linux-amd64.tar.gz -C /data/prometheus_watcher
mv /data/prometheus_watcher/pushgateway-1.4.3.linux-amd64 /data/prometheus_watcher/pushgateway
2.3 Pushgateway目录下执行启动命令
cd /data/prometheus_watcher/pushgateway
nohup ./pushgateway --web.listen-address :9091 > ./pushgateway.log 2>&1 &
2.4 、prometheus配置文件prometheus.yml中添加pushgateway监控的相关配置 在scrape_configs配置项下添加配置。
vim /data/prometheus_watcher/prometheus/prometheus.yml
static_configs:
- targets: ["localhost:9090"]
2.5 添加 PushGateway 监控配置
job_name: 'pushgateway'
static_configs:
- targets: ['172.31.39.162:9091']
labels:
温馨提示:(格式一定得如图上所致,不然启动会报错)
配置说明:
若出现如下内容代表文件配置正确
Checking prometheus.yml
SUCCESS: 0 rule files found
1、global配置块:控制Prometheus服务器的全局配置 ➢ scrape_interval:配置拉取数据的时间间隔,默认为1分钟。 ➢ evaluation_interval:规则验证(生成alert)的时间间隔,默认为1分钟。
2、rule_files配置块:规则配置文件
3、scrape_configs配置块:配置采集目标相关, prometheus监视的目标。Prometheus自身的运行信息可以通过HTTP访问,所以Prometheus可以监控自己的运行数据。 ➢ job_name:监控作业的名称 ➢ static_configs:表示静态目标配置,就是固定从某个target拉取数据 ➢ targets:指定监控的目标,其实就是从哪儿拉取数据。Prometheus会从http://localhost:9090/metrics上拉取数据。 Prometheus是可以在运行时自动加载配置的。启动时需要添加:–web.enable-lifecycle 2.2 安装Pushgateway Prometheus在正常情况下是采用拉模式从产生metric的作业或者exporter(比如专门监控主机的NodeExporter)拉取监控数据。但是我们要监控的是Flink on YARN作业,想要让Prometheus自动发现作业的提交、结束以及自动拉取数据显然是比较困难的。PushGateway就是一个中转组件,通过配置Flink on YARN作业将metric推到PushGateway,Prometheus再从PushGateway拉取就可以了。
2.6 重启Prometheus Server
systemctl restart prometheus.service
1.5.6打开web页面查看
浏览器输入:http://ip:9090/
prometheus、pushgateway都是up状态,表示安装启动成功
3 添加对主机的监控(Node Exporter监控)
Prometheus的架构设计中,Prometheus Server主要负责数据的收集,存储并且对外提供数据查询支持,而实际的监控样本数据的收集则是由Exporter完成。因此为了能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。 Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。 为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用Node Exporter。Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从https://prometheus.io/download/ 获取最新的node exporter版本的二进制包。
3.1 Node Exporter安装【需要被监控的服务器安装】
1.对所需要监控的主机在Node Exporter
上传node_exporter-1.3.1.linux-amd64.tar.gz到/data/server_watcher目录下
2.解压到/data/server_watcher目录下
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /data/server_watcher/
3 修改目录名
mv/data/server_watcher/node_exporter-1.3.1.linux-amd64 /data/server_watcher/node_exporte
4启动并通过页面查看是否成功
cd /data/server_watcher/node_exporte
执行./node_exporter
最好用nohup去启动
报错的话请关闭防火墙跟关闭selinux
5防火墙
systemctl status firewalld 查看防火墙状态
Active: inactive (dead) inactive是关闭状态
systemctl stop firewalld 临时关闭防火墙
systemctl disable firewalld 永久关闭防火墙
6关闭SELinux
setenforce 0 #临时关闭selinux
sed -i ‘s/^ *SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config #永久关闭(需重启系统)
3.2 设置为开机自启
centos7系统配置路径 /etc/systemd/system/node_exporter.service
vim /etc/systemd/system/node_exporter.service
[Unit]
Description=node_export
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
Execstart=/data/server_watcher/node_exporter/node_exporter #注意你安装的版本以及路径跟你安装的相同即可
Restart=on-failure
[Install]
WantedBy=multi-user.target
centos6系统配置自启动
vi /etc/init.d/node_exporter
#在文件中添加如下内容
#!/bin/bash
case "$1" in
start)
nohup /data/server_watcher/node_exporter/node_exporter >/data/server_watcher/node_exporter/logs/node_exporter.log 2>&1 &
echo "node_exporter started"
;;
stop)
ps -ef | grep node_exporter | grep -v grep | awk '{print "kill -9 "$2}' | sh
echo "node_exporter stoped"
;;
esac
#配置文件可执行权限
chmod +x /etc/init.d/node_exporter
#将node_exporter添加到系统服务
chkconfig --add node_exporter
#开启或者关闭node_exporter.service
service node_exporter start
service node_exporter stop
#开启node_exporter.service自启动
chkconfig node_exporter on
3.3启动服务+验证
systemctl daemon-reload #重新加载配置
systemctl enable node_exporter.service #加入开机自启
systemctl start node_exporter.service #启动
systemctl stop node_exporter.service #停止
3.4 监控端主机监控配置
prometheus配置文件prometheus.yml中添加主机(node_exporter)监控的相关配置 在scrape_configs配置项下添加配置。
方法一:直接在prometheus.yml配置
vim /data/prometheus_watcher/prometheus/prometheus.yml
- job_name: '测试环境服务器'
static_configs:
○ targets: ['test-srv1:9100', 'test-db1:9100']
- job_name: 'beta环境服务器'
static_configs:
○ targets: ['beta-db1:9100', 'beta-srv1:9100']
- job_name: 'Audit环境服务器'
static_configs:
○ targets: ['audit-srv1:9100']
- job_name: '开发环境服务器'
static_configs:
○ targets: ['develop:19100']
方法二:上面是直接添加到prometheus.yml文件的还可以将这些主机单独以文件形式配置方便管理
vim /data/prometheus_watcher/prometheus/prometheus.yml
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "linuxnode"
file_sd_configs:
- files: ['./conf/node.yml']
refresh_interval: 5s
- job_name: "mysqlnode"
file_sd_configs:
- files: ['./conf/mysql.yml']
refresh_interval: 5s
然后在./conf/node.yml文件里配置主机信息
vim /data/prometheus_watcher/prometheus/conf/node.yml
内容如下:
- targets:
- "release-op1:9100"
labels:
hostname: release-op1
- targets:
- "release-srv2:9100"
labels:
hostname: release-srv2
- targets:
- "release-srv3:9100"
labels:
hostname: release-srv2
- targets:
- "release-ck:9100"
labels:
hostname: release-ck
3.5重新启动prometheus服务
重启prometheus服务或采用热加载
systemctl restart prometheus.service
浏览器输入:http://ip:9090/
1.7.2点击Status,选中Targets
node exporter都是up状态,表示安装启动成功
下面将主机监控添加到grafana界面
4 安装Grafana
grafana 是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。
下载地址:https://grafana.com/grafana/download
4.1 安装
上传并解压
将grafana-8.5.0.linux-amd64.tar.gz上传至/data/prometheus_watcher目录下,
解压:tar -zxvf grafana-8.5.0.linux-amd64.tar.gz -C /data/prometheus_watcher/
mv /data/prometheus_watcher/grafana-8.5.0 /data/prometheus_watcher/grafana
4.2 配置开机自启
vim /etc/systemd/system/grafana-server.service 或者 /usr/lib/systemd/system/grafana-server.service
[Unit]
Description=Grafana
After=network.target
[Service]
Type=notify
ExecStart=/data/prometheus_watcher/grafana/bin/grafana-server --homepath=/data/prometheus_watcher/grafana --config=/data/prometheus_watcher/grafana/conf/sample.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
4.3 启动服务+验证
systemctl daemon-reload #重新加载配置
systemctl enable grafana-server.service #加入开机自启
systemctl start grafana-server.service #启动
systemctl ststus grafana-server.service #查看状态
4.4 Grafana添加数据源
1 打开web:http://ip:3000,默认用户名和密码:admin
2、继续
3 点击添加按钮:
3 找到Prometheus,点击Select
5 配置Prometheus Server地址:
点击下方的Save&Test就可以了
grafana社区鼓励用户分享Dashboard,通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板。 Grafana中所有的Dashboard通过JSON进行共享,下载并且导入这些JSON文件,就可以直接使用这些已经定义好的Dashboard:
搜索 Node Exporter 选中跳转页面后可以直接复制id 也可以下载json文件
7 在Grafana中导入模板:
8 效果
5 进程监控
5.1 被监控端安装process_exporter
下载地址:https://github.com/ncabatoff/process-exporter/releases/
下载
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.10/process-exporter-0.7.10.linux-arm64.tar.gz
解压
tar xvf process-exporter-0.7.10.linux-arm64.tar.gz -C /data/prometheus_watcher/
改目录名
mv process-exporter-0.7.10.linux-arm64 process-exporter
5.2 配置开机自启
vim /usr/lib/systemd/system/process_exporter.service
[Unit]
Description=Prometheus exporter for processors metrics, written in Go with pluggable metric collectors.
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/data/prometheus_watcher/process-exporter/process-exporter -config.path=/data/prometheus_watcher/process-exporter/process-exporter.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
5.3 启动服务+验证
systemctl daemon-reload #重新加载配置
systemctl enable process_exporter.service #加入开机自启
systemctl start process_exporter.service #启动
systemctl stastus process_exporter.service #查看状态
5.4 被监控端添加监控进程
vim /data/prometheus_watcher/process-exporter/process-exporter.yaml
process_names:
- name: "{{.Matches}}"
cmdline:
- 'eventsrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'usersrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'paysrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'ossagent.ini'
- name: "{{.Matches}}"
cmdline:
- 'callbacksrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'targetsrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'gatesrv.ini'
- name: "{{.Matches}}"
cmdline:
- 'gamesrv.ini'
5.5 prometheus添加进程监控配置
#Src_Process_Monitor
- job_name: 'release-srv2-process'
file_sd_configs:
- files:
- conf/release-srv2_process/process-*.yaml
refresh_interval: 1m
- job_name: 'release-srv3-process'
file_sd_configs:
- files:
- conf/release-srv3_process/process-*.yaml
refresh_interval: 1m
- targets:
- release-srv3:9256
labels:
app: release-srv3-process
5.6 重新启动prometheus服务
重启prometheus服务或采用热加载
systemctl restart prometheus.service
浏览器输入:http://ip:9090/
点击Status,选中Targets
5.7 将进程监控添加到grafana界面
id 4202【通过https://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard模板】
更多推荐
所有评论(0)