夜莺-Nightingale
夜莺V7+
夜莺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
插件配置
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调用错误
- 确认Zabbix版本
- 确认Zabbix导出功能已正确配置
- 确保Zabbix API连接配置正确
- 检查API Token权限是否足够
- 检查文件路径或HTTP endpoint配置
- 验证文件权限或网络连接