k8s elk 架设elastalert - 对slack发出及时的警报系统

【YC的寻路青春】

架设好elk之後,除了kibana可以看以外 想要做及时的警报系统
我们这边选择用slack(也有很多的选择啦 寄信、Post、TG等等)

这边的namespace用得是yc-log 记得改成想要的形状 (没改过就是default)

我们先新增两个config档案
这个主要是修改他的查询频率

kind: ConfigMap
apiVersion: v1
metadata:
  name: elastalert-config
  namespace: yc-log
data:
  elastalert_config: |-
    ---
    rules_folder: /opt/rules       
    scan_subdirectories: false
    run_every:                     # 查询频率
      minutes: 1
    buffer_time:
      minutes: 15
    es_host: elk-elasticsearch.yc-log.svc.cluster.local  #1
    es_port: 80 #2
    writeback_index: elastalert
    use_ssl: False
    verify_certs: True
    alert_time_limit:             
      minutes: 2880

#1 这边请填自己的elasticsearch 大概会长这样 elk-elasticsearch.yc-log.svc.cluster.local
#2 port号记得改

新增第二个config
这个主要是修改规则

kind: ConfigMap
apiVersion: v1
metadata:
  name: elastalert-rules
  namespace: yc-log
data:
  rule_config.yaml: |-
    name: yc-error  #1     
    es_host: elk-elasticsearch.yc-log.svc.cluster.local
    es_port: 80

    type: any
    index: yc-test-*              #2

    filter:
    - query:
        query_string:
          query: "LOGLEVEL:ERROR"  #3

    alert:
     - "slack" 
     
    slack_webhook_url: 
     "https://hooks.slack.com/services/T1PH69YNN/B022L09HU3B/ycisgoodguy" #4

#1 这边会是到时候寄信时的一个token
#2 这边是你想要监控的index
#2.1 如果你想要监控多个从kibana来的index , 就应该写index: 'yc-test-','yc2-test-'
#3 这边记得改成你想要过滤的内容 请进kibana好好看一下 我这边写的是如果我的LOGLEVEL这个type是ERROR的 进行警报
#4 这边填slack机器人的url 文章後面补充

最後就是Deployment了,用volumes把这两个config档案丢到该丢的位置

kind: Deployment
apiVersion: apps/v1
metadata:
  name: elastalert
  namespace: yc-log
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elastalert
  template:
    metadata:
      labels:
        app: elastalert
    spec:
      volumes:
        - name: rules
          configMap:
            name: elastalert-rules-test
            defaultMode: 420
        - name: config
          configMap:
            name: elastalert-config
            items:
              - key: elastalert_config
                path: elastalert_config.yaml
            defaultMode: 420
      containers:
        - name: elastalert
          image: 'jertel/elastalert-docker:0.2.4'
          resources:
            limits:
              cpu: 50m
              memory: 256Mi
            requests:
              cpu: 50m
              memory: 256Mi
          volumeMounts:
            - name: config
              mountPath: /opt/config
            - name: rules
              mountPath: /opt/rules

就完成啦 记得去
kubectl logs elastalert-ycycycycyc -n yc-log
看一下有没有啥问题

之後再补一篇 如何方便test的方法


<<:  Python 多赋值问题,推论过程与结果

>>:  入侵检测系统( intrusion detection system :IDS)

Day 8 - 原型 (7): 完成

前言 今天完成原型剩下的工作吧。 帖子修正 回覆帖子 流程就是输入要显示的名字及回覆内容, 最後到点...

滥用案例(misuse cases)

-用例和滥用案例(来源:https://en.wikipedia.org/wiki/Misuse_...

Day 30: 完赛总结

终於完赛啦! 这次挑战赛仅聚焦於结构化资料的资料分析,非结构化资料(图片声音影片等等),就需要用到深...

Day27 Web Security - Social Engineering

上次我们讲到关於资讯的收集,就要提到这个攻击, " Social Engineering ...

Know all about types of research papers in Australia

Know all about types of research papers in Austral...