Rocky Linux 9上轻松部署Prometheus监控系统

在当今高度动态和复杂的IT环境中,有效的监控系统对于维护服务稳定性和性能至关重要。Prometheus作为一款开源的监控报警系统,因其灵活性、可扩展性以及丰富的生态系统而在业界广受欢迎。本文将指导读者如何在Rocky Linux 9上部署Prometheus,从零开始搭建一个基础的监控框架,从而能够监控系统和应用程序的健康状况。


从 Prometheus 官网下载二进制文件进行部署

Releases : https://github.com/prometheus/prometheus/releases/tag/v2.53.0

[root@dev-rocky9-shanghai-area1 packages]# wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz # 从 Prometheus 的官方网站下载适用于 Linux 的二进制文件 2.53.0 / 2024-06-16 LTS Release notes
[root@dev-rocky9-shanghai-area1 packages]# tar xvf prometheus-2.53.0.linux-amd64.tar.gz # 解压文件
[root@dev-rocky9-shanghai-area1 packages]# mkdir -p /usr/local/prometheus/   
[root@dev-rocky9-shanghai-area1 packages]# mv prometheus-2.53.0.linux-amd64/* /usr/local/prometheus/  # 移动到程序部署规划位置

创建用户和组

[root@dev-rocky9-shanghai-area1 packages]# groupadd prometheus                       
[root@dev-rocky9-shanghai-area1 packages]# useradd -r -g prometheus -s /sbin/nologin prometheus                                    

设置文件和目录的所有权

[root@dev-rocky9-shanghai-area1 packages]# chown -R prometheus:prometheus /usr/local/prometheus/prometheus         
[root@dev-rocky9-shanghai-area1 packages]# chown prometheus:prometheus /etc/prometheus/prometheus.yml 
[root@dev-rocky9-shanghai-area1 packages]# chown -R prometheus:prometheus /var/lib/prometheus/ 

设置适当的权限

[root@dev-rocky9-shanghai-area1 packages]# chmod 750 /usr/local/prometheus/prometheus
[root@dev-rocky9-shanghai-area1 packages]# chmod 640 /etc/prometheus/prometheus.yml  
[root@dev-rocky9-shanghai-area1 packages]# chmod 750 /var/lib/prometheus/  

部署nginx-prometheus-exporter收集度量数据

[root@dev-rocky9-shanghai-area1 packages]# go install github.com/nginxinc/nginx-prometheus-exporter@latest                                                                                                                                                   go: github.com/nginxinc/nginx-prometheus-exporter@latest: module github.com/nginxinc/nginx-prometheus-exporter: Get "https://proxy.golang.org/github.com/nginxinc/nginx-prometheus-exporter/@v/list": dial tcp 142.251.42.241:443: connect: connection timed out 

[root@dev-rocky9-shanghai-area1 packages]# tar -zxvf nginx-prometheus-exporter_1.1.2_linux_amd64.tar.gz # wget https://github.com/nginxinc/nginx-prometheus-exporter/releases
[root@dev-rocky9-shanghai-area1 packages]# vim /etc/systemd/system/nginx-prometheus-exporter.service 

[Unit]
Description=nginx-prometheus-exporter
After=network.target

[Service]
User=root
Group=root
Type=simple
ExecStart=/data/packages/nginx-prometheus-exporter -nginx.scrape-uri=http://203.0.113.128

[Install]
WantedBy=multi-user.target

[root@dev-rocky9-shanghai-area1 packages]# systemctl daemon-reload                  
[root@dev-rocky9-shanghai-area1 packages]# systemctl enable nginx-prometheus-exporter --now  

配置 Prometheus(任务与示例 01)

配置示例包含了Prometheus的基本配置,包括全局设置和数据抓取配置

[root@dev-rocky9-shanghai-area1 packages]# mkdir -p  /etc/prometheus/                
[root@dev-rocky9-shanghai-area1 packages]# cat /etc/prometheus/prometheus.yml

global:
  scrape_interval:     15s # 定义抓取目标频率,单位是秒,配置每15秒抓取一次数据
  evaluation_interval: 15s # 定义规则评估频率,单位是秒,配置每15秒评估一次报警规则

scrape_configs: # 一组抓取配置,根据这些配置来抓取目标
  - job_name: 'Prometheus_Service_Port_9090' # 定义了一个名为Prometheus_Service_Port_9090的抓取任务
    static_configs: # 静态配置的目标列表,目标是直接抓取数据的地方
      - targets: ['localhost:9090'] # 目标列表,将抓取本地主机上运行在9090端口上的Prometheus服务器自身的指标

  - job_name: 'Nginx_Prometheus_Exporter_9113'
    static_configs:
      - targets: ['203.0.113.128:9113'] # nginx-prometheus-exporter 的默认端口是9113

创建 Systemd 服务

[root@dev-rocky9-shanghai-area1 packages]# vim /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.libraries /usr/local/prometheus/consoles/ \
    --web.console.templates /usr/local/prometheus/consoles/

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

启动和验证 Prometheus

[root@dev-rocky9-shanghai-area1 packages]# systemctl daemon-reload
[root@dev-rocky9-shanghai-area1 packages]# systemctl start prometheus

访问 Prometheus UI

浏览器访问 Prometheus 的 Web UI,通常在 http://203.0.113.128:9090


上一篇
下一篇