logstash发邮件

ELK(Elasticsearch+Logstash+Kibana)实战部署指南:从零搭建日志分析平台 本文详细介绍了ELK(Elasticsearch+Logstash+Kibana)日志分析平台的实战部署指南,从环境准备到深度配置,再到性能优化和故障排查,帮助用户从零搭建高效的日志分析系统。通过实战案例和避坑指南,提升日志管理效率,适用于企业级应用场景。 阅读详情
1、合并日志

php的错误日志中常常会出现这样的日志

[03-Jun-2013 13:15:29] PHP Fatal error:  Uncaught exception 'Leb_Exception' in /data1/www/bbs.xman.com/htdocs/framework/xbox/ufo.php:68
Stack trace:
#0 /data/www/bbs.xman.com/htdocs/framework/dao/abstract.php(299): Leb_Dao_Pdo->connect(Array, 'read')
#1 /data/www/bbs.xman.com/htdocs/framework/dao/pdo.php(108): Leb_Dao_Abstract->initConnect(false)
#2 /data/www/bbs.xman.com/htdocs/framework/dao/abstract.php(1123): Leb_Dao_Pdo->query('SELECT * FROM `...')
#3 /data/www/bbs.xman.com/htdocs/framework/dao/abstract.php(1217): Leb_Dao_Abstract->select(Array)
#4 /data/www/bbs.xman.com/htdocs/framework/model.php(735): Leb_Dao_Abstract->daoSelect(Array, false)
#5 /data/www/bbs.xman.com/htdocs/app/configure/model/configure.php(40): Leb_Model->find()
#6 /data/www/bbs.xman.com/htdocs/app/search/default.php(131): Configure->get_configure_by_type('news')
#7 /data/www/bbs.xman.com/htdocs/framework/dispatcher.php(291): defaultController->indexAction()
#8 /data/www/bbs.xman.com/htdocs/framework/dispatcher.php(222): Leb_Di in /data1/www/bbs.xman.com/htdocs/framework/dao/pdo.php on line 68
这个时候 logstash一般会只记录上面一行,所以这类的日志就看不全了。怎么办呢?logstash提供了一个功能解决了这个问题就是"multiline"
这个filter的功能顾名思义就是对多行的日志进行处理 这个是官网上的说明
multiline filter
This filter will collapse multiline messages into a single event.
The multiline filter is for combining multiple events from a single source into the same event. 

下面看下格式

filter {
  multiline {
    type => "type"   #类型,不多说
    pattern => "pattern, a regexp" #参数,也可以认为是字符,有点像grep ,如果符合什么字符就交给下面的 what 去处理
    negate => boolean
    what => "previous" or "next" #这个是符合上面 pattern 的要求后具体怎么处理,处理方法有两种,合并到上面一条日志或者下面的日志
  }
}
The 'negate' can be "true" or "false" (defaults false). If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true)
这个 negate 有两种 true 或者 false,默认是 true,如果选了false 的话估计就是取反的意思。
看看例子

filter {
  multiline {
    pattern => "^[^\[]"
    what => "previous"
  }
  }

这个例子是针对我上面的php日志写的,意思就是 如果不是以 "["开头的日志 都跟上一个日志合并在一起。以此类推遇到其他的多行日志也可以按照这个方法来做合并。


2、logstash 根据@message内容来触发命令"exec"
 我当初的想法是这样的,如果php日志文件中出现 "PHP Fatal error"的时候将相关的错误日志发给相关开发的负责人。一开始想到了 output 的 email 功能,但我尝试
了很多次这个email功能不太稳定,有时候能发出来邮件有的时候却发不出来。不知道是邮件服务器的问题还是 logstash本身的问题,具体配置如下

output {
email {
   match => [ "@message", "aaaaa" ]
   to => "storyskya@gmail.com"
   from => "monitor@mib.com.cn"
   options => [ "smtpIporHost", "smtp.mibnet.com",
                "port", "25",
                "userName", "monitor@mib.com.cn",
                "starttls", "true",
                "password", "opmonitor",
                "authenticationType", "login"
              ]
   subject => "123"
   body => '123'
   via => smtp
}
}
后来换了方法,改用 grep+exec来做,具体思路就是 grep 过滤到了 PHP Fatal error 之后根据域名将邮件发给具体人员,格式如下

filter {
  grep {
    match => [ "@message", "PHP Fatal error" ]
    drop  => false
    add_tag => [fatal_error]
       }
                                                   
       grep {
       tags => [fatal_error]
       match => [ "@message", ".*(xbox\.com|xbox\.mib\.com\.cn|supports\.game\.mib\.com\.cn)" ]
       drop  => false
       add_tag => [xboxerror]
            }
         }
output {
  exec {
    tags => [xboxerror]
    command => "echo '%{@timestamp} %{@source}: %{@message}' | mail -s xbox_phplog_error_message xboxdev@xman.com"
        }
}

