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

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

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

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

一、前言

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

二、Prometheus安装步骤

1. 下载并安装Prometheus

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

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

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

./prometheus --help|grep receiver 
[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

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. 启动并验证服务

systemctl daemon-reload systemctl enable prometheus systemctl restart prometheus systemctl status prometheus 
在这里插入图片描述

三、验证Remote Write功能

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

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

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

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 时序库。

[[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)服务:

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对数据目录有读写权限:

chown-R prometheus:prometheus /opt/prometheus/data 

3. 端口冲突

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

--web.listen-address=:9091 

六、总结

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

参考链接

在这里插入图片描述

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

Read more

《C++进阶之STL》【红黑树】

《C++进阶之STL》【红黑树】

【红黑树】目录 * 前言: * ------------概念介绍------------ * 1. 什么是红黑树? * 2. 红黑树的基本特性是什么? * 3. 红黑树的效率怎么样? * 4. 红黑树如何确保最长路径不超过最短路径的2倍? * ------------基本操作------------ * 一、查找操作 * 二、插入操作 * 1. 本质 * 2. 步骤 * 情况1:变色 * 情况2:变色 + 单旋 * 情况3:变色 + 双旋 * 三、验证操作 * ------------代码实现------------ * 红黑树的存储结构是什么样的? * 一、节点的存储结构 * 二、树的存储结构 * 实现文件:RBTree.h * 测试文件:Test.cpp * 运行结果: * ------------终极对决------------ * 一、选手登场 * AVL树的源代码 * 红黑树的源代码 * 二、

By Ne0inhk

C++内核启动太慢?这4种静态配置优化方法你必须掌握

第一章:C++内核配置静态优化与启动加速概述 在现代高性能系统开发中,C++常被用于构建对启动速度和运行效率要求极高的内核级组件。通过对编译期配置的精细控制与静态优化策略的应用,可显著减少初始化开销,提升程序冷启动性能。这一过程不仅涉及编译器优化选项的合理选择,还包括对模板实例化、静态构造函数以及链接时优化(LTO)等机制的深度利用。 静态优化的核心技术手段 * 启用链接时优化以消除未使用的代码段 * 使用 -fvisibility=hidden 减少符号导出开销 * 通过 constexpr 和模板元编程将计算前移至编译期 * 禁用异常与RTTI以降低运行时支持成本 关键编译选项配置示例 # 启用全面优化与链接时优化 g++ -O3 -flto -fwhole-program \ -fvisibility=hidden -DNDEBUG \ -fno-exceptions -fno-rtti \ -o kernel core.cpp runtime.cpp 上述指令组合通过开启LTO(-flto)实现跨编译单元优化,同时关闭异常处理和类型信息以精简二进制体积,适

By Ne0inhk
CCF-GESP 等级考试 2025年9月认证C++一级真题解析

CCF-GESP 等级考试 2025年9月认证C++一级真题解析

2025年9月真题 一、单选题(每题2分,共30分) 正确答案:D 考察知识点:计算机相关知识 解析:在人工智能领域,“大模型” 最贴切的通常是指大语言模型。大语言模型是基于大规模文本数据训练的,能够理解和生成自然语言等内容,像常见的 ChatGPT 等就属于大语言模型范畴。而选项 A “大电脑模型” 表述不准确;选项 B “大规模智能” 不是对 “大模型” 的准确指代;选项 C “智能的单位” 也不符合 “大模型” 的定义。答案为D。 正确答案:C 考察知识点:流程控制语句 解析:计算 1 到 10001 之间的所有偶数和,需要重复累加操作(循环结构),且需判断是否为偶数(分支结构)。仅用顺序结构无法实现重复操作和条件判断,

By Ne0inhk
【C++指南】STL容器的安全革命:如何封装Vector杜绝越界访问与迭代器失效?

【C++指南】STL容器的安全革命:如何封装Vector杜绝越界访问与迭代器失效?

🌟 各位看官好,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 使用STL的三个境界:能用,明理,能扩展 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦! 了解vector常用接口 vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 常见构造 (constructor)构造函数声明接口说明vector()(重点)无参构造vector(size_type n, const value_type& val = value_type())构造并初始化n个valvector (const vector& x); (重点)拷贝构造vector (InputIterator first, InputIterator last)

By Ne0inhk