一、报错记录
系统环境为ubuntu 18.04,若是centos,其实命令也差不多,可能依赖的组件名字不太一样。
好家伙,按照官方文档编译安装,不行啊。虽然最后成功安装esalert,但是你运行不起来怎么办?

Traceback (most recent call last): File "/usr/local/bin/elastalert-test-rule", line 6, in from pkg_resources import load_entry_point File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3088, in @_call_aside File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside f(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 576, in _build_master return cls._build_from_requirements(__requires__) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 589, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 783, in resolve raise VersionConflict(dist, req).with_context(dependent_req)pkg_resources.ContextualVersionConflict: (cryptography 2.1.4 (/usr/lib/python2.7/dist-packages), Requirement.parse('cryptography>=2.8'), set(['pyOpenSSL']))
python setup.py install 有部分报错

二、解决方法
新版本0.2.1+的版本都需要python3环境,2不兼容
我所使用的版本是2020年6月9日最新版0.2.4,针对上述遇到的问题怎么解决。
安装python3咯---去互联网搜索吧
最好就是原始环境,啥也没有,我呢是在现有ES集群中安装的,有python2环境,所以有问题了。
which python3/usr/bin/python3which python2/usr/bin/python2which pip/usr/bin/pip //也有可能在/usr/local/bin/pip,操作思路一样which pip2/usr/bin/pip2Which pip3发现没有,sudo apt install python3-pip python3-dev 安装cd /usr/binsudo rm -f pythonsudo ln –s python3 pythoncd /usr/bin/sudo rm –f pipsudo ln –s pip3 pipsudo pip install -r requirements.txt //只要这个不报错就行sudo pip install -r requirements-dev.txtsudo python setup.py install
中间可能报其他错误
sudo pip install pyOpenSSL
配置使用错误
sudo python -m elastalert.elastalert --debug --rule pro_rules/frequency.yaml

观察上图 倒数两行,大义就是语法错误,定位到line 20, column 1
感觉没啥错误,就是个name。对比上文和yaml格式要求,嗯,这里需要个空格,关闭后继续执行,发现报错25行有个错误,继续修改,针对文档格式进行编辑,修改完成后测试,成功,开心。
