首页 > 其他分享 >ELK日志告警elastalert2

ELK日志告警elastalert2

时间:2024-05-02 10:22:27浏览次数:23  
标签:ELK dingtalk text alert query elastalert2 告警 日志

在/opt 目录创建文件以及文件夹

 

-rw-r--r-- 1 root root 339 4月 17 14:26 docker-compose.yml
drwxr-xr-x 3 root root 4096 4月 17 15:53 elastalert2

 

[root@node1 opt]# tree elastalert2/
elastalert2/
├── elastalert.yaml
└── rules
    ├── 123.txt
    ├── dingtalk.yaml
    └── test.yaml

 

docke-compose.yml

[root@node1 opt]# more docker-compose.yml 
version: "3.3"

services:
  #elastalert2-EFK框架的告警组件
  elastalert2:
    image: jertel/elastalert2:2
    container_name: elastalert2
    restart: always
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - ./elastalert2/elastalert.yaml:/opt/elastalert/config.yaml
      - ./elastalert2/rules:/opt/elastalert/rules

 

cd /opt/elastalert2

elastalert.yaml

[root@node1 elastalert2]# more elastalert.yaml 
rules_folder: /opt/elastalert/rules
run_every:
  seconds: 1
 
buffer_time:
  minutes: 15
 
#es地址 更改自己的
es_host: 124.221.13.28  
#es端口 更改自己的 
es_port: 9200
#es账号  更改自己的 
#es_username: elastic
#es密码  更改自己的 
#es_password: B6P0hW7x
 
writeback_index: elastalert_status
 
alert_time_limit:
  days: 2
 
#详细的参数说明参考官方文档:https://elastalert2.readthedocs.io/en/latest/elastalert.html

 

cd 

/opt/elastalert2/rules

[root@node1 rules]# more dingtalk.yaml 
name: "dingtalk" #规则的名称。
type: "frequency" # 规则类型为频率,表示要检测的事件是在一定时间范围内出现的次数。
index: "filebeat-7.16.2-2024*"   # 需要监控的索引 ,多个索引用  逗号分割

is_enabled: true
num_events: 4 # 出现几次就告警
timeframe:
  minutes: 4 # 1分钟 出现了 num_events次 匹配记录,就告警
realert:
  minutes: 1 # 1分钟内忽略重复告警
#silence:
#  minutes: 10
silenced: false
timestamp_field: "@timestamp"
timestamp_type: "iso"
use_strftime_index: false

alert_text_type: alert_text_only
# 下面是告警模板
alert_text: |
  日志告警
  索引名称: {0}
  时间: {1}
  文件: {2}
  触发次数: {3}
  匹配次数: {4}
  日志信息: {5}
  告警节点: {6}
  调用方式: {7}
  请求链接: {8}
  suoyin: {9}
alert_text_args: # 告警模板中用到的参数
  - "_index"
  - "@timestamp"
  - "@log_name"
  - num_hits
  - num_matches
  - message
  - host.name
  - request
  - response
  - "actual_index"

#filter:
#  - query:
#      query_string:
#        query: "error OR  ERROR  OR  404  OR 500 " # 告警查询语句 



filter:
  - query:  
      query_string:  
        query: "error OR ERROR OR 404 OR 500"     # 检测的查询语句,包含其中一个 
  - bool: 
      must_not:
         query_string:  
             query: "\"ERROR 1111\""              # 过滤信息,包含ERROR 1111进行过滤 不告警 

alert:
  - "dingtalk" # 告警类型



dingtalk_access_token: "e8d53b4990be4f836bcf88eadec74b5a84sa0c99946a2df6asc69ss3b242c8c2" # 在钉钉群添加自定义机器人获取AccessToken,
#dingtalk_webhook: "https://oapi.dingtalk.com/robot/send?access_token=fefbc11e1d72af6ee74c8e48ebc0048f56960ac3d268912b2bde55f423dc7a88"
#dingtalk_secret: "SECdf2e0b498bdbb61a772589fc41209d54b4b5d1798810b306fbbbc9e692e479cf"
dingtalk_msgtype: "text" # 消息类型

 

filter的 模板  对以上的进行补充,非必要不用写

filter:  
  - query:  
      query_string:  
        query: "error OR ERROR OR 404 OR 500"  # 匹配包含 error、ERROR、404 或 500 的日志  
  - bool:  
      must_not:  
        - query_string:  
            query: "\"ERROR 1111\""  # 排除包含 ERROR 1111 的日志  
        - query_string:  
            query: "\"ERROR 2222\""  # 排除包含 ERROR 2222 的日志  
        - query_string:  # 额外添加的条件,排除包含特定字符串的日志  
            query: "\"discard long time none received connection\""

 

非必要 另外的一个告警规则,不想写可以不写,看自己

[root@node1 rules]# more test.yaml 
#a#le Configuration for Individual IPs (Nested Rule)
name: nginx_access_4xx_individual_ips
type: frequency  
index: "filebeat-7.16.2-2024.04.17"  #查询该索引
num_events: 1  # Individual IP 404s threshold #60s超过100触发
timeframe:
  seconds: 60
