一、 ELK与zabbix有什么关系?
ELK大家应该比较熟悉了,zabbix应该也不陌生,那么将ELK和zabbix放到一起的话,可能大家就有疑问了?这两个放到一起是什么目的呢,听我细细道来。
ELK是一套日志收集套件,它其实有由Elasticsearch、Logstash和Kibana三个软件组成,通过ELK可以收集系统日志、网站日志、应用系统日志等各种日志数据,并且还可以对日志进行过滤、清洗,然后进行集中存放并可用于实时检索、分析。这是ELK的基础功能。
但是有些时候,我们希望在收集日志的时候,能够将日志中的异常信息(警告、错误、失败等信息)及时的提取出来,因为日志中的异常信息意味着操作系统、应用程序可能存在故障,如果能将日志中的故障信息及时的告知运维人员,那么运维就可以第一时间去进行故障排查和处理,进而也就可以避免很多故障的发生。
那么如何才能做到将ELK收集的日志数据中出现的异常信息及时的告知运维人员呢,这就需要用到zabbix了,ELK(更确切的说应该是logstash)可以实时的读取日志的内容,并且还可以过滤日志信息,通过ELK的读取和过滤功能,就可以将日志中的一些异常关键字(error、failed、OutOff、Warning)过滤出来,然后通过logstash的zabbix插件将这个错误日志信息发送给zabbix,那么zabbix在接收到这个数据后,结合自身的机制,然后发起告警动作,这样就实现了日志异常zabbix实时告警的功能了。
二、Logstash与zabbix插件的使用
Logstash支持多种输出介质,比如syslog、HTTP、TCP、elasticsearch、kafka等,而有时候我们想将收集到的日志中一些错误信息输出,并告警时,就用到了logstash-output-zabbix这个插件,此插件可以将Logstash与zabbix进行整合,也就是将Logstash收集到的数据进行过滤,将有错误标识的日志输出到zabbix中,最后通过zabbix的告警机制进行触发、告警。
logstash-output-zabbix是一个社区维护的插件,它默认没有在Logstash中安装,但是安装起来也很容易,直接在logstash中运行如下命令即可:
/usr/local/logstash/bin/logstash-plugin install logstash-output-zabbix
其中,/usr/local/logstash是Logstash的安装目录。
此外,logstash-plugin命令还有多种用法,我们来看一下:
2.1、列出目前已经安装的插件
将列出所有已安装的插件
/usr/local/logstash/bin/logstash-plugin list
#将列出已安装的插件及版本信息
/usr/local/logstash/bin/logstash-plugin list --verbose #将列出包含namefragment的所有已安装插件 /usr/local/logstash/bin/logstash-plugin list "http" #将列出特定组的所有已安装插件( input,filter,codec,output) /usr/local/logstash/bin/logstash-plugin list --group input
2.2、安装插件
要安装某个插件,例如安装kafka插件,可执行如下命令:
/usr/local/logstash/bin/logstash-plugin install logstash-output-kafka
要使用此命令安装插件,需要你的电脑可以访问互联网。此插件安装方法,会检索托管在公共存储库(RubyGems.org)上的