ELK+logstash配置日志报警

1 需求

通过读取日志文件监控,过滤日志信息的异常关键词,如ERR,error,Failed,warning等信息,将这些带有异常关键词的异常日志信息过滤出来,然后输出到zabbix,通过zabbix告警机制实现触发告警,下面环境是filebeat作为采集端,最后由logsatsh拉取日志并过滤,输出到zabbix

2 客户端——tomcat日志格式统一

修改tomcat7 默认catalina .out运行日志格式【logging.properties】

vim /usr/local/tomcat1/conf/logging.properties
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
#后面添加两行配置
1catalina.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS,%1$tL %4$s %3$s %2$s %5$s %6$s%n
——————————
——————————

%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS,%1$tL %1$te %4$s %3$s %2$s %5$s %6$s%n

年               月          日         时        分         秒      毫秒     
注意:每个数字代表不同的日志内容,1代表时间,%1$tL是毫秒

修改tomcat8 默认catalina .out运行日志格式【logging.properties】

# vim /usr/local/tomcat/conf/logging.properties

#java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter     #将其删除或者注释掉
添加下面两行配置,
1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = %1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS,%1$tL %1$te %4$s %3$s %2$s %5$s %6$s%n

修改log4j日志格式

vim log4j.properties  修改为ISO8601
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - %m%n

log4j日志格式参考:https://www.codejava.net/coding/common-conversion-patterns-for-log4js-patternlayout

3 客户端配置-filebeat
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /data/tomcat/apache-tomcat-8.0.24/logs/catalina.out
fields:
  env: 5pao-203     ##注意名称
 - drop_fields:
   fields: ["beat", "input", "source", "offset", "prospector"]
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
  name: 192.168.1.203   ##注意名字
setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
output.logstash:
  hosts: ["1.1.1.1:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
4 ELK——logstash安装插件

如果我们将logstash收集的日志输出到zabbix告警,就必须要用到logstash-output-zabbix插件,通过这个插件将logstash与zabbix整合,logstash收集到的数据过滤出错误信息的日志输出到zabbix中,最后通过zabbix告警机制触发

cd /elk/logstash-7.4.0/bin
./logstash-plugin install logstah-output-zabbix
5 ELK——logstash配置文件

logstash启动多个配置文件方法
nohup ./bin/logstash -f config/conf.d/ >/dev/null 2>&1 &

filter {
    if [fields][env] == "5pao-203" { 
        ##增加zabbix需要的两个字段
        mutate {
               add_field => [ "[zabbix_key]", "oslogs" ]
               add_field => [ "[zabbix_host]", "192.168.1.203" ]
        }
        ##过滤日志,将没有日期的一条日志归到前一条
        multiline {
                 pattern => "^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}"
                 negate => true  
                 what => "previous"  
        }
       ##将message日志中的字符串时间格式转化成@timestamp - logstash
        grok {
            match => {
            "message" => "(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})" }
         }
        date {
            match => ["datetime","yyyy-MM-dd HH:mm:ss,SSS"]
            target => "@timestamp"
        }
        
     }
    
}
##输出到zabbix
output{
       if [message]  =~ /(ERR|error|ERROR|Failed)/  {   
              zabbix {
                        zabbix_host => "[zabbix_host]"     
                        zabbix_key => "[zabbix_key]"       
                        zabbix_server_host => "2.2.2.2" 
                        zabbix_server_port => "9900"           
                        zabbix_value => "message" 
                        }
                    }
}

6 客户端配置-zabbix

注意:客户端机器连接不能使用PSK加密方式
1> 修改agent端

注释配置文件中psk加密部分并重启zabbix
vim /etc/zabbix/zabbix_agentd.conf
#psk encryption
#TLSConnect=psk
#TLSAccept=psk
#TLSPSKFile=/etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
##unique psk value
#TLSPSKIdentity=PSK VM_23_8_centos1576636711
service zabbix-agent restart

2>修改zabbix界面加密方式


7 zabbix创建监控模板

创建模板


图片.png

创建应用集


图片.png

创建监控项
图片.png

创建触发器


图片.png
{logstah-output-zabbix:oslogs.strlen()}>0

注意

zabbix注意触发器,监控的类型为日志|文本,不能是数字,否则会报错
我遇到的报错:zabbix 提供错误的项目值类型"数字 (无正负)"给触发器函数"strlen()"
zabbix触发器方法strlen - 支持类型
它支持类型包括:str, text, log

验证zabbix客户端
在tomcat日志中输入error日志,如

echo "Feb  4 11:44:20 izshvqfkb75a89z sshd[8549]: error: Received disconnect from 221.197.133.59: 0:  [preauth]">>/data/tomcat/apache-tomcat-8.5.50-crm/logs/catalina.out
图片.png

8 报错

问题1:无法触发报警(是指zabbix端无法接收到logstash传输的log,界面不会显示)
logstash日志中报错:
cannot process item "oslogs" trap: connection from "10.50.20.3" rejected
zabbix server日志报错
1287:20200204:202522.748 connection of type "unencrypted" is not allowed for host "111.111.112.112"
原因:zabbix添加使用PSK加密方式,注意日志中的"unencrypted",去掉PSK加密
问题2:已经触发了报警但是无法发送邮件
没有发送出报警检查已经触发了,问题出现在没执行发送邮件的动作上,这个时候小伙伴就要重点关注下用户的权限以及动作的配置以及触发器的配置上了。
我这边重新修改了配置

图片.png

以及
图片.png

邮件就可以发送成功了
问题3
报警是触发了,可是你要是不手动确认它并不会再次发送邮件,所以收到报警需要小伙伴们手动确认下
图片.png

在触发器中点击 Allow manual close,否则手动点击关闭是关闭不了的啊
图片.png

参考: https://www.zabbix.com/documentation/4.0/zh/manual/config/events/manual_close

问题4
这个问题还没有解决,logstash配置文件中[host][name]不被识别,目前只能是填写IP,如果是多个客户端就写多个文件

add_field => [ "[zabbix_host]", "%{[host][name]}" ]

参考:> https://www.cnblogs.com/bixiaoyu/p/9665677.html
https://blog.csdn.net/miss1181248983/article/details/97130206

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容