#query_key: client.ip  #查询单ip的状态码字段
filter:
  - query:
      bool:
        must:
          - query_string:
              query: "404"
alert:
  - dingtalk  #告警方式
alert_text_type: "alert_text_only"
dingtalk_webhook: "https://oapi.dingtalk.com/robot/send?access_token=fefbc11e1d72af6ee74c8e48ebc0048f56960ac3d268912b2bde55f423dc7a88"
dingtalk_access_token: "SECdf2e0b498bdbb61a772589fc41209d54b4b5d1798810b306fbbbc9e692e479cf"
dingtalk_msgtype: "text"
alert_text: |    #定义告警文本匹配下列参数
  告警程序: ElasticSearch_Alert
  来源  Ip: {}
  域    名: {}
  调用方式: {}
  请求链接: {}
  触发条件: 60s 内 {} 状态码 超过 {} 次
alert_text_args:
  - client.ip
  - domain
  - http_method
  - request_path
  - response_code
  - num_events

然后再opt执行 docker-compose

cd /opt

docker-compose up -d

 

注意事项 

1.需要安装docker  且docker版本必须 24以上  docker -v 查看

2. 需要安装docker-compose  

3. 执行完 可以通过docker logs -f 容器ID 进行查看日志 

 

标签:ELK,dingtalk,text,alert,query,elastalert2,告警,日志
From: https://www.cnblogs.com/JIKes/p/18169991

相关文章

  • klog在日志文件中error级别日志重复打印2次
    问题现象packagemainimport( "flag" "gopkg.in/natefinch/lumberjack.v2" "k8s.io/klog/v2")funcmain(){ klog.InitFlags(nil) flag.Set("logtostderr","false") flag.Parse() l:=&lumberjack.Logger......
  • Windows上使用PowerShell来启用记录被丢弃的数据包(D)和成功的连接(U)的日志,你可以通过配
    Windows上使用PowerShell来启用记录被丢弃的数据包(D)和成功的连接(U)的日志,你可以通过配置Windows高级防火墙规则来实现。具体步骤如下:创建防火墙规则:首先,你需要创建适当的防火墙规则来捕获被丢弃的数据包(D)和成功的连接(U)。这可以通过PowerShell来完成。下面是一个示例,假......
  • 19.3 ADG备库,数据文件SCN不更新(Bug: 29056767),导致备库异常重启后,需要重新apply很久
    故障现象:一套19.3ADG备库,备库安装完集群补丁重启后,发现需要重新apply很久以前的归档日志。分析过程:1、备库安装完补丁后,启动备库的日志恢复功能,在启动过程中报错,详细的日志如下所示。2024-04-16T18:34:40.895637+08:00BeginningStandbyCrashRecovery. Startedlogm......
  • Oracle日志记录模式 - LOGGING、FORCE LOGGING、NOLOGGING模式介绍
    一、日志记录模式(LOGGING、FORCELOGGING、NOLOGGING)内容转载自:https://www.cnblogs.com/tk-bolg/p/12867772.html1.三者的含义LOGGING:当创建一个数据库对象时将记录日志信息到联机重做日志文件。LOGGING实际上是对象的一个属性,用来表示在创建对象时是否记录REDO日志,包括......
  • 在 Windows 环境下,有几种开源的日志监控软件可供选择,包括:
    日志监控软件通常根据其功能可以进行以下分类:日志收集:收集各种来源的日志数据,包括服务器日志、应用程序日志、操作系统日志等。支持多种日志格式和传输方式,如文本日志、JSON格式、Syslog、WindowsEventLog等。日志过滤与解析:对收集到的日志数据进行过滤和解析......
  • Python调用Graylog APi 分析401错误登录日志
    ret_lst处理完成后是一个list,内容如下:[{'c_ip':'10.10.202.139','uname':'ee'},{'c_ip':'10.10.202.139','uname':'tt'},{'c_ip':'192.168.195.131','uname......
  • MySQL日志
    一条update的执行流程执行流程分为在server层和存储引擎层;server是MySQL都有的,其日志文件是binlog;存储引擎是不同的,undolog,redolog是innodb特有的。首先是客户端创建请求,然后去服务层请求;然后是server的连接器,连接器的作用是校验用户是否有权限进行查询等等。(在8.0版本之前有......
  • dremio 日志配置
    dremio对于日志的配置支持基于系统属性以及环境变量的模式,对于环境变量实际上也是使用的系统属性参考配置系统属性可以直接通过dremio-env文件添加-Ddremio.log.path=/opt/dremio/logs环境变量直接添加环境变量就可以了DREMIO_LOG_DIR=/o......
  • java项目日志配置文件
    logback<!--name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。--><propertyname="log.path"value="logs"/><!--2.输出到文档--><!--2.1level为DEBUG日志,时间滚动输出--><appendername="DE......
  • Linux日志工具---journalctl
    目录确实如此,Linux系统中的日志系统是维护系统健康、安全和性能的关键组成部分。自从systemd成为众多Linux发行版的默认初始化系统以来,journalctl成为了管理和查询这些系统日志的主要工具。journalctl是与systemd-journald日志系统配套的命令行实用程序。systemd-journald......