简介
Prometheus Server由Go语言编写而成,采取“拉”(pull)的方式,获取多种Prometheus Targets的监控信息。它本身自带一个时序型数据库(TSDB),用于存储拉取到的监控信息,默认的存储时长为168h(7天)。
准备工作
1、关闭虚拟机防火墙。
systemctl stop firewalld
2、关闭selinux
# 临时关闭
setenforce 0
或者永久关闭:打开/etc/selinux/config
,将SELINUX
值修改为disabled
安装部署
由于Prometheus 是用golang开发的,如果使用二进制安装Prometheus的话,首先要安装一个go环境;如果采用docker安装,需要安装docker环境。
二进制部署Prometheus Server
1、解压安装
tar -C /usr/local/ -xvf go1.13.linux-amd64.tar.gz
2、配置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
3、验证
go version
4、下载Prometheus Server:https://prometheus.io/download/
5、解压并安装
tar -C /usr/local/ -xvf prometheus-2.12.0.linux-amd64.tar.gz
ln -sv /usr/local/prometheus-2.12.0.linux-amd64/ /usr/local/Prometheus
6、修改配置文件
vim /usr/local/Prometheus/prometheus.yml
此配置文件下,添加exporter 的IP信息、应用的ip、端口以及actuator路径信息,举例如下:
- job_name: 'prometheus'
#名称
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['172.16.45.18:9100']
#exporer地址
- job_name: 'personauth'
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: '/actuator/prometheus'
#健康检查路径
static_configs:
- targets: ['172.16.45.18:9999']
#应用的IP
7、启动
/usr/local/Prometheus/prometheus --config.file=/usr/local/Prometheus/prometheus.yml &
8、开机自启动
添加/usr/local/Prometheus/prometheus --config.file=/usr/local/Prometheus/prometheus.yml &
至/etc/rc.local
下
Docker部署Prometheus Server
1、拉取镜像
docker pull prometheus
2、启动镜像
docker run -dit -p 9090:9090 --restart=always --privileged=true -v /etc/prometheus:/etc/prometheus --name prometheus Image ID
3、进入容器
docker exec -it Container ID bash
4、prometheus.yml位置在/etc/prometheus/下,如果需要修改配置文件,建议使用VS Code编辑后,复制到/etc/prometheus/下,并重新启动容器。
docker cp prometheus.yml Container ID:/etc/prometheus
docker restart Container ID
5、重启后,docker ps
查看容器状态,如果容器未运行,docker logs Container ID
查看日志。运行失败的原因可能有以下几种:
① 配置文件格式错误,需要重新编辑配置文件。编辑好的配置文件放入/etc/prometheus
下,重启容器。
②当关闭防护墙systemctl stop firewalld
后,再次重启容器报错,再次重启docker.service即可systemctl restart docker.service
有疑问加站长微信联系(非本文作者)