夜莺-Nightingale-开源云原生监控分析系统部署 Prometheus 作为时序库使用(配置多数据源)

夜莺-Nightingale-开源云原生监控分析系统部署 Prometheus 作为时序库使用(配置多数据源)

    • 一、前言
    • 二、Prometheus安装步骤
      • [1. 下载并安装Prometheus](#1. 下载并安装Prometheus)
      • [2. 关键配置:启用Remote Write接收器](#2. 关键配置:启用Remote Write接收器)
      • [3. 创建Systemd服务](#3. 创建Systemd服务)
      • [4. 启动并验证服务](#4. 启动并验证服务)
    • [三、验证Remote Write功能](#三、验证Remote Write功能)
    • 四、修改夜莺配置文件对接时序库
      • [1. 再增加一个Prometheus 时序库。](#1. 再增加一个Prometheus 时序库。)
      • [2. 重启夜莺监控(N9E)服务:](#2. 重启夜莺监控(N9E)服务:)
      • [3. 夜莺数据源管理新增数据源](#3. 夜莺数据源管理新增数据源)
    • 五、常见问题解决
      • [1. 夜莺转发数据时报404错误](#1. 夜莺转发数据时报404错误)
      • [2. 权限问题](#2. 权限问题)
      • [3. 端口冲突](#3. 端口冲突)
    • 六、总结
    • 参考链接

|-----------------------------|
| 💐The Begin💐点点关注,收藏不迷路💐 |

一、前言

Prometheus是一款开源的监控系统和时序数据库,广泛应用于云原生监控领域。在实际使用中,我们经常需要将其他监控系统(如夜莺监控)的数据写入Prometheus,这就需要启用Prometheus的remote write接收功能。本文将详细介绍如何正确部署Prometheus并配置remote write接收器。

二、Prometheus安装步骤

1. 下载并安装Prometheus

首先选择适合的Prometheus版本并下载:

bash 复制代码
mkdir -p /usr/local/prometheus

wget https://github.com/prometheus/prometheus/releases/download/2.54.0/prometheus-2.54.0.linux-amd64.tar.gz


tar zxvf /root/prometheus-2.54.0.linux-amd64.tar.gz -C /usr/local/prometheus

2. 关键配置:启用Remote Write接收器

Prometheus默认不开启remote write接收功能,需要通过启动参数显式启用。根据版本不同,参数写法有所差异:

  • 老版本--enable-feature=remote-write-receiver
  • 新版本--web.enable-remote-write-receiver

不确定该用哪个参数时,可以通过以下命令查看:

bash 复制代码
./prometheus --help | grep receiver
sql 复制代码
[root@zyl-server prometheus-2.54.0.linux-amd64]# ./prometheus --help | grep receiver
      --[no-]web.enable-remote-write-receiver  
      --web.remote-write-receiver.accepted-protobuf-messages=prometheus.WriteRequest... ...  
                                 remote-write-receiver (DEPRECATED),
                                 native-histograms, otlp-write-receiver,
[root@zyl-server prometheus-2.54.0.linux-amd64]# 
[root@zyl-server prometheus-2.54.0.linux-amd64]# 
[root@zyl-server prometheus-2.54.0.linux-amd64]# 

3. 创建Systemd服务

创建服务配置文件/etc/systemd/system/prometheus.service

sql 复制代码
cat <<EOF >/etc/systemd/system/prometheus.service
[Unit]
Description="prometheus"
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple

ExecStart=/usr/local/prometheus/prometheus-2.54.0.linux-amd64/prometheus --config.file=/usr/local/prometheus/prometheus-2.54.0.linux-amd64/prometheus.yml --storage.tsdb.path=/usr/local/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

4. 启动并验证服务

bash 复制代码
systemctl daemon-reload
systemctl enable prometheus
systemctl restart prometheus
systemctl status prometheus

三、验证Remote Write功能

Prometheus启动后,可以通过以下方式验证remote write接口是否正常工作:

  1. 检查Prometheus日志,确认没有错误信息

  2. 访问Prometheus的/api/v1/write接口:

    bash 复制代码
    curl -X POST http://localhost:9090/api/v1/write

    如果返回404,说明remote write接收器没有正确启用;如果返回"empty write request"等消息,说明接口已正常启用

四、修改夜莺配置文件对接时序库

夜莺作为 pushgateway,需要告诉夜莺时序库的地址在哪里。夜莺的配置文件是 etc/config.toml,修改 \[Pushgw.Writers] 部分即可,核心是 Url 部分,夜莺接收到指标数据之后,会通过 Prometheus remote write 协议写入 Url 指向的时序库(任何支持 Prometheus remote write 的存储都可以用):

1. 再增加一个Prometheus 时序库。

bash 复制代码
[[Pushgw.Writers]]
# Url = "http://127.0.0.1:8480/insert/0/prometheus/api/v1/write"
Url = "http://127.0.0.1:9090/api/v1/write"
# Basic auth username
BasicAuthUser = ""
# Basic auth password
BasicAuthPass = ""
# timeout settings, unit: ms
Headers = ["X-From", "n9e"]
Timeout = 10000
DialTimeout = 3000
TLSHandshakeTimeout = 30000
ExpectContinueTimeout = 1000
IdleConnTimeout = 90000
# time duration, unit: ms
KeepAlive = 30000
MaxConnsPerHost = 0
MaxIdleConns = 100
MaxIdleConnsPerHost = 100

2. 重启夜莺监控(N9E)服务:

bash 复制代码
systemctl restart n9e

systemctl status n9e

3. 夜莺数据源管理新增数据源


五、常见问题解决

1. 夜莺转发数据时报404错误

这通常是因为Prometheus没有启用remote write接收器。请检查:

  • 确保启动参数正确(--web.enable-remote-write-receiver--enable-feature=remote-write-receiver
  • 确认Prometheus版本与参数匹配

2. 权限问题

确保Prometheus对数据目录有读写权限:

bash 复制代码
chown -R prometheus:prometheus /opt/prometheus/data

3. 端口冲突

如果9090端口被占用,可以通过--web.listen-address参数修改监听地址:

bash 复制代码
--web.listen-address=:9091

六、总结

正确配置Prometheus的remote write接收器对于构建监控数据流水线至关重要。通过本文介绍的步骤,您可以轻松部署一个支持remote write的Prometheus实例,为后续与其他监控系统(如夜莺)的集成打下基础。

参考链接

|---------------------------|
| 💐The End💐点点关注,收藏不迷路💐 |

相关推荐
Par@ish1 小时前
关于开源GNU通用许可(GPLv3)详细解说
web安全·开源·开源协议
DolphinScheduler社区3 小时前
Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
大数据·云原生·serverless·apache·海豚调度·版本发版
成为你的宁宁3 小时前
【基于 Prometheus Operator 实现 K8s 环境下 Redis Cluster 集群监控部署】
redis·kubernetes·prometheus
SeaTunnel3 小时前
87 个 PR 迭代复盘|Apache SeaTunnel 5 月版本重点更新解读
大数据·数据库·开源·apache·seatunnel
DolphinScheduler社区3 小时前
实战演示 | 基于 Apache DolphinScheduler 与 Apache SeaTunnel 实现 MySQL 到 Doris 离线定时增量同步
数据库·mysql·开源·apache·海豚调度·大数据工作流调度
heimeiyingwang3 小时前
【架构实战】注册中心选型:Nacos vs Eureka vs Consul
微服务·云原生·架构
java_cj3 小时前
阅读 k8s 源码的准备工作
云原生·容器·kubernetes
SL-staff4 小时前
Vue3私有化AI白板落地实战|解决政企项目智能绘图合规难题(可直接复用源码)
人工智能·低代码·开源·vue3·白板·jvs规则引擎·jvs-draw
国产化创客4 小时前
嵌入式视觉完整技术体系--ESP32/K230/RDK-X5/树莓派四层架构全解析
嵌入式硬件·物联网·架构·开源·智能硬件
爱上纯净的蓝天4 小时前
AtomCode 源码编译与二次开发入门
开源·二次开发·源码编译·atomcode