夜莺-Nightingale
夜莺V7
项目介绍
功能概览
API
FAQ
部署升级
数据接入
告警管理
数据查看
功能介绍
告警管理
通知管理
通知规则介绍
阿里云短信
Relabel 事件处理
Event Drop 事件处理
Event Update 事件处理
Callback 事件处理
Script 事件处理
Label Enrich 事件处理
AI Summary 事件处理
仪表盘
数据源
时序指标
日志分析
告警自愈
基础设施
集成中心
人员组织
系统配置
夜莺V6
项目介绍
架构介绍
快速开始
黄埔营
安装部署
升级
采集器
使用手册
API
数据库表结构
users
notify_tpl
board
users
target
target
user_group
user_group_member
task_tpl
task_tpl_host
task_record
sso_config
role
role_operation
recording_rule
notify_tpl
metric_view
datasource
configs
chart_share
busi_group
busi_group_member
builtin_cate
builtin_cate
builtin_cate
builtin_cate
board
board_payload
alerting_engines
alert_subscribe
alert_rule
alert_mute
alert_his_event
alert_cur_event
alert_aggr_view
FAQ
转发数据给多个时序库
机器列表数据异常
数据流图
监控数据时有时无
查询原始监控数据
快捷视图详解
告警自愈模块使用
仪表盘里只展示我的机器
仪表盘里图表数据缺失
设置自定义告警通知方式
target_up指标的问题
夜莺可以监控 x 么
夜莺告警常见问题排查思路
告警和恢复的判断逻辑
容量规划问题
connection refused
登录与认证
数据采集器Categraf
日志写到`/var/log/messages`
告警规则&告警模板如何引用变量
采集到的数据是字符串怎么处理
管理员密码忘记了
制作大盘如何添加图片
添加loki数据源报错
v6小版本升级有什么 sql 要执行吗
机器列表有展示,但采集数据查询不到
n9e 启动异常报错
n9e集群部署配置修改
推送 Promethus 报错 OOO
机器列表怎么忽略云资源
告警规则仅在本业务组生效失败
categraf 启动 oracle 插件报错
告警自愈不生效
n9e查询时序库EOF报错
手动编译项目报错
promQL 使用函数标签信息丢失
内存使用率+可用率不等于100
夜莺仪表盘有哪些内置变量
categraf配置文件支持热加载吗
导入 Grafana 仪表盘无效数据源
如何查看报错消息
采集器-Categraf
插件配置
插件综述
基础指标采集插件
netstat采集插件
netstat_filter采集插件
procstat采集插件
http_response
mysql插件
redis插件
snmp插件
ipmi采集插件
dns_query插件
dcgm插件
nvidia_smi插件
cadvisor采集插件
smart采集插件
postgresql插件
mongodb插件
elasticsearch采集插件
exec采集插件
emqx采集插件
阿里云指标采集插件
Zabbix 指标转换插件
cloudwatch指标采集插件
google cloud指标采集插件
mtail插件
prometheus采集插件
页面配置采集插件
Flashcat 企业版
开源生态
Telegraf
Prometheus
版权声明
第1章:天降奇兵
第2章:探索PromQL
开篇
理解时间序列
Metrics类型
初识PromQL
PromQL操作符
PromQL聚合操作
PromQL内置函数
在HTTP API中使用PromQL
最佳实践:4个黄金指标和USE方法
小结
第3章:Prometheus告警处理
开篇
Prometheus告警简介
自定义Prometheus告警规则
部署Alertmanager
Alertmanager配置概述
基于标签的告警处理路由
使用Receiver接收告警信息
告警模板详解
屏蔽告警通知
使用Recoding Rules优化性能
小结
第4章:Exporter详解
第5章:数据与可视化
第6章:集群与高可用
第7章:Prometheus服务发现
第8章:监控Kubernetes
开篇
初识Kubernetes
在Kubernetes下部署Prometheus
Kubernetes下的服务发现
使用Prometheus监控Kubernetes集群
基于Prometheus的弹性伸缩
小结
第9章:Prometheus Operator
参考资料
Zabbix 插件
简介
Zabbix 插件用于将 Zabbix 中的监控数据转换为Prometheus格式的指标,进而转发给后端存储。该插件支持两种数据获取方式:从Zabbix文件导出功能读取历史数据文件,或者通过HTTP接收Zabbix实时流式数据。企业版 Categraf v0.4.10开始支持此功能,开源版不支持此插件。
Zabbix 导出数据方式
Zabbix支持两种导出数据的方式,插件均可支持处理:
- 导出数据到外部系统 从Zabbix 7.0开始支持,通过HTTP将数据流式传输到Categraf 如何配置
- 导出数据到文件 从Zabbix 4.0开始支持,将数据保存到NDJSON格式文件中供Categraf读取 如何配置
采集配置
[[instances]]
## 同一个instance下,只能endpoint 和 data_dir 二选一
## endpoint 是categraf启动的监听地址,用于接收zabbix发送的数据
# endpoint=":1234"
## data_dir 是zabbix导出的数据目录,必须让categraf有可读权限
data_dir="/home/flashcat/zabbix/data"
## 给转换后的指标添加一个自定义前缀
#prefix="zabbix"
配置zabbix api连接
插件需要通过Zabbix API获取item详细信息以正确解析监控数据。需要提供能够访问item.get接口的Zabbix api token。
企业版v0.4.10/v0.4.11 版本仅支持用户名密码方式获取item数据, 最佳实践更推荐使用api token方式,请使用v0.4.12及以上版本。创建api token请参照文档
[instances.zabbix]
## zabbix的访问地址 可以带具体路径,也可以只是IP端口
server="http://192.168.10.222"
## zabbix的版本,目前支持6.x和7.x, 其他版本未验证
version="7.2"
## zabbix的api token
api_token="xxxx"
## zabbix的指标名(item.name字段) 是否作为label
## 如果设置为true , 会添加一个标签 description=${item.name}
#name_as_tag=true
指标映射配置
插件使用 items 配置来定义如何解析和转换Zabbix指标。可以在 input 或 instances 级别定义 items 配置。
[[items]]
## item.key 以什么格式接收数据 必选项
## 参考item types说明文档 https://www.zabbix.com/documentation/7.2/en/manual/config/items/itemtypes/zabbix_agent
key = "system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]"
## 指定模板中的参数默认值,如果数据中不提供这些参数,则使用默认值
default_value = {cpu = "all", type = "user", mode = "avg1", logical_or_physical = "logical"}
## 定义这个指标的名字(可选),如不指定则自动从key名和参数生成,最终指标名字中的 . 会替换为 _
## 通常都不需要指定这个值
## 自动拼接可以参考自定义指标转换示例部分
metric_name = "system_cpu_utilization"
自定义指标转换示例
[[items]]
key = "zabbix[stats,<ip>,<port>,queue,<from>,<to>]"
default_value = {ip = "127.0.0.1", port = "10051", from = "6s"}
# 自动生成的指标名为zabbix_stats_queue, 中括号之前的内容+常量参数拼接
# metric_name = ""
[[items]]
key = "system.cpu.load[<cpu>,<mode>]"
default_value = {cpu = "all", mode = "avg1"}
## 自动生成的指标名为system_cpu_load
# metric_name = ""
[[items]]
key = "vm.memory.size[<mode>]"
default_value = {mode = "pused"}
# 自动生成的指标名为vm_memory_size
# metric_name = ""
工作原理
- 数据文件监控模式
- 插件会定期扫描指定目录下的.ndjson文件
- 当发现新文件或文件内容变化时,读取新增内容并解析
- 文件处理遵循增量读取原则,记录上次读取位置
- 默认情况下,10分钟无变化的文件会被视为不活跃
- HTTP接收器模式
- 插件启动HTTP服务器监听指定端口
- 接收Zabbix发送的实时数据
- 接口路径为${endpoint}/v1/zabbix/history
- 指标转换逻辑
- 根据Item的key和参数解析原始数据
- 提取宿主机、组、标签等信息作为Prometheus标签
- 数字类型的值直接转换为指标值
- 对于JSON格式的文本值,会尝试提取嵌套的数值数据
一份完整配置
# input级别的Item配置
[[items]]
key = "system.cpu.util[<cpu>,<type>,<mode>]"
default_value = {cpu = "all", type = "user", mode = "avg1"}
# 实例配置
[[instances]]
# 如果使用HTTP接收模式
endpoint = ":9109"
# prefix = "zabbix"
[instances.zabbix]
server = "http://zabbix-server.example.com"
version = "7.2"
api_token="xxxx"
# name_as_tag = true
# instances级别的Item配置,会覆盖input相同key配置
[[instances.items]]
key = "vfs.fs.size[<fs>,<mode>]"
default_value = {}
Zabbix 配置指南
导出数据到文件
zabbix_server.conf中配置
ExportDir=/path/to/export/directory
ExportFileSize=1G # 可选:设置最大文件大小
ExportType=history # 导出类型
使用环境变量
ZBX_EXPORTDIR=/path/to/export/directory/
ZBX_EXPORTFILESIZE=1G
ZBX_EXPORTTYPE=history
导出数据到http receiver
zabbix_server.conf中配置
StartConnectors=5
使用环境变量
ZBX_STARTCONNECTORS=5
在Zabbix前端配置Connector (Administration → General → Connectors)
- 数据类型:选择"Item values"
- URL:指向Categraf的endpoint+"/v1/history",如http://categraf:1234/v1/history
- 设置标签过滤器(可选)
参考文档
- Export to files
- Streaming to external system
- Newline-delimited JSON export protocol
- Zabbix agent item types
- Item key format
- Linux template documentation
- Zabbix API Tokens
故障排查
- 查看日志是否有API调用错误
Fatal error: Allowed memory size of xxxx bytes exhausted
修改/etc/php-fpm.d/zabbix.conf php_admin_value[memory_limit] = xxxM
- 确认Zabbix版本
- 确认Zabbix导出功能已正确配置
- 确保Zabbix API连接配置正确
- 检查API Token权限是否足够
- 检查文件路径或HTTP endpoint配置
- 验证文件权限或网络连接