Prometheus搭建

注:本文基于CentOS 7.2编写

1、下载prometheus安装包

我们以官网最新版本为例,官网地址,https://prometheus.io/download/

wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz

如果觉得官网下载实在慢,可以通过以下链接下载,
prometheus-2.16.0.linux-amd64.tar.gz

下载完压缩包后我们直接解压,并放到/usr/local/prometheus目录,便于管理,

[root@centos7 prometheus]# tar -xf prometheus-2.16.0.linux-amd64.tar.gz
[root@centos7 prometheus]# ls
prometheus-2.16.0.linux-amd64 prometheus-2.16.0.linux-amd64.tar.gz
[root@centos7 prometheus]# mkdir -p /usr/local/prometheus
[root@centos7 prometheus]# mv prometheus-2.16.0.linux-amd64/* /usr/local/prometheus
[root@centos7 prometheus]# cd /usr/local/prometheus
[root@centos7 prometheus]# ./prometheus --version
prometheus, version 2.16.0 (branch: HEAD, revision: b90be6f32a33c03163d700e1452b54454ddce0ec)
build user: root@7ea0ae865f12
build date: 20200213-23:50:02
go version: go1.13.8

2、配置Prometheus

[root@centos7 prometheus]# grep -vE "^$|^[ | ]*#" prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

主要有四个字段,

  • global:全局配置
    scrape_interval:设置prometheus守护进程拉取agent信息时间间隔
    evaluation_interval:设置根据后面rule_files字段定义的规则计算的时间间隔

  • alerting:告警配置
    用于配置告警信息,需要通过alertmanagers插件实现,这里暂时未配置

  • rule_files:规则配置
    主要用于触发告警,这里也暂未配置

  • scrape_configs:抓取目标机器配置
    job_name:标识这条记录,也就是这个配置内的记录都会添加上该字段
    targets:设置目标机地址

3、启动服务

鉴于安装是通过二进制文件安装,没有service文件,因此,为了便于管理,我们增加一个对应的systemd服务这样启动和开机启动就更方便了。

cat > /usr/lib/systemd/system/prometheus.service <<EOF
[Unit]
Description=prometheus
After=network.target

[Service]
ExecStart=/usr/local/prometheus/prometheus
--config.file=/usr/local/prometheus/prometheus.yml
--storage.tsdb.path=/var/lib/prometheus
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

设置配置文件路径以及本地时序数据库数据存放路径,因为prometheus只是热更新配置,因此增加reload字段。

然后就可以通过systemctl命令设置开机启动,并启动服务了。

systemctl enable prometheus && systemctl start prometheus

一切正常的情况下,就能在/var/log/messages中看到如下打印,

Mar 10 10:08:55 centos7 systemd: Started prometheus.
Mar 10 10:08:55 centos7 systemd: Starting prometheus...
...
Mar 10 10:08:55 centos7 prometheus: level=info ts=2020-03-10T14:08:55.895Z caller=main.go:630 msg="Server is ready to receive web requests."

4、访问web

Prometheus自带一个比较简单的Web界面,访问http://your-ip:9090 即可。
在这里插入图片描述因为默认配置里我们只监控了prometheus,因此在target页面也就只有一个项目,
在这里插入图片描述

5、增加服务器监控

为了能知道本机的一些信息,比如,CPU使用率,内存,磁盘IO等,我们需要增加一个插件来帮我们收集信息——node_exporter,其实也就是一个系统信息采集的客户端。

  1. 安装node_exporter

同样我们从官网下载二进制安装包,

wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

如果嫌弃官网下载慢,可以通过下面链接下载,
node_exporter-0.18.1.linux-amd64.tar.gz

同样,解压后移动到/usr/local/prometheus目录,便于管理,

[root@centos7 prometheus]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@centos7 prometheus]# mkdir -p /usr/local/prometheus/node_exporter
[root@centos7 prometheus]# mv node_exporter-0.18.1.linux-amd64/* /usr/local/prometheus/node_exporter/
[root@centos7 prometheus]# cd /usr/local/prometheus/node_exporter
[root@centos7 node_exporter]# ls
LICENSE node_exporter NOTICE

 
  1. 启动服务

为了统一管理,我们仍然使用systemctl来管理,创建个systemd的服务文件,

cat > /usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
After=network.target

[Service]
ExecStart=/usr/local/prometheus/node_exporter/node_exporter
ExecReload=/bin/kill -s HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

之后就通过systemctl来设置开机启动和启动服务,

[root@centos7 ~]# systemctl enable node_exporter
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@centos7 ~]# systemctl start node_exporter

node_exporter默认开启了很多信息的采集,主要是proc文件系统下的各种参数,详细配置可以参考该链接,https://github.com/prometheus/node_exporter

  1. 增加prometheus监控目标

客户端配置好了,还需要服务端来拉取数据,因此我们还需要在prometheus中增加配置,主要涉及scrape_configs字段配置,原先我们只配置了监控prometheus本身,现在我们将服务器也添加进去,注意node_exporter的端口为9100,

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'my-server' #新增的配置
static_configs:
- targets: ['localhost:9100']

更新了配置,自然要重新启动服务,

systemctl restart prometheus

 这时候我们再看target页面,就能看到两个项目了,

在这里插入图片描述

6、web查看监控信息

配置好后,我们就能在prometheus的web界面来查看监控信息了,比如内存使用率,
在这里插入图片描述

7、node_exporter指标

node_exporter有很多指标,详细配置可以通过访问http://yourip:9100/metrics来查看具体有哪些指标,
在这里插入图片描述

原文地址:https://www.cnblogs.com/wendy-0901/p/14167165.html