likes
comments
collection
share

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

作者站长头像
站长
· 阅读数 23

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

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

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

部署 Prometheus

下载 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

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

配置 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
    

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

  1. 访问Prometheus

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

http://<your_server_ip>:9090

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

部署 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)

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

访问 Grafana WebUI

http://192.168.249.100:3000/

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

创建数据源

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

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

选择prometheus数据源

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

填写访问地址

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

添加看板

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

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

然后选择Import dashboard

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

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

gitee.com/wanghui1201…

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

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

Linux部署 Prometheus和 Grafana实现可视化监控没有人的成功是一蹴而就的,别人的失败,既是经验也是教

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

转载自:https://juejin.cn/post/7402204156876996645
评论
请登录