Linux部署 Prometheus和 Grafana实现可视化监控

Linux部署 Prometheus和 Grafana实现可视化监控在这里插入图片描述

没有人的成功是一蹴而就的,别人的失败,既是经验也是教训,教会我们成长,可以让自己少走许多弯路,感恩生命中的每一次相遇,不论得到失去都让我们体会人生的意义。

下载 Prometheus

从 Prometheus 官方网站下载最新的 Prometheus 二进制文件:

cd /usr/local/src
 wget https://github.com/prometheus/prometheus/releases/download/v2.54.0-rc.1/prometheus-2.54.0-rc.1.linux-amd64.tar.gz

解压 Prometheus

解压下载的文件并重命名解压后的目录为 prometheus

 tar -xvf prometheus-2.44.0.linux-amd64.tar.gz
 mv prometheus-2.44.0.linux-amd64 prometheus

安装nginx-prometheus-exporter

下载并安装 nginx-prometheus-exporter

首先,从 GitHub 的 Prometheus 官方页面下载最新的 nginx-prometheus-exporter

export VERSION=$(curl -s https://api.github.com/repos/nginxinc/nginx-prometheus-exporter/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/${VERSION}/nginx-prometheus-exporter-${VERSION}-linux-amd64.tar.gz

解压下载的文件:

mkdir nginx-prometheus-exporter
tar -xzf nginx-prometheus-exporter_1.3.0_linux_amd64.tar.gz -C ./nginx-prometheus-exporter

将二进制文件移动到 /usr/local/bin 目录:

sudo mv ./nginx-prometheus-exporter/nginx-prometheus-exporter /usr/local/bin/

配置 NGINX

为了让 nginx-prometheus-exporter 能够从 NGINX 中收集指标,你需要在 NGINX 配置文件中启用 stub_status 模块。

打开 NGINX 配置文件:

sudo vi /etc/nginx/nginx.conf

server 块内添加以下配置:

location /nginx_status {
        nginx_status;
        allow all;
        deny all;
    }

保存并退出编辑器,然后重新加载 NGINX 配置:

sudo systemctl reload nginx

配置和运行 nginx-prometheus-exporter

你可以通过以下命令运行 nginx-prometheus-exporter

nohup /usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://127.0.0.1/nginx_status &>/dev/null &

5. 验证配置

在浏览器中访问以下地址,确保 exporter 正在运行并导出指标:

http://<your-server-ip>:9113

6. (可选)设置 systemd 服务

你可以创建一个 systemd 服务,以确保 nginx-prometheus-exporter 随系统启动:

sudo vi /etc/systemd/system/nginx-prometheus-exporter.service

添加以下内容:

[Unit]
Description=NGINX Prometheus Exporter
After=network.target

[Service]
ExecStart=/usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://127.0.0.1/nginx_status
Restart=always

[Install]
WantedBy=multi-user.target

保存并退出后,启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable nginx-prometheus-exporter
sudo systemctl start nginx-prometheus-exporter

现在, nginx-prometheus-exporter 应该已经成功安装并配置好,可以通过 Prometheus 进行监控。

部署 node_exporter

1. 下载解压安装包

首先,你需要从 Prometheus 的 GitHub 页面或官方网站下载 node_exporter 的最新版本。

 tar -xvf node_exporter-1.8.2.linux-amd64.tar.gz  -C ./
 mv  mv node_exporter-1.8.2.linux-amd64 node_exporter

2. 移动可执行文件

将解压后的 node_exporter 可执行文件移动到系统的可执行路径中,比如 /usr/local/bin/

sudo mv ./node_exporter/node_exporter /usr/local/bin/

3. 创建系统服务

node_exporter 创建一个 systemd 服务文件,以便它能够在系统启动时自动运行。

sudo tee /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=default.target
EOF

4. 启动服务

为了安全起见,创建一个独立的用户来运行 node_exporter,然后启动并启用服务。

# 启动并启用服务
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

5. 验证安装

你可以通过访问以下 URL 验证 node_exporter 是否正常运行(假设 node_exporter 在默认的 9100 端口运行):

http://<your_server_ip>:9100

image-20240809120332877

配置 Prometheus

编辑 prometheus.yml 配置文件:

 vi /usr/local/src/prometheus/prometheus.yml

添加以下内容(这是一个基本配置):

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
      
  - job_name: 'nginx'
    static_configs:
      - targets: ['localhost:9113']
      
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['localhost:9100']

创建 systemd 服务文件

创建 prometheus.service 文件:

 vi /etc/systemd/system/prometheus.service

添加以下内容:

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

[Service]
User=root
Group=root
Type=simple
ExecStart=/usr/local/src/prometheus/prometheus \
  --config.file /usr/local/src/prometheus/prometheus.yml \
  --storage.tsdb.path /usr/local/src/prometheus/data

[Install]
WantedBy=multi-user.target

注意: 如果你决定使用 prometheus 用户而不是 root,将 User=rootGroup=root 修改为 User=prometheusGroup=prometheus,并确保相应的文件和目录权限正确。

启动并启用 Prometheus 服务

  1. 重新加载 systemd 配置

     systemctl daemon-reload
    
  2. 启动 Prometheus 服务

     systemctl start prometheus
    
  3. 启用 Prometheus 服务开机自启

     systemctl enable prometheus
    
  4. 检查服务状态

     systemctl status prometheus
    

image-20240808162848697

  1. 访问Prometheus

在浏览器中访问 Prometheus Web UI,使用以下地址:

http://<your_server_ip>:9090

image-20240808162945521

部署 Grafana

安装fontconfig

yum install fontconfig

安装fontconfig

 rpm -ivh grafana-enterprise-11.1.2-1.x86_64.rpm

启动并启用 Grafana 服务

安装完成后,启动 Grafana 服务,并设置为开机自启:

systemctl start grafana-server
systemctl enable grafana-server

检查 Grafana 服务状态

确保 Grafana 服务已成功启动:

systemctl status grafana-server

应该看到服务的状态为 active (running)

image-20240808182140518

访问 Grafana WebUI

http://192.168.249.100:3000/

image-20240809111808975

创建数据源

选择Data source菜单,add一个新的source

image-20240809112017678

image-20240809112101510

选择prometheus数据源

image-20240809112146511

填写访问地址

image-20240809112205181

添加看板

确认即可,然后再选择dashboards,选择新建大屏

image-20240809112330916

然后选择Import dashboard

image-20240809112412299

image-20240809112510915

然后导入已下载好的模版,模版文件为JSON,

https://gitee.com/wanghui1201/images/raw/master/photos/12708_rev1.json

image-20240809112915586

完成后即可看见一个nginx性能面板,点击进去就可以看到数据视图

image-20240809112956608

其他导入类似,直接找到相应的JSON模版包即可

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小辉同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值