惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

博客园 - 一起走过的路

小蚁摄像机固件更新后云台失效/不能转动的完美修复指南 Elasticsearch 数据迁移终极对决:elasticdump VS Logstash Nginx GeoIP2 模块编译安装与配置指南(附防国外访问实战) MySQL查询当前连接数的语句 Apollo批量给新创建的用户授可编辑权限 物理机Jenkins接入K8s环境 ingress配置https报错certificate.lua:259: call(): failed to set DER private key: d2i_PrivateKey_bio() failed, context: ssl_certificate_by_lua* elk收集分析nginx日志,并绘制图形 Zabbix Scheduled reports中文乱码 kubernetes mysql-StatefulSet报错处理 Jenkins合并代码Git报错处理过程 nginx集群同步方案 zabbix密码复杂度有效期安全增强,符合三级等保要求。 archery关闭导出功能 自动同步bing壁纸 CentOS7更新OpenSSH8 OPENVPN 同时连接多个VPN - 一起走过的路 nginx拒绝国外IP访问 keepalived健康检查及双主MySQL健康检查脚本 执迷不悟 splunk设置索引周期和索引大小
elk监听Java日志发送微信报警
一起走过的路 · 2021-11-16 · via 博客园 - 一起走过的路

一年前写过logstash根据日志关键词报警 ,今年重温一下。并且记录一下遇到的问题解决办法。

Java错误日志一般出现一大坨,如下图:

所以我们的filebeat日志收集器就要改成多行匹配模式,以日期开头的归为一行。

multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after

然后我们查看kibana时候就成一行了

请注意上图,我们的kibana里数据变精简了,有我们想要的hostip来源,tags标签,去掉了一些version,agent信息。

是通过filebeat的配置来操作的,新增hostip,新增tags标签:

fields_under_root: true
  fields:
    hostip: 10.0.2.241
tags: ["merchant_info"]

去掉version,agent等没用的信息

- drop_fields:
        fields: ["log","input.type","host","agent","ecs"]

然后我们通过logstash-output-exec去发送通知

if [message]  =~ /(AGENT_PROFIT_ERROR|fail)/ and "_info" not in [tags][0] {
        exec {
            command => "/usr/bin/python3 weixin3_news.py %{hostip} %{[tags][0]} \"%{message}\""
        }
  }

我们的\"%{message}\"参数是不能被正常识别的,发出来的报警如下

这时候就要修改logstash.yml,启用特殊符号转译,添加多行匹配。

config.support_escapes: true

ps:蛋疼的问题一直以为是我shell脚本写的太烂,改成Python后依然如此。最后不得不请出百度搜索了,搜到此文章

报警成功:

 最后贴一个自己写的清理elasticsearch数据脚本,脚本中三个方法分别应对不同的数据格式。

#!/bin/bash
#此脚本用于删除es历史数据
delrange(){
        #删除的索引项目
        index_name=("auditbeat-hxtpayment" "auditbeat-hxtpay" "go-mobileposp")
        #根据哪一列查找关键词
        daycolumn="@timestamp"
        #删除几条之前的数据
        savedays=5
        #日期格式
        format_day="%Y-%m-%d"
        #计算savedays之前的日期
        sevendayago=`date -d "-${savedays} day " +${format_day}`

        for index in ${index_name[@]}
        do
        curl --user elastic:你的密码 -X POST "http://192.168.80.11:9200/${index}/_delete_by_query" -H 'Content-Type: application/json' -d'
        {
                "query": {
                        "range": {
                                "'"$daycolumn"'": {
                                        "lt": "'"$sevendayago"'"
                                }
                        }
                }
        }
        '
        done
}



#删除es几天前的数据
delday(){
        #日期格式
        format_day="%Y.%m.%d"
        #删除几天之前的数据
        savedays=15
        #计算savedays之前的日期
        sevendayago=`date -d "-${savedays} day " +${format_day}`
        for index in `curl -XGET "http://10.0.2.245:9200/_cat/indices" |awk '{print $3}'|grep "$sevendayago" |grep -v '.monitoring'|sort`
        do
                #echo "开始删除 ${index%-*}-${sevendayago} 索引"
                #curl -XDELETE http://10.0.2.245:9200/${index%-*}-${sevendayago}
                echo "开始删除 ${index} 索引"
                curl -XDELETE http://10.0.2.245:9200/${index}
        done
}

delmonth(){
        #日期格式
        format_day="%Y.%m"
        #删除几天之前的数据
        savedays=90
        #计算savedays之前的日期
        sevenmonago=`date -d "-${savedays} day " +${format_day}`
        index_month=("centos" "cisco")
        #删除几个月前
        for index in ${index_month[@]}
        do
                curl --user elastic:你的密码 -XDELETE http://192.168.80.11:9200/${index}-${sevenmonago}
        done
}

#删除单个
#curl -XDELETE 'http://192.169.1.666:9200/index
#删除多个
#curl -XDELETE 'http://192.169.1.666:9200/index_one,index_two


delday