• 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压测一些日志

    显示

     代表你创建规则成功匹配

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

  • 相关阅读:
    pycharm优化
    Shell基本命令
    Django项目订单接入支付宝
    浏览器的同源策略及跨域解决方案
    python datetime时区转换
    Django contenttypes 组件
    MySQL使用版本号实现乐观锁
    MySQL DDL Demo
    Redis分布式锁
    Zookeeper分布式锁
  • 原文地址:https://www.cnblogs.com/Zrecret/p/12071784.html
Copyright © 2020-2023  润新知