注:本文基于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 "^$|^[\t| ]*#" 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来查看具体有哪些指标,
在这里插入图片描述
其实,prometheus自带的web界面是比较简单的,我们通常配合Grafana来作为dashboard。关于grafana的使用我们下一篇再介绍。

GitHub 加速计划 / pr / prometheus
6
0
下载
Prometheus是一个开源的监控和警报工具,用于监控Kubernetes应用程序和云基础设施的性能和可用性。 - 功能:监控;警报;性能管理;可用性管理;Kubernetes应用程序管理。 - 特点:高可用性;高性能;灵活的数据采集;与Kubernetes集成。
最近提交(Master分支:4 个月前 )
2ffaff82 OTLP receiver: Allow colons in non-standard units 4 天前
475b7ff2 Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