logstash 监控海量日志并报警

Logstash日志监控实践
本文介绍使用Logstash进行高效日志监控的方法,包括通过特定条件进行报警设置,如URL长度、HTTP状态码及响应时间等,并提供了一个具体的配置脚本实例。

logstash轻松过滤海量日志,研究下logstash的其它插件,可以轻松监控日志并报警,爽歪歪了,直接附上脚本

监控说明:

1
2
3
1、sonp.php son-server.php 这两个URL小于100字节,状态码非200,报警
2、所有状态码非200,报警
3、所有请求超过10S,报警

邮件本机配置postfix或者sendmail,


监控脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
input {
        redis {
    host => "127.0.0.1"
    port => "6379"
    data_type => "list"
    key => "logstash"
    type => "redis-input"
    codec => "json"
           }
   #我这里直接是从redis取出日志,上篇有介绍,当然也可以直接从日志文件取        
}
 
filter{
mutate {
    convert => [ "[bytes_read]""float" ]
    #为了输出编码一致,我们这里将字节转成float
  }
 
  grok {
    match => [ "message" ,"sonp\.php|son-server\.php" ]
   #日志中匹配的内容,
    
   add_tag => [myurl]
 
}
}
 
 
output {
    
 if [response] != "200" or [request_time] >= 10 {  
 
  #监控状态码非200 或者 请求时间大于10s
 exec {
   
      command => "echo '%{@timestamp}: %{message}' | mail -s 'Log_error: request time or response'  urname@urdomain"
    
        }
  }
 
 
 
  if [bytes_read] < 100 and [response] != "200"{
   #监控字节数小于100和请求非200
exec {
    tags => [myurl]
   
     command => "echo '%{@timestamp}: %{message}' | mail -s 'Log_error: bytes and response' urname@urdomain"       
        }
}
 
}
1
#logstash/bin/logstash agent -f log_monitor.conf &

后台启动脚本,静静等待邮件报警吧~~


本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1652252

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值