filebeat+logstash收集错误日志发送邮件提醒
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收集错误日志发送邮件提醒相关推荐
- logstash收集syslog日志
logstash收集syslog日志 注意:生产用syslog收集日志!!! 编写logstash配置文件 #首先我用rubydebug测试数据 [root@elk-node1 conf.d]# ca ...
- logstash收集nginx日志
1.配置nginx日志 编辑nginx.conf文件 vim /etc/nginx/nginx.conf 在http节点下配置如下 log_format json '{"@timestamp ...
- ELK下logstash收集java日志,多行合并成一行
介绍 使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input ...
- logstash收集java日志,多行合并成一行
使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input {s ...
- logstash 收集windows日志--解决日志不能重命名问题
logstash 在windows中收集日志的时候,会导致写日志的程序不能进行日志的切割(windows提示,文件被占用) 从github上下载useJavatoOpenFile https:/ ...
- K8S使用filebeat统一收集应用日志
今年3月份在公司的内部k8s培训会上,开发同事对应用整合进pod提出了几个问题,主要围绕在java应用的日志统一收集.集中存放和java jvm内存监控数据收集相关的点上,本文将介绍使用filebea ...
- logstash收集tomcat日志
目录 简介 JULI 组件的Handler与Formatter 修改tomcat控制台日志 修改tomcat访问access日志修改为json格式 修改tomcat其他日志 简介 Tomcat 的内部 ...
- ELK实战(一)Filebeat+Logstash发送Email告警日志(1)
ELK实战(一)Filebeat+Logstash发送Email告警日志(1) ELK应用案例 典型ELK应用架构 本次我使用的架构(Filebeat+Logstash发送Email告警日志) 使用的 ...
- 3 ELK收集nginx正常和错误日志
转载 : ELK收集nginx正常和错误日志 :https://www.jianshu.com/p/ef62538724f7 1.修改filebeat配置文件 在53主机操作 [root@db01 ~ ...
最新文章
- 学建筑要学哪些计算机绘图,建筑学专业学CAD买什么书好?
- 导航菜单:jQuery粘性滚动导航栏效果
- 自动驾驶 | MINet:嵌入式平台上的实时Lidar点云数据分割算法,速度可达 20-80 FPS!...
- 《SolidWorks 2016中文版机械设计从入门到精通》——1.10 范例
- 【51单片机快速入门指南】4.3.1: MPU6050调用DMP库获取四元数和欧拉角
- LSGO软件技术团队2015~2016学年第十七周(1221~1227)总结
- 获取表情字符串的html,js:如何截取含有表情的字符串
- 马云老师给AI留了几句话
- UNP Chapter 3 - 套接口编程简介
- curl 断点下载 wget下载
- 最火特效软件ae手机版制作抖音快手热门飞天腾云驾雾特效的教程。
- win10投影到电脑无法成功,一直显示即将投影
- java用switch判断日期_Java-用switch判断季节
- C程序的一个简单错误[Error] ld returned 1 exit status
- 虫虫 HTML5::初学者使用 Application Cache 指南
- 在信息不完全对称时,你可以用你的“空城计”虚张声势
- OJ常用术语解释。AC、WA、TLE、CE、RE、MLE、PE等状态术语的解释
- 1月更新!EasyOps® 28+新功能“狂飙”上线~
- docx4j操作word文档之生成页码、合并多个文档
- 妥妥的去面试之Android基础(四)