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
配置 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=root
和Group=root
修改为User=prometheus
和Group=prometheus
,并确保相应的文件和目录权限正确。
启动并启用 Prometheus 服务
-
重新加载
systemd
配置:systemctl daemon-reload
-
启动 Prometheus 服务:
systemctl start prometheus
-
启用 Prometheus 服务开机自启:
systemctl enable prometheus
-
检查服务状态:
systemctl status prometheus
- 访问Prometheus
在浏览器中访问 Prometheus Web UI,使用以下地址:
http://<your_server_ip>:9090
部署 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)
。
访问 Grafana WebUI
创建数据源
选择Data source
菜单,add一个新的source
选择prometheus
数据源
填写访问地址
添加看板
确认即可,然后再选择dashboards
,选择新建大屏
然后选择Import dashboard
然后导入已下载好的模版,模版文件为JSON,
完成后即可看见一个nginx性能面板,点击进去就可以看到数据视图
其他导入类似,直接找到相应的JSON模版包即可
转载自:https://juejin.cn/post/7402204156876996645