## `Elasticsearch`数据监控指南 下面以程序日志错误监控为例子,说明创建一个`Elasticsearch`监控的过程 ### 1. 添加`Elasticsearch`数据源 打开页面:数据管理->数据源,点击新增按钮,弹出窗口,填写字段并保存。 其中服务地址填写Elasticsearch服务的地址,如果有多个用英文逗号分隔。其中服务地址格式为: ${ip}:${port}, 注意 不需要带scheme,举个栗子: 127.0.0.1:80,127.0.0.2:80 > * 注意服务地址端口不能缺省,就算是80端口也需要加上, 而且不能带scheme(http, https) > * es开启http-ssl认证时,需要上传`.p12`扩展名ssl证书以及证书密码,如:`elastic-certificates.p12` ### 2. 添加`Elasticsearch`数据名 打开页面:数据管理 -> 数据名,点击新增按钮,弹出窗口,填写字段并保存。 数据名在`Elasticsearch`场景可以理解为索引模式,之所以不直接用索引,是因为项目计划不只支持`Elasticsearch`,还会 支持`influxdb`等其它数据源类型。索引后缀如果不是标准的时间模式或者单位小于天的时间模式,可以用`*`号。 **其中显示字段可以配置数据查询页面列表表头显示的字段和顺序** ### 3. 验证查询 添加完数据名,打开数据查询页面。下拉选择刚才保存的数据名,点击查询。如果查出来数据和你的索引数据对上了,说明数据信息都 填写正确了。 `query string`查询语句语法不清楚的,可以参考文档: query string简易教程,查询页面主要 小特性列表 * 查询语句输入框会有历史查询记忆功能,用起来很方便。 * 数据表格第一列是一个展开箭头,可以展开数据查看完整的日志内容。 * 数据可以下载,文件格式为`csv`,限制在10w条以内 * 点击分享按钮,查询还可以以短链接的形式分享给其他人 * 如果你想用当前查询语句创建监控,直接点击添加监控按钮,就会直接带到监控创建页面 这些小功能可以说相当贴心了。 ### 4. 添加监控 打开页面:监控管理->监控编辑。填入信息并保存,保存前可以先进行测试。 查询语句如下,表示查询项目`dbtree`的错误日志 ``` Team: dealer.arch AND Project: dbtree AND Level: ERROR ``` 本项目`elasticsearch`查询语句使用的是`query string`语句,并非DSL query, 这里提供了一个简易教程供不会的同学快速 入门,英文水平可以的同学最好是看官方文档 #### 报警规则填写 表示最近5分钟查出来的日志数量大于1就报警 #### 消息模板填写 以我们的日志格式为例,我们定制的消息模板为: ``` ${Project}最近${TIME_WINDOW}分钟内有异常日志${NUMBER}条。最近一条异常信息: 服务器IP: ${ServerIP} 异常类型: ${ExceptionType} 自定义信息: ${CustomMessage} 异常信息: ${ExceptionMessage} ``` 注意:使用者需要根据自己的日志格式指定消息模板,不能直接套用我们的,因为大家日志格式都不一样。关于消息模板如何定制,请看文档:[消息模板配置](https://github.com/AutohomeCorp/frostmourne/blob/master/doc/wiki/template.md) ### 5. 运行试试 保存成功后,就可以运行一下试试看了。打开页面:监控管理->监控列表。 点击运行按钮,就会弹出运行结果,如果产生报警的话,还会根据你配置的发送方式收到报警消息。我们的消息大概是这样子: 监控每次运行都会产生一条执行日志,在页面监控管理->执行日志。能看到所有监控的执行日志。如果产生了报警发送,还会产生 消息发送记录,在页面监控管理->我的消息。可以看到所有发送给你的消息。 ### 6. 报警模板管理 虽然不同公司的日志格式不一样,所以报警消息模板无法重用,但是一个团队内日志格式是统一的,所以报警模板在团队内是可以重用的。 这个时候报警模板管理就排上用场了。消息模板分为两类。 * 通用模板。不属于任何数据,都可以用,比如同比消息模板。 * 数据模板。属于一种数据名,只有在选择这个数据名的时候才可以选用,比如程序错误日志消息模板 ### 案例 * [Skywalking-Logging数据监控](./showcase/skywalking_es_log.md)