夜莺-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

2026 Python+AI 学习方向拆解:3 个高性价比赛道,新手优先学

2026 Python+AI 学习方向拆解:3 个高性价比赛道,新手优先学

欢迎文末添加好友交流,共同进步! “ 俺はモンキー・D・ルフィ。海贼王になる男だ!” * 前言 * 一、AI数据处理与分析赛道 * 1.1 为什么选择这个方向? * 1.2 核心技能树 * 1.3 实战代码示例 * 数据清洗与预处理 * 1.4 学习路线图 * 二、AI应用开发赛道(LLM + RAG) * 2.1 为什么选择这个方向? * 2.2 RAG技术架构流程 * 2.3 实战代码:构建RAG问答系统 * 2.4 学习路线图 * 三、AI自动化办公赛道 * 3.1 为什么选择这个方向? * 3.2 自动化办公应用场景 * 3.3 实战代码示例

By Ne0inhk

VS Code 中的 Python 代码格式化插件

在 VS Code 中,有几款非常出色的 Python 代码格式化插件可以帮助你保持代码的整洁与规范。下面这个表格整理了目前主流的几款工具,你可以根据它们的特点进行选择。 工具名称核心特点风格理念推荐适用场景Black开箱即用,几乎无需配置;强制统一的代码风格,可预测性强。“无妥协”的格式化器。它决定格式,讨论空间小,保证所有代码风格一致。团队协作项目;希望零配置快速上手的开发者;追求极简和一致性。autopep8基于 PEP 8 规范,主要修复代码风格问题(如缩进、空格)。相对保守,专注于修复而非重新排版。希望代码严格遵循 PEP 8;对现有代码进行温和的格式化修复。yapf高度可定制,可以模仿多种代码风格;格式化策略更“激进”,会重新排版代码。“自成风格”。目标是通过调整代码来达到最佳可读性,而非严格遵循某一规范。需要高度自定义格式化规则;项目有特殊的代码风格要求。 🔧 如何安装与配置 选好工具后,只需简单几步就能在 VS Code 中启用它们。

By Ne0inhk
Python开发从入门到精通:异步编程与协程

Python开发从入门到精通:异步编程与协程

《Python开发从入门到精通》设计指南第二十一篇:异步编程与协程 一、学习目标与重点 💡 学习目标:掌握Python异步编程的基本概念和方法,包括协程、任务调度、事件循环等;学习asyncio、aiohttp等核心库的使用;通过实战案例开发异步应用程序。 ⚠️ 学习重点:协程的定义与使用、任务调度、事件循环、asyncio库、aiohttp库、异步编程实战。 21.1 异步编程概述 21.1.1 什么是异步编程 异步编程是一种并发编程方式,通过非阻塞的操作提高程序的执行效率。在异步编程中,程序可以在等待I/O操作完成时继续执行其他任务,而不需要阻塞等待。 21.1.2 异步编程的优势 * 提高执行效率:在等待I/O操作完成时,程序可以继续执行其他任务。 * 降低资源消耗:减少了线程切换的开销。 * 简化代码结构:通过协程和任务调度,代码结构更加简洁。 21.1.3 异步编程的应用场景

By Ne0inhk
Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践

Python中的“==“与“is“:深入解析与Vibe Coding时代的优化实践

🌟 Python中的"=="与"is":深入解析与Vibe Coding时代的优化实践 * 1. 🧐 `==`与`is`的本质区别 * 2. 🕵️‍♂️ `is`判断对象身份 - 数组与常量池案例 * 案例1:列表对象的身份 * 案例2:小整数常量池 * 案例3:字符串驻留 * 3. 🔍 `==`与`__eq__`魔法函数 * 4. 🔎 类型判断的正确姿势:使用`is` * 5. 🚀 Vibe Coding时代的提示词优化 * 场景1:解释概念 * 场景2:代码生成 * 场景3:调试帮助 * 📊 对比总结表 * 💡 实际应用建议 * 🌈 结语 在Python的奇妙世界中,==和is这两个看似简单的操作符常常让初学者感到困惑。它们如同双胞胎,外表相似却性格迥异。本文将带你深入探索它们的区别,并通过生动的案例和图表展示它们的应用场景,

By Ne0inhk