【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的方法