Prometheus Installation
本篇文章是关于Prometheus的安装与启动的命令汇总。详情可以参考官方文档。Prometheus官网介绍
环境准备
如Linux环境已经准备好,可以跳过本部分。
如无环境,请参考 CentOS7环境搭建
下载Prometheus
下载 Prometheus;通常选择x86_64版本,复制右边链接地址。 prometheus-2.23.0.linux-amd64.tar.gz
下载到服务器本地:
wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz
#查看下载目录
ll
#看到下面文件,说明下载成功
-rw-r–r--. 1 root root 64298432 Nov 26 20:52 prometheus-2.23.0.linux-amd64.tar.gz
安装Prometheus
#解压安装包
tar xvfz prometheus-2.23.0.linux-amd64.tar.gz
#进入包目录
cd prometheus-2.23.0.linux-amd64
#查看当前目录文件
ll
#目录内容
drwxr-xr-x. 2 3434 3434 38 Nov 26 20:47 console_libraries
drwxr-xr-x. 2 3434 3434 173 Nov 26 20:47 consoles
-rw-r–r--. 1 3434 3434 11357 Nov 26 20:47 LICENSE
-rw-r–r--. 1 3434 3434 3420 Nov 26 20:47 NOTICE
-rwxr-xr-x. 1 3434 3434 88153522 Nov 26 18:58 prometheus
-rw-r–r--. 1 3434 3434 926 Nov 26 20:47 prometheus.yml
-rwxr-xr-x. 1 3434 3434 78172790 Nov 26 19:00 promtool
查看Prometheus监控配置方法,我们找到prometheus.yml文件。
#编辑配置文件
vim prometheus.yml
# my global config
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.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
退出编辑模式
#Press shift + ;
#输入q 或者 q!
:q
启动Prometheus
#启动
./prometheus --config.file=prometheus.yml
#查看Prometheus监听端口是否正常启动
netstat -anplut | grep prometheus
#结果如下,正在监听9090端口
tcp6 0 0 :::9090 ::😗 LISTEN 10045/./prometheus
tcp6 0 0 ::1:9090 ::1:60118 ESTABLISHED 10045/./prometheus
tcp6 0 0 ::1:60118 ::1:9090 ESTABLISHED 10045/./prometheus
开通防火墙
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reload
打开Prometheus
打开浏览器,输入 服务器ip:9090
Prometheus安装完毕。
常用命令
进入到Prometheus目录
cd /root/prometheus-2.23.0.linux-amd64
启动 | 配置 |
---|---|
./prometheus --config.file=prometheus.yml | vim prometheus.yml |
SystemD管理Prometheus
将Prometheus文件挪到 /usr/local/prometheus/下面。
mkdir /usr/local/prometheus
mv /root/prometheus-2.23.0.linux-amd64/* /usr/local/prometheus/
cd /usr/local/prometheus
ll
mkdir -p /var/prometheus/data
添加用户
groupadd prometheus
useradd -g prometheus -s /sbin/nologin prometheus
赋权和创建prometheus运行数据目录
chown -R prometheus:prometheus /usr/local/prometheus/
chown -R prometheus:prometheus /var/prometheus/data
设置开机启动
#创建服务文件
touch /usr/lib/systemd/system/prometheus.service
#修改文件权限
chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
#编辑文件
vim /usr/lib/systemd/system/prometheus.service
将下面内容粘贴到prometheus.service文件中。
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
# Type设置为notify时,服务会不断重启
Type=simple
User=prometheus
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/prometheus/data
Restart=on-failure
[Install]
WantedBy=multi-user.target
编辑完成后保存退出。
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
完成Prometheus开机启动配置。
Prometheus数据流
Prometheus需要作为一个数据源,添加到Grafana上,用来更好的用Dashboard展示被监控对象的性能指标,状态等等。此外,还有Prometheus的各个组件,例如Alert Manager, 中间件Exporter,Query_Exporter等等。
简单架构-抽象数据流:
除了以上简单架构,还可以采用多实例,Pull+Push,负载均衡的高可用架构。需要用到Nginx, Thanos, MINIO, HAProxy, Push Gateway 等等。
擅长Python,Go 语言的,可以自己开发一些Prometheus exporter,来定制一些监控需求。
业务监控数据流
当业务数据存在关系型数据库,如Oracle,可以用Query_Exporter来链接Oracle数据库,配置SQL Selects语句,实现对数据库的查询,以及在Grafana Dashboard上的展示。