规则模板与内置规则
夜莺自带 MySQL、Redis、Kubernetes 等六十多个组件的规则模板,可导入任意业务组;自己的规则也能存为模板复用。
这页办完你会得到:夜莺自带的 MySQL、Redis、Kubernetes 等六十多个组件的告警规则, 已经躺在你的某个业务组里,指向你自己的数据源、挂好了通知规则—— 并且你知道怎么把自己写的规则放进同一个库里。
随安装附带的规则库
集成中心 → 模板中心(/components)是一片 logo 宫格,一个集成一块。
v9.1.1 随包带了 86 个集成,其中 64 个带告警规则,合计 755 条。
点开一个集成会拉出抽屉,里面的 告警规则 tab 就是这个集成带来的规则列表。
每条规则都带备注、标签,以及一条 action 附加信息,写着被叫起来的人第一步该干什么。
列表可以按分类筛。分类来自规则文件的打包方式,所以 MySQL 下面 mysql_by_categraf 和
mysql_by_exporter 是两个分类。按你实际的采集方式挑一个——两个都导,每条规则就会有两份。
自带库里的规则,「更新人」列标着系统内置。这个标记同时意味着它们在这里不能改、不能删, 只能导入。
把内置规则导进业务组
勾选要的规则,点导入业务组。
| 字段 | 怎么填 |
|---|---|
| 业务组 | 规则落到哪儿,也就决定了产生的事件归哪个团队 |
| 启用 | 默认关。就让它关着,把导进来的东西看一遍再启用 |
| 数据源类型 | 只读,从你选的规则里推导 |
| 数据源筛选 | 这些规则该跑在你自己的哪些实例上 |
| 通知规则 | 在这里挂上。内置规则自己不带任何通知配置 |
| 内容 | 规则的 JSON,可编辑——落库前想调个阈值就在这儿调 |
一次导入里的规则必须是同一种数据源类型,混选会在提交前被拦下。
提交。预期结果:规则出现在那个业务组的规则列表里,处于停用状态, 数据源筛选和通知规则都已经按你填的设好了。
和导入、导出与复用里那条「导出再导入」的路不同, 这条路会保留生效时间窗口——内置规则的窗口写在文件里,跟着一起过来。
从规则列表页导同一批
如果你已经在看某个业务组的规则列表,不必绕去模板中心: 规则管理 → 导入 → 导入内置告警规则翻的是同一个库,直接导进你当前所在的组。
有一处区别值得知道:这条路没有通知规则那个字段,所以这样导进来的规则不挂任何通知。 事后用更多操作 → 更新告警规则 → 通知规则补上。
导进来之后要做的事
内置规则是起点,不是成品。启用之前有三件事要过一遍:
- 阈值。 它们是按通用安装写的。
disk_used_percent > 85对数据库服务器合理, 对日志采集机就是噪音。挨条看一遍。 - 级别。 这个库对 S1 挺大方的。哪些真的值得半夜叫人,自己定—— 见标签、附加信息与级别。
- 通知规则,如果你是从规则列表那条路导的。没有它,规则触发了也是发向虚空。
然后分批启用,别一次全开,这样一波噪音来了还能追到是哪一批。
把自己的规则做成模板
没有「保存为模板」这个按钮。 官方支持的是一条三步的手工路径,界面上的说明也是这么写的:
- 在自己的业务组里把规则写好、调顺,可以拿真实数据模拟触发验证;
- 在规则列表里选中它,用更多操作 → 导出规则 JSON;
- 去集成中心 → 模板中心,打开它所属的那个集成(没有就新建一个)的告警规则 tab, 点创建,填一个分类名,把 JSON 粘进去。
这样存下的模板落在数据库里,不在附带的文件里,所以「更新人」列显示的是你的名字而不是 系统内置,你也能改能删。从此它就和内置规则出现在同一个列表里,导入方式完全一样。
模板中心页面顶部的创建按钮可以新建一个集成,要填名称、图标和启用开关。 没有上传集成包这回事——这样建出来的集成,就是一个装你粘进去的模板的容器。
关于这份 JSON 有两点。导入是按规则名匹配的,所以模板起的名字别和大家已有的规则撞上。 以及,粘之前把环境相关的东西删掉,尤其是数据源 id——那个由导入表单来设。
这个库从哪儿来
自带规则就是夜莺发布包里的普通 JSON 文件,路径是
integrations/<集成名>/alerts/*.json。一个文件是一个规则数组,文件名就是界面上看到的分类。
它们在进程启动时从磁盘读进来。集成本身会记进数据库;告警规则、仪表盘、指标说明只在内存里, 每次启动重建——所以改完 JSON 文件重启一下,库里提供的东西就变了。
目录默认是工作目录下的 integrations,可以用 [Center] 下的 BuiltinIntegrationsDir 改。
想完全不加载自带库(比如内网环境要用自己整理的一套),在 configs 表里插一条
ckey = disable_integration_init 的记录。