ElastAlert告警

第一部分:Centos6.8上搭建Python环境

注:ElastAlert是用Python写的

参考网址:https://www.cnblogs.com/hengwei/p/5464678.html


第二部分:安装ElastAlert

1、安装最新发布的ElastAlert版本

      pip install elastalert

或者

      git clone https://github.com/Yelp/elastalert.git

2、进入到本地代码目录

     cd elastalert

3、安装setuptools(根据elasticsearch版本)

     pip install "setuptools>=11.3"

4、安装几个依赖

     yum-y install glib gcc python-devel  libffi-devel openssl-devel

5、安装  elastalert

     python setup.py install

6、根据Elasticsearch的版本,需要手动安装正确版本的elasticsearch-py

     Elasticsearch 5.0+ pip install"elasticsearch>=5.0.0"

     Elasticsearch 2.X  pip install "elasticsearch<3.0.0"

7、Pip install -r requirements.txt (依赖)


第三部分:使用ElastAlert

1、创建索引

    elastalert-create-index

    可能需要在Python安装目录下执行该命令

2、修改的配置文件

    cp config.yaml.example config.yaml    

    /home/shixf/Elastalert/elastalert/config.yaml

    /home/shixf/Elastalert/elastalert/example_rules/my_rule.yaml

config.yaml:

rules_folder: example_rules

# 每隔一分钟查询一次elasticsearch
run_every:
  minutes: 1

# 查询时间范围15分钟
buffer_time:
  minutes: 15

# Elasticsearch集群IP
es_host: 10.111.9.196

# Elasticsearch集群端口
es_port: 8890

# 上一步创建的索引名称
writeback_index: elastalert_syatus_test

alert_time_limit:
  days: 2

my_rule.yaml:

# Elasticsearch集群IP
es_host: 10.111.9.196

# Elasticsearch集群端口
es_port: 8890

#use_ssl: True

#es_username: someusername
#es_password: somepassword

# (Required)
# 是此规则的唯一名称。如果两个规则共享相同的名称,ElastAlert将不会启动。
name: XF_TEST1

# (Required)
# 当给定时间范围内至少有一定数量的事件时,此规则匹配
# 该规则需要两个附加选项:num_events、timeframe
type: frequency

# (Required)
# 要查询的索引的名称
# index: logstash-*
# index: event-security*
index: event-gdj-tsoc*

# 将触发警报的事件数量
# 此参数特定于频率类型,是触发警报时的阈值
num_events: 1

# um_events必须发生的时间
#(组合在一起的意思是:在4个小时内有一次触发报警的事件就会触发报警)
timeframe:
  hours: 4

# 过滤器
filter:
  - query_string:
      query: "2018-06-27"

# 告警方式
alert:
- "email"

# (required, email specific)
# 
# 要使用的SMTP主机
smtp_host: smtp.qq.com
# 要使用的端口。默认值是25,587也可以
smtp_port: 587

# 包含SMTP认证凭证的文件的路径。路径可以是绝对的或相对于给定的规则。
# 它应该是YAML格式并包含两个字段,user并且password。如果不存在,则不会尝试进行认证。
smtp_auth_file: smtp_auth_file.yaml

email_reply_to: 发送人的@qq.com

from_addr: 发送人的@qq.com

# 将警报发送到的地址或地址列表
email:
- "接收人的@qq.com"

新建文件smtp_auth_file.yaml

user: "发送人的@qq.com"
password: "byzmrsirxceebeeh"

注意:user填写qq邮箱就可以了,password不是我们qq密码



3、启动测试规则(这步可以省略)

cd /home/shixf/Elastalert/elastalert/example_rules

/usr/local/elastAlert/python2.7/bin/elastalert-test-rule --alert /home/shixf/Elastalert/elastalert/example_rules/my_rule.yaml

4、启动

python -m elastalert.elastalert --config /home/shixf/Elastalert/elastalert/config.yaml --verbose --rule /home/shixf/Elastalert/elastalert/example_rules/my_rule.yaml


第四部分:在Python的虚拟环境中运行ElastAlert

1、Centos6.8上安装virtualenv

virtualenv 是一个创建隔绝的Python环境的工具

参考网址:https://www.cnblogs.com/liuyansheng/p/6141197.html

https://blog.csdn.net/blueheart20/article/details/70598031

1、下载安装virutalenv

pip install virtualenv

我们这是   /usr/local/elastAlert/python2.7/bin/pipinstall virtualenv


2、测试是否安装成功:(这步有时会报错,不过不影响)

virtualenv –h

3创建python虚拟环境

使用virtualenv命令创建python虚拟环境:virtualenv [虚拟环境名称]

 virtualenv env1

 执行后,在本地会生成一个与虚拟环境同名的文件夹。

  如果你的系统里安装有不同版本的python,可以使用--python参数指定虚拟环境的python版本:

virtualenv --python=/usr/local/elastAlert/python2.7/bin/python2.7 env1


4、启动虚拟环境

进入虚拟环境目录,启动虚拟环境,如下:

/home/shixf/virtualenv/sxfEnv1 --------------位置

cd env1/

source bin/activate

python -V

此时命令行前面会多出一个括号,括号里为虚拟环境的名称。以后easy_install或者pip安装的所有模块都会安装到该虚拟环境目录里。


5、退出虚拟环境

退出虚拟环境:deactivate



第五部分:在虚拟环境中离线安装ElastAlert插件需要的依赖

离线安装

1、     位置

/home/shixf/virtualenv20180625/env1

2、     安装

Cd /home/shixf/virtualenv20180625/env1

pip install --no-index--find-links=/home/shixf/Elastalert/loadPackage20180625 asn1crypto==0.24.0

注意:需要先把依赖包下载下来
  loadPackage20180625:依赖包在的位置 asn1crypto==0.24.0:依赖名称和版本

因为我们这里之前是在线安装过一次,所以可以直接生成requestments.txt文件,

然后通过该文件把依赖包下载下来。

可以搜索“Python依赖包迁移”和“通过requestments.txt文件离线安装依赖包”了解详情。

本想一次性导入所有的依赖包,但是没有成功,所以这里是一个个导的。





猜你喜欢

转载自blog.csdn.net/qq_38369069/article/details/80842432