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

推荐订阅源

T
Threatpost
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
博客园_首页
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
O
OpenAI News
SecWiki News
SecWiki News
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
N
News | PayPal Newsroom
Project Zero
Project Zero
Forbes - Security
Forbes - Security
IT之家
IT之家
A
Arctic Wolf
WordPress大学
WordPress大学
Jina AI
Jina AI
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
Cloudbric
Cloudbric
G
GRAHAM CLULEY
博客园 - 叶小钗
H
Hacker News: Front Page
腾讯CDC
量子位
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes

博客园 - 一起走过的路

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