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模板】
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