如此这般 先定义一个grep tag 为fatal_error 先把带有 PHP Fatal error 的日志过滤出来,后面的 grep承接上面的 tag fatal_error 过滤出具体的域名之后再新建一个
tag 叫 xboxerror,最后的output 调用 exec(执行) 去调用一个命令,将时间,源和错误信息发到xboxdev@xman.com 这个邮箱里。
OK 现在就能做到快速的邮件报警了。

3、替换
上面做到了邮件实时提醒,但有的时候我发现并没有发出去邮件,查找原因后发现如果邮件内容中出现很多 单引号 " ' " 的话,mail命令就会报错没法发送。
于是就找到了mutate 这个功能,下面是介绍
The mutate filter allows you to do general mutations to fields. You can rename, remove, replace, and modify fields in your events.
好吧,我现在需要把@message里面的 ' 都给替换成" 这样就能正常发邮件了,什么你说开发换了个符号会看不懂?我#¥%……&*((&……%¥%
格式如下:

mutate {
    type => "phplog"
    gsub => [ "@message","'", "\"" ]
}

好了,有了这些功能模块logstash可以工作的比较开心了~~~ 希望你们也开心

本文出自 “story的天空” 博客,地址:http://storysky.blog.51cto.com/628458/1215366

zabbix 对于logstash告警连续发邮件 打上勾就行 阅读详情

相关推荐

【黑马点评】项目知识点及面经整理

【黑马点评】项目知识点及面经整理

m0_52031708的博客 6604

Logstash——Logstash向Email发送告警邮件

email数据输出 logstash的输出插件中提供了email的数据输出来源。这样当logstash遇见需要预警的内容时候,可以通过邮件向指定用户发送警报信件。 可配置参数 关于email的参数有下面几个 字段 参数类型 说明 address string 邮件的服务器地址 username string 用来验证服务器的用户名 password string 用于验证服务器的密码 port number 用于与邮件服务器通信的端口 authentication strin

大风的博客 3825

yanshee 机器人全流程指南

2.点击yanshee app右上角根据提示操作 3.当手机显示成功连接 ,按下机器人胸前按钮说出“ip地址”4.根据机器人播报的ip地址加上:8888使用浏览器访问,你就会看到 jupyterd的界面,里面可以新建文件也可以改他存在的文件。我们使了yanshee机器人,这个是面向K12、中高职、高校学生推出的开源人形机器人教育平台,应用于课程教学、竞赛、科研活动等场景。我们接下来可以根据这些apl做许多好玩的,比如控制他运动,跳舞唱歌,it`s easy。注意电脑,手机,机器人必须连同一个网。

qq_44827929的博客 7612

logstash的更多实用功能

1、合并日志php的错误日志中常常会出现这样的日志[03-Jun-2013 13:15:29] PHP Fatal error: Uncaught exception 'Leb_Exception' in /data1/www/bbs.xman.com/htdocs/framework/xbox/ufo.php:68 Stack trace: #0 /data/www/...

weixin_34112208的博客 348

AutoDock Vina 对接计算(大批量)

AutoDock Vina是一种用于计算生物分子之间相互作用的计算工具,主要用于蛋白质和小分子(通常是潜在药物分子)之间的对接研究。它可以用于虚拟筛选、药物设计和生物分子结合位点的预测等多个应用领域。

MurphyStar的博客 1万+

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1358

filebeat+logstash收集错误日志发送邮件提醒

filebeat+logstash收集错误日志发送邮件提醒

抛洒的阳光专栏 1787

从编解码芯片看Tesla T4的隐藏实力:双NVDEC如何实现70路1080P解码?

本文深入剖析了英伟达Tesla T4显卡的隐藏实力,重点解读其独特的双NVDEC硬件解码器设计如何突破性能瓶颈。通过分析Turing架构、对比HEVC/H.264解码差异,并结合驱动与SDK优化,揭示了实现高达70路1080P视频流并发解码的原理与实战配置,为云游戏、直播转码等高并发场景提供高效解决方案。

weixin_29209801的博客 485

ELK实战(一)Filebeat+Logstash发送Email告警日志(1)

ELK实战(一)Filebeat+Logstash发送Email告警日志(1)ELK应用案例典型ELK应用架构本次我使用的架构(Filebeat+Logstash发送Email告警日志)使用的Filebeat+Logstash版本介绍,包括jdk。Filebeat配置文件讲解插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个...

fxsdbt520的博客 7704

节卡Jaka Zu APP编程避坑指南:从频繁通讯错误到稳定Socket交互的调试心得

本文详细解析了节卡Jaka Zu APP编程中常见的通讯错误问题,并提供了从基础排查到高级调试的完整解决方案。通过优化网络配置、固件匹配、心跳机制和数据交互规范,开发者可实现稳定的Socket通讯,有效提升工业机器人操控的可靠性。文章特别针对v1.6.7.3版本的典型问题给出了实用调试技巧。

weixin_42639633的博客 322

《QGIS快速入门与应用基础》209:重叠标注处理(移除/偏移)

系统讲解了QGIS中处理标注重叠问题的核心方法与实操流程。文章首先阐述了重叠标注处理的底层逻辑,即 先预防、再调整、后兜底 的递进式策略,并详细介绍了设置入口与界面布局。重点讲解了偏移处理这一首选方案,包括基础方向设置、最大偏移距离与步长配置、以及自动换行等进阶优化规则。针对不同要素类型(点、线、面)提供了行业规范的偏移方向设置建议,并给出从稀疏到密集场景的完整参数推荐值。最后以城市POI点图层为例,演示了5步偏移设置流程,帮助用户实现 无重叠、无压盖、重点突出 的专业标注效果。

LuckyHanMo的博客 671

filebeat收集普通错误日志和Redis错误日志到logstash,并发送邮件告警

filebeat收集普通错误日志和Redis错误日志到logstash,并发送邮件告警。

Hi文的博客 1356

6-2 GPU GART 绑定机制与 TLB 失效

本文详细解析了AMD GPU的GART(Graphics Address Remapping Table)绑定机制实现。主要内容包括: 绑定流程:从ttm_tt_bind()到硬件PTE更新的完整调用链,重点分析amdgpu_gart_bind()函数实现。 关键函数: amdgpu_gart_bind():执行安全检查、记录映射关系、更新页表等操作 amdgpu_gart_map():将CPU页映射为多个GPU页并填充PTE amdgpu_gmc_set_pte_pde():处理硬件特定的PTE格式 内存

图形/计算GPU的驱动与虚拟化技术分享园地 2652

用logstash发邮件告警

logstash input http该输入插件会让logstash在一个端口上监听http请求,用户可以通过http请求发送告警请求。input { http { host => "0.0.0.0" port => 9500 type => "heartbeat" user => "loguser" passw

很多时候,你缺少的不是知识而是热情 8139

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Logstash1.5 发邮件报警

1.注意,logstash版本必须要求1.5 2.编辑mail.conf input{ stdin{ } } output{ email{ body=>"%{message}"发送内容 from=>"xxxxx@sina.com"发送邮箱 cont...

weixin_34130389的博客 198

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

logstash email插件报错 OpenSSL::SSL::SSLError: hostname “***.com“ does not match the server certificate

使用公司的邮件服务器信息配置logstash email发邮件总是报如下错误信息: [2020-11-13T10:45:30,791][ERROR][logstash.outputs.email ] Something happen while delivering an email {:exception=>#<OpenSSL::SSL::SSLError: hostname "***.com" does not match the server certificate>} 经

daocaoren92wq的博客 1081

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

logstash邮件报警功能实现

配置文件内容:input{ stdin{ } } output{ email{ port=>"25" address=>"smtp.qq.com" username=>"18200340...

weixin_34104341的博客 587

logstash

logstash作为数据搜集器,主要分为三个部分:input->filter->output 作为pipeline的形式进行处理,支持复杂的操作,如发邮件等 input配置数据的输入和简单的数据转换 filter配置数据的提取,一般使用grok output配置数据的输出和简单的数据转换 运行:logstash -f /etc/logstash.conf ...

weixin_33811961的博客 143

ELK logstash邮件报警

这个方法有一个问题就是我这边不能给我们公司的邮箱发邮件。还有就是我们有两个邮箱一个是腾讯企业邮箱,还有一个就是我们的集团邮箱 使用下面的这个方法是不能给我们的集团邮箱发邮件的。第二个问题就是这个方法给我们的腾讯企业邮箱发邮件的话,腾讯的企业邮箱会有一定的规则 当你一定时间发送太多邮件的话,这里就会拒收,服务器拒绝了。所以得用另外一种方法 input {    beats {      type =...

weixin_34168880的博客 672

logstash 配置文件样例(伪代码)

如下配置不能实际运行,仅用于格式及配置流程的参考使用!(平时常用的插件汇总) # ----------------------------------------------------------- # Filebeat中设置唯一的文档ID防止数据重复 (根据若干字段计算哈希指纹) # processors: # - fingerprint: # fields: ["field1", "field2"] # target_field: "@metadata._id" # --

wy 2342

logstash 与ElasticSearch:从CSV文件

最后没入行岂不白费力?base都在深圳1.洲明,私企,总包接近30w,公积金5%,有宿舍和食堂2.研究院,事业编,年薪大概十几万,无食堂宿舍,附近租房大概1500一个月,事业编制,老。熊猫汉达,124到八点半,平常五点半,周六半天,多少会出差,不好跑路,不过随时解约,可以爱信等中兴124八点半,周六到五点,说是大模型相关,解约要半年,没法爱信。想定居北京,这三个都是北京的中国航信保证户口,税前14万,不涨薪,奖金一万,六险二金,包吃住,传说极躺平,北六能买房规划总院西城户口,税前17-25,能涨十几万。

华鑫的专栏 404

ELK--报错到一定频率 报警发邮件

input{ file{ type=>"java-err" path=>"/fsmeeting/tomcat-service/logs/catalina.out" tags=>"java-err" codec=>multiline{ pattern=>"^%{TIMES...

weixin_34101784的博客 276
上一篇: 最全面的Java多线程用法解析
下一篇: linux环境中ab命令简介及结果分析
搞懂鸭
博客等级 码龄14年 9粉丝 11原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值