首页 > 数据库 >使用filebeat监听异常日志发送redis

使用filebeat监听异常日志发送redis

时间:2023-08-26 15:56:40浏览次数:34  
标签:filebeat redis list import mqStart 日志

使用场景: 自定义监听日志关键字符,第一时间发现生产问题,实测从服务打出异常日志到redis监听到日志延迟在5s左右

适用于:服务机器数有限的情况,目前全部采用手动部署的方式,

一 、在目标机器上部署filebeat

  1. 官网下载filebeat https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.9.1-linux-x86_64.tar.gz

  2. 上传至服务器 /usr/local/filebeat

  3. tarf -zx 解压

  4. 编辑/usr/local/filebeat/ 下filebeat.yml 配置文件

      # =============日志输入配置=================
      filebeat.inputs:
    
      - type: log
        # Unique ID among all inputs, an ID is required.
        id: my-filestream-id
        # Change to true to enable this input configuration.
        enabled: true
        harvester_limit: 1
        # 配置输入过滤条件
        # include_lines: ["/mq/start"]
        paths:
          - /root/java/logs/all.log
      # =============日志输出配置=================
    
      output.redis:
        hosts: ["10.6.133.65:6379"]
        password: pass1w22ord12543!#
        db: 3
        # 发送至redis list  也可选用发布订阅模式
        datatype: list
        # 默认redis key 必须配置,否则会默认为 filebeat
        key: appLog
        # 配置条件key
        keys:
          - key: "mqStart_list" 
            when.contains:
              message: "/mq/start"
          - key: "delete_list"  
            when.contains:
              message: "数据删除消息"
    
    
  5. 启动filebeat

    ./filebeat $
    

二、配置redis日志监听

springboot中代码如下

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import javax.annotation.PostConstruct;
import java.util.concurrent.TimeUnit;

@Component
@Slf4j
public class RedisListListener {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    RestTemplate restTemplate;

    @PostConstruct
    public void startListening() {
        Thread thread = new Thread(() -> {
            while (true) {
                String mqStart_list = null;
                try {
                    mqStart_list = stringRedisTemplate.opsForList().rightPop("mqStart_list", 30, TimeUnit.SECONDS);
                    if (mqStart_list != null) {
                        log.info("监听到redisList新增:{}", mqStart_list);
                        // todo  发送告警

                    }
                } catch (Exception ignored) {
                }
            }
        });
        thread.start();
    }
}

标签:filebeat,redis,list,import,mqStart,日志
From: https://www.cnblogs.com/rise0111/p/17658890.html

相关文章

  • redis的五大数据类型
    String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M......
  • Redis——急速安装并设置自启(CentOS)
    现状对于开发人员来说,部署服务器环境并不是一个高频操作。所以就导致绝大部分开发人员不会花太多时间去学习记忆,而是直接百度(有一些同学可能连链接都懒得收藏)。所以到了部署环境的时候就头疼,甚至是抗拒。除了每次都要折腾个把小时(甚至更久)以外,还会觉得:我是开发不是运维,为什么要搞这......
  • Redis安装说明
    Redis安装说明大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS7.Redis的官方网站地址:https://redis.io/1.单机安装Redis1.1.安装Redis依赖Redis是基于C语言编......
  • 安装redis
    一、Redis简介Redis(RemoteDictionaryServer)是一款开源的分布式内存数据库,它支持多种数据结构(如字符串、哈希、列表、集合、有序集合等),并提供多种操作方式(如读写、删除、排序等)。Redis以其高性能、可扩展性和灵活性而受到广泛欢迎,是很多知名项目(如Docker、Kubernetes、GitHub......
  • linux 查询日志
    1定位错误日志所在的行数cat-ntest.log|grep"查找的错误关键字"2得到错误关键字所在行号(假设为第500行),查询错误关键字前后100行数据    cat-ntest.log|tail-n+400|head-n2003  查看日志中出现关键字 "错误的关键信息提示"的前后10行内容 cat-n......
  • redis 实现分布式锁原理
    通过原子操作实现redis锁redis内部是通过key/value的形式存储的,核心原理是设置一个唯一的key,如果这个key存在,说明有服务在使用具体实现方式:首先判断redis中是否存在某个key,并且为某个值如果这个key不存在,说明当前没有服务在使用,设置key如果这个key存在,说明当前有服......
  • Redis使用细节(持续更新中)
    Redis使用细节分布式锁因为Redis是单线程的,所以可以用setnx来模拟锁的获取释放从而实现分布式锁在用setnx实现分布式锁时,会出现一些问题业务超时解锁,导致并发问题。业务执行时间超过了锁超时的时间redis主从切换临界点问题,主从切换后,A持有的锁还没有同步到新的主节点,B在新的......
  • php基于Redis实现播放量增加功能
    开发思路就是用redis得有序组合功能1.先自增到reids中$redisGetKey='ciku_promoter_click_number';$jyId=2;//文章id$redis=RedisService::build()->getInstance();$videoPlayNumber=$redis->zScore($redisGetKey,$jyId);//如果该文章id存在,则新增,否则自增1if......
  • Redis-持久化的学习
    持久化-rdbredis.conf中已经自动配置好了持久化设置,但我们可以改为自己需要的设置。当条件触发时会在同级文件夹内生成dump.rdb文件(快照)。 触发条件:1:满足config中设置的触发条件2:使用flushall命令3:退出redis,也会自动生成dump.rdb  如何打开rdb文件?在redis中输入conf......
  • Redis学习笔记
    1.Redis安装配置及开启自启1.1安装Redis依赖Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:yuminstall-ygcctcl1.2安装Redis获取Rediscd/opt/wgethttp://download.redis.io/releases/redis-6.2.6.tar.gz解压Reids#解压到/usr/local/src/......