logstash是可以根据日志级别,日志类型进行报警通知的。

这次精简教程,排除filebeat自带的#include_lines: ['^ERR', '^WARN']写法,直接使用logstash报警。

步骤一、安装logstash

方法1  去官网下载rpm包,官网地址:https://www.elastic.co/cn/downloads/logstash

方法2  yum install logstash -y

方法3  使用国内一些软件源下载rpm包,速度更快一点。有可能安装包报错。比如:https://www.newbe.pro/Mirrors/Mirrors-Logstash/

步骤二、安装exec插件,用于报警

执行如下命令安装插件

/usr/share/logstash/bin/logstash-plugin install logstash-output-exec

 

步骤三、编写配置文件

cd /etc/logstash/conf.d

vim logstash.conf

input {
file {
path => "/home/wwwroot/hxt_reconciliation/storage/logs/laravel-2020-07-01.log"
}
} output {
if 'ERROR' in [message] or 'local.WARNING' in [message] {
exec {
command => "/bin/bash /etc/logstash/conf.d/dingding.sh %{message}"
}
}
}

input选择文件,output发送钉钉通知。

注意:

LogStash::Inputs::File只是在进程运行的注册阶段初始化一个FileWatch对象。所以它不能支持类似 fluentd 那样的path => "/path/to/%{+yyyy/MM/dd/hh}.log"写法。达到相同目的,你只能写成path => "/path/to/*/*/*/*.log"。FileWatch 模块提供了一个稍微简单一点的写法:/path/to/**/*.log,用**来缩写表示递归全部子目录。
所以这里写了绝对路径,也没用*替代所有。在自己写一个shell脚本,添加到crontab里 每天0点执行。
0 0 * * * /bin/bash /root/tools/replace_logstash.sh
#!/bin/bash
today=`date +%Y-%m-%d`
lastday=`date -d 'yesterday' +%Y-%m-%d`
sed -i "s/${lastday}/${today}/g" /etc/logstash/conf.d/logstash.conf
systemctl restart logstash.service

钉钉通知脚本自己随便一个吧,贴一个我随便写的

#!/bin/bash
message="我的ip地址_logstash: \n $*"
curl "https://oapi.dingtalk.com/robot/send?access_token=钉钉的webhook地址" \
-H "Content-Type: application/json" \
-d '{"msgtype": "text",
"text": {
"content": "'"${message}"'"
}
}'

  

步骤四、启动

service logstash start
#或者,以下命令更多用于调试output输出到控制台时候使用
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf

  

看一下效果

logstash根据日志关键词报警的更多相关文章

  1. ELKStack入门篇(三)之logstash收集日志写入redis

    1.部署Redis 1.1.下载redis [root@linux-node2 ~]# wget http://download.redis.io/releases/redis-4.0.6.tar.g ...

  2. Logstash IIS日志采集

    Logstash IIS 日志采集,跟Linux上运行差不多,都需要java运行环境,装个jdk就好了,对于IIS日志暂时未处理X-forward-for,纠结怎么弄当中,貌似要装个插件,慢慢研究. ...

  3. ELK之filebeat替代logstash收集日志

    filebeat->redis->logstash->elasticsearch 官网下载地址:https://www.elastic.co/downloads/beats/file ...

  4. ELK之logstash收集日志写入redis及读取redis

    logstash->redis->logstash->elasticsearch 1.安装部署redis cd /usr/local/src wget http://download ...

  5. ELK快速入门(二)通过logstash收集日志

    ELK快速入门二-通过logstash收集日志 说明 这里的环境接着上面的ELK快速入门-基本部署文章继续下面的操作. 收集多个日志文件 1)logstash配置文件编写 [root@linux-el ...

  6. ELK快速入门(三)logstash收集日志写入redis

    ELK快速入门三-logstash收集日志写入redis 用一台服务器部署redis服务,专门用于日志缓存使用,一般用于web服务器产生大量日志的场景. 这里是使用一台专门用于部署redis ,一台专 ...

  7. ELK快速入门(四)filebeat替代logstash收集日志

    ELK快速入门四-filebeat替代logstash收集日志 filebeat简介 Filebeat是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到log ...

  8. ELK(Elasticsearch + Logstash + Kibana) 日志收集

    单体应用或微服务的场景下,每个服务部署在不同的服务器上,需要对日志进行集重收集,然后统一查看所以日志. ELK日志收集流程: 1.微服务器上部署Logstash,对日志文件进行数据采集,将采集到的数据 ...

  9. 第五章·Logstash深入-日志收集

    1.Logstash收集单个日志到文件中 file模块收集日志 不难理解,我们的日志通常都是在日志文件中存储的,所以,当我们在使用INPUT插件时,收集日志,需要使用file模块,从文件中读取日志的内 ...

随机推荐

  1. kafka学习笔记(五)kafka的请求处理模块

    概述 现在介绍学习一下kafka的请求处理模块,请求处理模块就是网络请求处理和api处理,这是kafka无论是对客户端还是集群内部都是非常重要的模块.现在我们对他进行源码深入探讨.当我们说到 Kafk ...

  2. linux下玩转磁盘管理与挂载硬盘

    前言 本文将带来linux下的磁盘管理中的硬盘挂载,Linux操作系统挂载硬盘需要了解的一些知识.这可能是迄今为止介绍的最最最实用的linux硬盘挂载的文章了,比较详细.由于工作原因,平时使用的比较多 ...

  3. AVD模拟器怎么配置上网

    转自:http://blog.csdn.net/you_jinjin/article/details/7228303 方法一 首先,Windows下,配置Adroid环境变量(Win7为例) 1.桌面 ...

  4. RHCSA 第四天

    1.使用whereis 查找 locate命令 使用which查找whereis命令 使用locate查找rm命令    2.find命令使用: 使用find命令在当前路径下查找所有的普通文件 使用f ...

  5. vue学习14-自定义组件添加属性

    <!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta http ...

  6. C++线程基础笔记(一)

    标准写法: #include<iostream> #include<thread> using namespace std; void MyThread() { cout &l ...

  7. gorm中的删除

    删除 删除一条记录 删除一条记录时,删除对象需要指定主键,否则会触发 批量 Delete,例如: db.Debug().Where("id = ?", 6).Delete(new( ...

  8. nginx 和uwsgi的区别与作用

    在介绍nginx和uwsgi的区别和作用之前我们先介绍一下几个概念 1.WSGI WSGI的全称是Web Server Gateway Interface(Web服务器网关接口),它不是服务器.pyt ...

  9. python27day

    内容回顾 super 遵循mro算法 只在新式类中能适应 py2新式类中需要自己添加参数 封装 广义上的封装 狭义上的封装 (__名字) 方法名私有化 实例变量私有化 静态变量私有化 私有化的特点 只 ...

  10. mpfu 位编辑处理?

    1.  国内的不用处理,其余都做 2.  判断是否是mp   的项目 3  设置位数编辑    请求中    和  检查中都要做 4  以某一画面作为基准,修改不同的值. 5  对象外的数据直接设置在 ...