哪吒一顿骚操作,还是换掉吧。
安装Grafana
直接Docker一把梭,装完之后用户名密码默认的都是admin
docker run -d --name=grafana -p 3000:3000 grafana/grafana-oss:11.3.1-ubuntu
Nginx反代设置
# This is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream grafana {
server localhost:3000;
}
server {
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
proxy_set_header Host $host;
proxy_pass http://grafana;
}
# Proxy Grafana Live WebSocket connections.
location /api/live/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_pass http://grafana;
}
}
安装Prometheus
继续Docker一把梭
为了方便自己调一些配置并且保存监控的数据
准备工作
创建配置文件存储目录
mkdir -p /etc/prometheus
从https://prometheus.io/download/下载最新版本,解压后将prometheus.yml
上传到/etc/prometheus
目录
为数据创建持久卷
docker volume create prometheus-data
启动
docker run -d \
-p 9090:9090 \
-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v prometheus-data:/prometheus \
prom/prometheus
安装Node Exporter
由于需要监控主机数据,官方也并不建议使用Docker部署.
下载地址:https://prometheus.io/download/#node_exporter,自行到官网查找最新版本替换下面的地址.
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz && \
tar xvfz node_exporter-*.tar.gz && \
rm node_exporter-*.tar.gz
mv node_exporter-*.linux-amd64/node_exporter /usr/local/bin
rm -r node_exporter-*.linux-amd64*
将 Node Exporter 作为服务运行。
首先创建一个 node_exporter
用户。
useradd -rs /bin/false node_exporter
创建一个服务文件 node_exporter.service
供 systemctl
使用。
nano /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now node_exporter
systemctl status node_exporter
修改 Prometheus 配置文件,添加监控节点
在运行Prometheus的监控服务器上,编辑 prometheus.yml
,本教程中地址为/etc/prometheus/prometheus.yml
。
找到 scrape_configs
,里面是作业列表。当前有一个名为 prometheus
的作业。此作业监视端口 9090
上的本地 Prometheus 任务。
在 prometheus
作业下方,添加第二个作业, job_name
为 remote_collector
。
包括以下信息。注意将 remote_addr
替换为客户端的实际IP地址。
- 设置抓取时间间隔:
scrape_interval: 10s
- 添加要监控的 IP 和 端口号
:9100
,使用逗号分隔每个条目。 - 要启用对本地服务器的监视,请将
localhost:9100
条目添加到列表中,并在本地安装 Node Exporter。
...
- job_name: "remote_collector"
scrape_interval: 10s
static_configs:
- targets: ["IP1:9100"]
labels:
instance: '实例1'
- targets: ["IP2:9100"]
labels:
instance: '实例2'
立即刷新,重启Docker即可,docker ps
查看容器ID,重启
docker restart 容器ID
关联 Grafana 和 Prometheus
所有系统组件现已安装,但 Grafana 和 Prometheus 尚未关联。剩下的可以使用 Grafana Web 界面完成。
要集成 Grafana 和 Prometheus,请按照以下步骤操作:
- 浏览器访问监控服务器的
3000
端口。例如,输入http://ip_addr:3000
,将ip_addr
替换为实际 IP 地址。 - Grafana 显示登录页面。使用用户名和默认密码 都是
admin
。当出现提示时,将密码更改为更安全的值。 - 成功更改密码后,Grafana 将显示 Grafana 仪表板。
- 要将 Prometheus 添加为数据源,请单击Connections,然后选择Data sources。
- 在下一个显示中,单击“ADD Data sources”按钮。
- 选择Prometheus作为数据源。
- 对于本地 Prometheus 源,将 URL 设置为
http://localhost:9090
。大多数其他设置可以保留默认值。 - 对设置满意后,选择屏幕底部的【Save & test】按钮。
- 如果所有设置均正确,Grafana 会确认
Data source is working
。
导入 Grafana 仪表板
推荐大佬的面板 Grafana 的官网 (Dashboard ID 22403)