ELK中修改默认的@timestamp时间为日志生成时间

在logstash处理filebeat收集的日志数据以后我们可以发现logstash解析以后有一个@timestamp时间,然后而这个时间跟我们grok解析日志以后里面所包含的时间不是一致的,logstash收集日志的@timestamp时间是日志采集时间,而且使用的是UTC时区,相对于北京时间会晚8个小时,我们一般都不太关注日志采集时间,而是更加关注日志生成时间,所以我们需要将@timestamp字段的时间改写成日志生成时间我们这里还是用之前收集mongodb日志的例子来继续学习下如何改写@timestamp字段的时间,mongodb收集日志的方式还是...

阅读全文

ELK中logstash从kafka中读写数据

考虑到发布和订阅消息的实时性问题,有时需要消费者重新消费之前的历史日志消息,所以后面肯定需要使用kafka替换掉原来使用的redis,所以这里暂时先mark下logstash清洗过滤日志以后发布到kafka主题中的方式将日志数据导入到kafkainput {  beats {    port => 5044    codec => plain { &...

阅读全文

ELK使用filebeat采集logstash过滤mongodb日志

自己在测试环境中尝试编写一些简单的日志规则,于是拿mongodb的日志进行测试,整体的ELK环境这里不再讲了,如果不熟悉可以查看我之前的笔记:https://sulao.cn/category-14_2.html,主要从客户端的filebeat开始我们去mongodb服务器上安装filebeatwget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.0-x86_64.rpmyum localinstall filebeat-7.4.0...

阅读全文

ELK中kibana添加登陆认证的限制

之前配置的ELK中,kibana直接访问5601端口即可登陆,但是我们的日志管理系统是暴露在公网上的,这样是非常不安全的,所以我们要给kibana的登陆增加认证功能,需要口令来登陆ELK中X-Pack安全性使你能够轻松地保护集群。通过X-Pack安全性,你可以对数据进行密码保护,并实现更高级的安全措施,如加密通信、基于角色的访问控制、IP过滤和审计但是X-Pack是收费的,只允许免费使用30天,所以这里我们用另外一种方式来增加登陆认证使用的nginx的认证方式,具体配置方法如下首先生成密码文件yum install httpd-too...

阅读全文

ELK中logstash收集数据写入redis数据积压的问题

我们之前写过一篇logstash收集数据输出到redis的笔记:https://sulao.cn/post/739.html,可能我们有一点顾虑,redis单个key的最大value大小为512M,在生产环境中收集集群机器的日志数据可能512M一会就会写满,所以写满以后导致了redis的数据积压,导致数据读写瓶颈,其实logstash写入和读取redis的时候使用list方式分别使用rpush和lblpop推入和删除已读数据,logstash插入数据到list的最后,logstash不断取走列表的第一个组数据并删除,redis读取数据非常快,所以一般情况...

阅读全文

ELK中logstash数据修改插件mutate的使用方法

filters/mutate插件是Logstash另一个重要插件。它提供了丰富的基础类型数据处理能力。包括类型转换,字符串处理和字段处理等。类型转换类型转换是filters/mutate插件最初诞生时的唯一功能。其应用场景在之前Codec/JSON小节已经提到。可以设置的转换类型包括:"integer","float"和"string"。示例如下:filter {  mutate {    ...

阅读全文

ELK中logstash调用执行命令exec的方法

logstash调用系统执行命令exec的方法比较简单,调用exec命令可以直接调用系统脚本或者命令,处理的方法可以变的更加灵活例如我们在zabbix的邮件报警笔记中使用到了python脚本进行报警,通过稍作修改,也可以让ELK实现邮件报警,或者是钉钉,短信告警output {      if [Level]  == "ERROR" {      &...

阅读全文

ELK中使用logstash将采集的日志打包保存

之前的学习都是logstash收集过滤的日志再次传递到ES中进行存储使用,在实际的工作中有些日志我们是不需要存储到DB中,而是直接收集打包存储到硬盘logstash中的output/file插件可以实现这个功能,使用例子如下output {    file {        path => "/path/to/%{+yyyy/MM/dd/HH}/%{host}.log.gz...

阅读全文

ELK中logstash收集日志写入redis

ELK中我们通常是使用logstash收集到日志然后直接提交到ES中进行存储,当在大量日志的场景下,当存储已经跟不上收集的速度是我们需要使用队列来进行顺序存储,redis在项目中作为存储中间件,下面我们就在之前的笔记的基础上进行一些修改,以便支持redis存取日志信息之前的logstash配置可以查看https://sulao.cn/post/736.html,我们来看看如何使用redis存取吧首先我们需要安装redis,这里不赘述redis的安装修改/etc/logstash/conf.d/logstash.confinput {&nbs...

阅读全文

ELK中Logstash使用grok进行日志过滤

Logstash是Elasticstack中的一个开源组件,其不仅能够对日志进行抓取收集,还能对抓取的日志进行过滤输出。Logstash的过滤插件有多种,如:grok、date、json、geoip等等。其中最为常用的为grok正则表达式过滤grok的匹配语法分为两种:grok自带的基本匹配模式、用户自定义的匹配模式。Grok的基本匹配模式Grok模块提供了默认内嵌了一些基本匹配模式,其使用语法为:%{SYNTAX:SEMANTIC}其中SYNTAX为匹配模式的名称,用于调用相应的匹配模式匹配文本,如:3.44会被NUBER模式所匹配,而10.10...

阅读全文