概述
日志服务支持根据仪表盘中的查询图表设置告警, 实现实时的服务状态监控. 日志服务的告警功能基于仪表盘中的查询图表实现. 在日志服务控制台查询页面或仪表盘页面设置告警规则, 并指定告警规则的配置, 检查条件和通知方式. 本文以用户常见的需求: 如果某个字段包含某一段固定字符 "xxxx", 则告警. 介绍整个告警过程的配置实现.
Step by Step
1, 日志服务管理控制台创建 project 和 logstore
2, 配置索引
3, 使用 Java SDK 写入日志, 参考链接
- import com.aliyun.openservices.log.Client;
- import com.aliyun.openservices.log.common.LogItem;
- import com.aliyun.openservices.log.exception.LogException;
- import com.aliyun.openservices.log.request.PutLogsRequest;
- import java.util.Date;
- import java.util.Vector;
- public class SendDataToLogstore111 {
- public static void main(String args[]) throws LogException, InterruptedException {
- String endpoint = "cn-beijing.log.aliyuncs.com"; // 选择与上面步骤创建 project 所属区域匹配的
- // Endpoint
- String accessKeyId = "LTAIOZZg********"; // 使用您的阿里云访问密钥 AccessKeyId
- String accessKeySecret = "v7CjUJCMk7j9aKduMAQLjy********"; // 使用您的阿里云访问密钥
- String project = "*********"; // 上面步骤创建的项目名称
- String logstore = "alarmdemo"; // 上面步骤创建的日志库名称
- // 构建一个客户端实例
- Client client = new Client(endpoint, accessKeyId, accessKeySecret);
- // 写入日志到日志库
- String source = "127.0.0.1";// 设置本机 IP 地址做为 source
- String topic = "topictest";
- // 连续发送 10 个数据包, 每个数据包有 5 条日志
- for (int i = 0; i <10; i++) {
- Vector<LogItem> logGroup = new Vector<LogItem>();
- for (int j = 0; j < 500; j++) {
- LogItem logItem = new LogItem((int) (new Date().getTime() / 1000));
- logItem.PushBack("msg","获取到 userId 为空第二个 参数是消费者名称: 获取到 ERROR 为空, UPDATE_Demo 同一个 dd 为空: 2DF4K3M, 消费组下面的消费者名称必须不同, 可以使用相同的消费组名称");
- logGroup.add(logItem);
- }
- PutLogsRequest req2 = new PutLogsRequest(project, logstore, topic, source, logGroup);
- client.PutLogs(req2);
- }
- System.out.println("日志写入成功!");
- }
- }
4, 日志写入效果
5, 告警配置
这里以 msg 字段出现 "ERROR" 字符进行告警配置演示.
5.1 测试查询语句
5.2 配置告警
5.3 告警列表查看
5.4 邮箱查看
更多参考
日志服务告警简介
来源: https://yq.aliyun.com/articles/742972