部署 Prometheus 時序庫
# 安裝小腳本
version=2.45.3
filename=prometheus-${version}.linux-amd64
mkdir -p /opt/prometheus
wget https://github.com/prometheus/prometheus/releases/download/v${version}/${filename}.tar.gz
tar xf ${filename}.tar.gz
cp -far ${filename}/* /opt/prometheus/
# 下載安裝包
mkdir -p /opt/prometheus
cd /opt/prometheus
wget download.flashcat.cloud/prometheus-2.50.1.linux-amd64.tar.gz
# 創建 prometheus.service 文件
cat <<EOF >/etc/systemd/system/prometheus.service
[Unit]
Description="prometheus"
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data --web.enable-lifecycle --web.enable-remote-write-receiver
Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=prometheus
[Install]
WantedBy=multi-user.target
EOF
# 啟動服務
systemctl enable prometheus
systemctl restart prometheus
systemctl status prometheus
注意:Prometheus 要想作為時序庫接收 remote write 協議的數據,即夜鶯接收到時序數據後,要想轉發給 Prometheus,需要在啟動參數中添加 --enable-feature=remote-write-receiver
。否則,Prometheus 不會監聽 /api/v1/write
端點,夜鶯的數據轉發將返回 404 錯誤。
Prometheus 數據源配置
配置參數說明
名稱:Prometheus 數據庫顯示名稱
URL:Prometheus 數據庫地址 示例:http://${server-ip}:9090/
超時(單位ms):設置連接 Prometheus 數據庫的超時時間
用戶名 & 密碼:如果開啟 Prometheus 訪問認證,則需要在這裡輸入用戶名和密碼。密碼應該是原始密碼,不用加密後的密碼。
如果 Prometheus 使用用戶名和密碼進行身份驗證,則需要啟用此配置。默認情況下,用戶名和密碼會在 web-config.yml
配置文件中的 basic_auth_users
模塊中指定。為了確保配置文件的安全性,密碼是通過 bcrypt
哈希算法加密的,因此需要 Prometheus 管理員提前配置好。
Header & Value:配置請求 Prometheus 接口的驗證參數;
Remote Write: 使用撥測功能:如果使用記錄規則或撥測功能,撥測收集的指標需要使用 Remote Write 寫回到默認數據源的數據庫地址。
Remote Read :配置邊緣模塊的內網時序數據庫;通常用於邊緣機房下沉部署告警引擎的場景。如果該字段不為空,n9e-edge
會使用該地址訪問時序庫。如果該字段為空,n9e-edge
會使用上面的 URL 訪問時序庫;邊緣機房參考
關聯告警引擎集群 :配置綁定指定告警引擎的數據源;
設置為默認數據源:設置是否為網絡探測和 pingmesh 的數據存儲數據庫。如果有多個時序數據庫,只能設置其中一個為網絡探測數據存儲數據庫;
時序庫類型:根據接入的數據源類型進行選擇即可。此配置參數主要是優化儀表板數據查詢;
查詢數據
配置完成後,在已接入的數據源這裡可以看到新建的 Prometheus 數據源。
在時序指標—即時查詢—數據源選擇 Prometheus,在內置指標框輸入指標即可正常查詢時序數據。(在查詢前,需要確保該時序數據庫中已經有寫入數據才能進行查詢)