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

【YC的寻路青春】

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

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

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

kind: ConfigMapapiVersion: v1metadata:  name: elastalert-config  namespace: yc-logdata:  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: ConfigMapapiVersion: v1metadata:  name: elastalert-rules  namespace: yc-logdata:  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: DeploymentapiVersion: apps/v1metadata:  name: elastalert  namespace: yc-logspec:  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的方法


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章