您的位置:首页 > 其它

logstash日志收集展示与邮件报警

2016-05-06 14:48 393 查看
有时候我们需要对一些服务器日志进行分析,并对其中错误的日志进行报警,在这里我们采用logstash来收集这些日志,和采用自己开发的邮件发送系统来发送错误日志数据。

例如我们有几个文件需要监控(BI日志)

我们可以通过配置logstash来收集这些文件日志

input{

file{

path=> "/diskb/bidir/smartbi_prd_*/apache-tomcat-5.5.25_prd_*/logs/catalina.out"

start_position=> "beginning"

sincedb_path=> "/diskb/logstashlog/log"

codec => plain {

charset => "GBK"

}

}

}

filter {

multiline {

pattern => "^\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}"

negate => true

what => "previous"

}

mutate{

add_field => {

"logmessage" => "%{[message]}"

}

split => ["message"," "]

add_field => {

"logdate" => "%{[message][0]}"

"logtime" => "%{[message][1]}"

"logstate" => "%{[message][2]}"

}

remove_field => ["message"]

}

if [logdate] !~ /\d{2}-\d{2}/ {

drop{}

}

urldecode {

all_fields => true

}

}

output{

#对错误的日志写入到文件中,供邮件发送使用的附件

#其实在这里可以直接使用logstash自带的邮件发送系统,只不过部门要求邮件发送的频率不能

#高于一分钟,故只能采用外部定时发送

if [logstate] =~ /ERROR/ {

file {

path => "/diskb/bi_error_log/bi_error.log"

}

}

elasticsearch{

hosts => [ "10.130.2.53:9200","10.130.2.46:9200","10.130.2.54:9200" ]

flush_size=>50000

workers => 5

index=> "logstash-bi-tomcat-log"

}

}

通过启动这个conf文件,就可以把全部数据导入ES中,可由kibana展示,具体展示不再赘述;而同时把状态为error的日志导入到一个文本中,供邮件发送系统使用。至此完毕。

下附上:发送邮件脚本

#!/bin/sh

#sendmail error log to someone

#发送的附件路径

attachement="/diskb/bi_error_log/*.log"

if [ ! -f $attachement ];then

echo "file is not exist"

exit 1

fi

#收件人

maillist="zhanglibing@staff.hexun.com"

cat > /etc/nail.rc<<EOF

set from=bigdata@staff.hexun.com

set smtp=60.28.250.158

set smtp-auth-user=bigdata@staff.hexun.com

set smtp-auth-password=******

set smtp-auth=login

EOF

#echo "邮件内容" | /usr/local/mailx-12.4/mailx -v -s "邮件标题" [-a "附件路径"] [-c "密送人mail"] 收件人

echo "Hello, please receive the error log for BI from hexun.bdc." | /usr/local/mailx-12.4/mailx -v -s "[The system sends]" -a $attachement $maillist

#发送成功,删除文件

rm -fr $attachement

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: