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

典型ELK应用架构

因为只收集错误日志并且数据量并不是非常大所以简化流程

使用filebeat+logstash发送异常日志

软件 版本 说明
filebeat filebeat-8.4.3-linux-x86_64.tar.gz 日志采集器
logstash logstash-7.17.7-linux-x86_64.tar.gz 日志收集、过滤、转发

一、filebeat配置

1、将安装包解压到指定目录
drwxr-xr-x  3 root root     4096 Oct 28 09:46 ./
drwx------ 13 root root     4096 Nov  1 13:30 ../
drwxr-xr-x  7 root root     4096 Oct 31 16:30 filebeat-8.4.3-linux-x86_64/
-rw-r--r--  1 root root 60723429 Oct 28 09:46 filebeat-8.4.3-linux-x86_64.tar.gz
2、找到filebeat.yml文件
root@e:/# cd filebeat-8.4.3-linux-x86_64/
root@e:/# filebeat-8.4.3-linux-x86_64# ls
@  data  fields.yml  filebeat  filebeat.reference.yml  filebeat.yml  kibana  LICENSE.txt  logs  module  modules.d  nohup.out  NOTICE.txt  README.md
3、配置采集

参考文档:https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html

# ============================== Filebeat inputs ===============================
max_procs: 1 # 配置cpu核数 减少资源占用
queue.mem.events: 2048                  # 存储于内存队列的事件数,排队发送 (默认4096)
queue.mem.flush.min_events: 1536        # 小于 queue.mem.events ,增加此值可提高吞吐量 (默认值2048)filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.# filestream is an input for collecting log messages from files.
- type: filestream  # 指定数据的输入类型ignore_older: 48h # 忽略这个时间之前的文件(根据文件改变时间)max_bytes: 20480  # *单条日志的大小限制,将其从默认10M降低到20k,按照公式计算 20k * 4096 ~= 80M# Unique ID among all inputs, an ID is required.id: my-filestream-id# Change to true to enable this input configuration.enabled: true # 启用# Paths that should be crawled and fetched. Glob based paths.paths:- /var/logs/aaa/debug.log           # 日志路径#- c:\programdata\elasticsearch\logs\*tail_files: true   # 从日志最后一行开始读取# Exclude lines. A list of regular expressions to match. It drops the lines that are# matching any regular expression from the list.# Line filtering happens after the parsers pipeline. If you would like to filter lines# before parsers, use include_message parser.exclude_lines: ['DEBUG']# Include lines. A list of regular expressions to match. It exports the lines that are# matching any regular expression from the list.# Line filtering happens after the parsers pipeline. If you would like to filter lines# before parsers, use include_message parser.include_lines: ['ERROR','Exception']  #只处理包含ERROR 和 Exception日志parsers:- multiline:              #合并多行日志 pattern: '^\d{4}-\d{2}-\d{2}'       # 匹配以 YYYY-MM-DD HH:mm:ss 开头的行 negate: true                        # 是否匹配pattern的情况match: after                        # 将其追加到上一行之后 pattern + negate + match 组合成一条语意为: 如果匹配 YYYY-MM-DD HH:mm:ss 开头的行,则将其合并到当前行的上一行max_lines: 20                      # 最多匹配多少行,如果超出最大行数,则丢弃多余的行(默认500)timeout: 2s                         # 超时时间后,即使还未匹配到下一个行日志(下一个多行事件),也将此次匹配的事件刷出 (默认5s)# ------------------------------ Logstash Output -------------------------------
#指定输出的logstash地址
output.logstash:# The Logstash hostshosts: ["192.168.1.12:5044"]# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
logging.level: info  #filebeat日志级别 调试时可以设为debug
4、启动
/filebeat-8.4.3-linux-x86_64# ./filebeat -e -c filebeat.yml    前台启动
/filebeat-8.4.3-linux-x86_64# nohup ./filebeat -e -c filebeat.yml &  后台启动

:正常运行一段时间后filebeat自动关闭
解决:
1、使用service方式启动
2、在原来的命令之前加上disown参数,这个参数将会使启动的nohup进程从当前shell的作业列表中清除,从而避免nohup进程在关闭这个shell时接收到SIGHUP信号

nohup ./filebeat -e -c filebeat.yml & disown

二、logstash配置

1、将安装包解压到指定目录
drwxr-xr-x  4 root root      4096 Oct 31 14:13 ./
drwxr-xr-x 25 root root      4096 Oct 28 11:12 ../
drwxr-xr-x 14 root root      4096 Oct 31 16:29 logstash-8.4.3/
-rw-r--r--  1 root root 330116325 Oct 28 09:25 logstash-8.4.3-linux-x86_64.tar.gz
2、找到logstash-sample.conf 文件
root@e:/logstash-8.4.3/config# ls
jvm.options  log4j2.properties  logstash-sample.conf  logstash.yml  pipelines.yml  startup.options
3、配置

参考文档:https://www.elastic.co/guide/en/logstash/current/output-plugins.html

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {beats {host => '192.168.1.12'  #本机ipport => 5044}
}filter {# 匹配message中的时间格式化到logdategrok {match => ["message", "%{TIMESTAMP_ISO8601:logdate}"]}  # 排除 IdempotentException 异常(不处理该异常)if [message] =~ "IdempotentException" {drop { }}
}output {# 输出到文件#file{# path => "/test/test.log"# codec => line {format => "%{message}"}# }# 接收参数输出到控制台#  stdout { codec => rubydebug }#输出到邮件 腾讯企业邮箱为例email {port => 587address => 'smtp.exmail.qq.com'username => '***@***.com'password => '******'      #授权码authentication => 'plain'from => '***@***.com'subject => '错误告警:IP:%{[host][ip][0]}, 时间:%{logdate}'to => '***@***.com'use_tls => truedomain => 'smtp.exmail.qq.com'body => '[服务器信息]IP:%{[host][ip][0]}\n[错误信息]:%{[log][file][path]}\n%{message}'}
}
4、启动
/logstash-8.4.3# ./bin/logstash -f ./config/logstash-sample.conf     前台启动
/logstash-8.4.3# nohup ./bin/logstash -f ./config/logstash-sample.conf  后台启动
5、 logstash配置调优 (logstash.yml、jvm.options)
lostash.yml:
pipeline.workers: 1 (不配置的情况下,默认是系统核数,控制output或filter插件的工作线程数(只能设置正整数),当发现事件正在备份或CPU没有饱和,则可以增加工作线程,以提高性能。) #内存大小 根据服务器的性能进行配置
jvm.options:
-Xms1g
-Xmx1g
6、邮件内容

filebeat+logstash收集错误日志发送邮件提醒相关推荐

  1. logstash收集syslog日志

    logstash收集syslog日志 注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# ca ...

  2. logstash收集nginx日志

    1.配置nginx日志 编辑nginx.conf文件 vim /etc/nginx/nginx.conf 在http节点下配置如下 log_format json '{"@timestamp ...

  3. ELK下logstash收集java日志,多行合并成一行

    介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...

  4. logstash收集java日志,多行合并成一行

    使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input {s ...

  5. logstash 收集windows日志--解决日志不能重命名问题

    logstash 在windows中收集日志的时候,会导致写日志的程序不能进行日志的切割(windows提示,文件被占用) 从github上下载useJavatoOpenFile    https:/ ...

  6. K8S使用filebeat统一收集应用日志

    今年3月份在公司的内部k8s培训会上,开发同事对应用整合进pod提出了几个问题,主要围绕在java应用的日志统一收集.集中存放和java jvm内存监控数据收集相关的点上,本文将介绍使用filebea ...

  7. logstash收集tomcat日志

    目录 简介 JULI 组件的Handler与Formatter 修改tomcat控制台日志 修改tomcat访问access日志修改为json格式 修改tomcat其他日志 简介 Tomcat 的内部 ...

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

    ELK实战(一)Filebeat+Logstash发送Email告警日志(1) ELK应用案例 典型ELK应用架构 本次我使用的架构(Filebeat+Logstash发送Email告警日志) 使用的 ...

  9. 3 ELK收集nginx正常和错误日志

    转载 : ELK收集nginx正常和错误日志 :https://www.jianshu.com/p/ef62538724f7 1.修改filebeat配置文件 在53主机操作 [root@db01 ~ ...

最新文章

  1. 学建筑要学哪些计算机绘图,建筑学专业学CAD买什么书好?
  2. 导航菜单:jQuery粘性滚动导航栏效果
  3. 自动驾驶 | MINet:嵌入式平台上的实时Lidar点云数据分割算法,速度可达 20-80 FPS!...
  4. 《SolidWorks 2016中文版机械设计从入门到精通》——1.10 范例
  5. 【51单片机快速入门指南】4.3.1: MPU6050调用DMP库获取四元数和欧拉角
  6. LSGO软件技术团队2015~2016学年第十七周(1221~1227)总结
  7. 获取表情字符串的html,js:如何截取含有表情的字符串
  8. 马云老师给AI留了几句话
  9. UNP Chapter 3 - 套接口编程简介
  10. curl 断点下载 wget下载
  11. 最火特效软件ae手机版制作抖音快手热门飞天腾云驾雾特效的教程。
  12. win10投影到电脑无法成功,一直显示即将投影
  13. java用switch判断日期_Java-用switch判断季节
  14. C程序的一个简单错误[Error] ld returned 1 exit status
  15. 虫虫 HTML5::初学者使用 Application Cache 指南
  16. 在信息不完全对称时,你可以用你的“空城计”虚张声势
  17. OJ常用术语解释。AC、WA、TLE、CE、RE、MLE、PE等状态术语的解释
  18. 1月更新!EasyOps® 28+新功能“狂飙”上线~
  19. docx4j操作word文档之生成页码、合并多个文档
  20. 妥妥的去面试之Android基础(四)

热门文章

  1. kibana 失效原因 ,亲测有效
  2. 自动生成文章摘要[JavaScript 版本]
  3. 微信小程序实现简单的点击切换功能(微信开发者工具)
  4. 一文带你盘点市场上主流的BI产品主要有哪些
  5. python中*args和**kargs得用法总结
  6. 求解数独的C++实现
  7. 迅雷专用链接原理及转换
  8. 2019年Robomaster江苏省赛总结
  9. 房贷等额本息利率上涨要跟着涨吗?
  10. DYMO/Mimio推出最新互动教育软件linux操作系统培训