zoukankan      html  css  js  c++  java
  • elastalert 基于EFK环境的邮件报警

    1.安装elastalert  安装的python必须是2.7以上的版本

    安装的路径  /usr/local/src

    安装依赖

    yum -y install wget openssl openssl-devel gcc gcc-c++ 

    下载pytho的安装包  下载在/usr/local/src

    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

    解压压缩包 检查环境并编译安装

    解压压缩包
    tar -zxf Python-3.6.2.tgz
    进入那个目录
    cd /usr/local/src/Python-3.6.2
    检查环境
    ./configure --prefix=/usr/local/python --with-openssl
    编译安装
    make && make install

    删除系统自带的python (应为版本太低了)

    rm -rf /usr/bin/python

    创建一个环境变量 

    vim /etc/profile
    在最后一行加入一行命令
    export export PATH=$PATH:/usr/local/python/bin
     
    source /etc/profil

    创建两条软连接

    #创建两条软连接
    ln -s /usr/local/python/bin/python3.6 /usr/bin/python
    ln -s /usr/local/python/bin/pip3 /usr/bin/pip
    pip install --upgrade pip  //升级pip

    输入python显示Python 3.6.2

     退出quit()

    vim /usr/bin/yum
    vim /usr/libexec/urlgrabber-ext-down 

     下载elastalert的安装包  下载到得路径是/usr/local/src

    wget https://github.com/Yelp/elastalert/archive/v0.2.1.tar.gz
    tar xf v0.2.1.tar.gz
    cd elastalert-0.2.1

    安装 cd elastalert-0.2.1

    pip install "elasticsearch<7,>6"
    pip install -r requirements.txt
     python setup.py install
    ll /usr/local/python/bin/elastalert*  可以看到生成的几个命令

      

    安装之后会自带三个命令

    elastalert-create-index:ElastAlert会把执行记录存放到一个ES 索引中,该命令就是用来 创建这个索引的,默认情况下,索引名叫elastalert_status。其中有4个 _type,都有 自己的@timestamp字段,所以同样也可以用kibana,来查看这个索引的日志记录情况。
    
    elastalert-rule-from-kibana:从Kibana3已保存的仪表盘中读取Filtering设置,帮助生成config.yaml里的配置。不过注意,它只会读取filtering,不包括queries。
    
    elastalert-test-rule:测试自定义配置中的rule设置 
    ln -s /usr/local/python/bin/elastalert* /usr/bin

    以上操作完成后在root目录下输入ela按tab是否能补全在按tab是否能出现以下四个字母

     输入elastalert-create-index

    只需输入箭头对应的(host对应你的Elasticsearch的主机ip,port对应你的Elasticsearch的端口)

    Use SSL? t/f:输入f    其他的一律都是回车  这是创建好的状态

    返回到你的kibana浏览器页面出现以下三个代表创建成功(有些许的延迟)

    进入elastalert-0.2.1拷贝一个配置文件

    [root@kafka01 elastalert-0.2.1]#
    [root@kafka01 elastalert-0.2.1]# pwd
    /usr/local/src/elastalert-0.2.1
    [root@kafka01 elastalert-0.2.1]# cp config.yaml.example   config.yaml

    vim config.yaml  进入配置文件注释空格全部干掉(/g^#/d)

    rules_folder: wg_rules  #规则目录,所有的规则放在这个目录下
    run_every:
      minutes: 1    #运行频率1分钟
    buffer_time:
      minutes: 15   #取值范围,15分钟以内的内容
    es_host: 10.0.0.73      #es的IP地址
    es_port: 9200           #es的端口
    writeback_index: elastalert_status      #这是在kibana的里的索引
    writeback_alias: elastalert_alerts      #别名
    alert_time_limit:
      days: 2       #运行失败重置的时间是2天

    在当前目录下mv  example_rules   wg_rules

    进入wg_rules

    新建红框两个文件(注意格式)

     vim nginx_007.yaml

    es_host: 10.0.0.73   #es主机IP地址
    es_port: 9200        #es端口
    name: nginx rule #规则名字必须是唯一的
    type: frequency  #类型为频率
    index: webnginx* ## 监控的索引(这里一定注意是你在kibana索引*代表以xxx的结尾)
    num_events: 5  ## 限定时间内,发生的次数
    timeframe:
      hours: 1  ## 一小时内有5个错误日志写进ES的话就发送邮件
     
    filter:
      - regexp:   ##以正则的方式匹配, “.*” 就是已有日志写进es就算
         message: ".*"
     
    alert:  #方式(邮件)
    - "email"
     
    email:
    - "707132357@qq.com"
     
    smtp_host: smtp.qq.com
    smtp_port: 25
    smtp_ssl: false
    #smtp_auth_file: /usr/local/src/elastalert-0.2.1/wg_rules/email_auth.yaml
    smtp_auth_file: "email_auth.yaml"
    from_addr: 707132357@qq.com

    vim email_auth.yaml

    user: '707132357@qq.com' #qq邮箱地址
    password: 'wvozyiwhymbhbdei' #此地方写你qq邮箱的授权码

     启动elastalert

    elastalert --config /usr/local/src/elastalert-0.2.1/config.yaml --rule /usr/local/src/elastalert-0.2.1/wg_rules/nginx_007.yaml --verbose

    启动后会显示up启动成功 

    INFO:elastalert:Starting up
    INFO:elastalert:Disabled rules are: []
    INFO:elastalert:Sleeping for 59.999868 seconds 

    如果没有命中每分钟会刷新一次

    去有nginx机器上ab压测一些日志

    显示

     代表你创建规则成功匹配

     这里表示你的规则成功命中

  • 相关阅读:
    jQuery EasyUI API 中文文档 数字框(NumberBox)
    jQuery EasyUI API 中文文档 数值微调器(NumberSpinner)
    jQuery EasyUI API 中文文档 日期时间框(DateTimeBox)
    jQuery EasyUI API 中文文档 微调器(Spinner)
    jQuery EasyUI API 中文文档 树表格(TreeGrid)
    jQuery EasyUI API 中文文档 树(Tree)
    jQuery EasyUI API 中文文档 属性表格(PropertyGrid)
    EntityFramework 数据操作
    jQuery EasyUI API 中文文档 对话框(Dialog)
    jQuery EasyUI API 中文文档 组合表格(ComboGrid)
  • 原文地址:https://www.cnblogs.com/Zrecret/p/12071784.html
Copyright © 2011-2022 走看看