温馨提示×

Debian syslog如何与ELK堆栈集成

小樊
69
2025-03-29 12:41:23
栏目: 智能运维

要将Debian系统上的syslog与ELK(Elasticsearch, Logstash, Kibana)堆栈集成,可以按照以下步骤进行配置:

1. 安装和配置Rsyslog

Rsyslog是syslog的增强版本,可以在Debian系统上默认安装。如果需要额外的模块,如omkafka,则需要手动安装。

  • 安装Rsyslog

    sudo apt-get update
    sudo apt-get install rsyslog
    
  • 添加omkafka模块(如果需要将日志写入Kafka):

    • 安装编译工具和依赖包:
      sudo apt-get install pkg-config autoconf automake libtool unzip
      sudo apt-get install libdbi-dev libmysqlclient-dev postgresql-client libpq-dev libnet-dev librdkafka-dev libgrok-dev libgrok1 libgrok-dev libpcre3-dev libtokyocabinet-dev libglib2.0-dev libmongo-client-dev libhiredis-dev libestr-dev libfastjson-dev uuid-dev liblogging-stdlog-dev libgcrypt-dev flex bison
      
    • 克隆并编译安装omkafka模块:
      mkdir -p ~/tmp
      cd ~/tmp
      git clone https://github.com/vertipub/omkafka.git
      autoreconf -fi
      ./configure --sbindir=/usr/sbin --libdir=/usr/lib --enable-omkafka
      make
      sudo make install
      cd ..
      
  • 配置Rsyslog: 编辑/etc/rsyslog.conf文件,配置日志接收和输出。例如,接收UDP和TCP 514端口的syslog日志,并将它们发送到Elasticsearch:

    # 接收UDP 514端口的syslog日志
    module(load="imudp")
    input(type="imudp" port="514")
    
    # 接收TCP 514端口的syslog日志
    module(load="imtcp")
    input(type="imtcp" port="514")
    
    # 将日志发送到Elasticsearch
    *.* action(type="ommysql" server="localhost" db="rsyslog" uid="admin" pwd="password")
    

    重启Rsyslog服务以应用配置:

    sudo systemctl restart rsyslog
    

2. 配置Logstash

在Logstash中配置输入端口以接收来自Rsyslog的日志,并进行处理后输出到Elasticsearch。

  • 安装Logstash

    wget https://artifacts.elastic.co/downloads/logstash/logstash-7.15.0-linux-x86_64.tar.gz
    tar -xzf logstash-7.15.0-linux-x86_64.tar.gz
    cd logstash-7.15.0
    
  • 配置Logstash: 编辑/etc/logstash/conf.d/syslog.conf文件,配置输入和输出:

    input {
      syslog {
        type => "rsyslog"
        port => 514
      }
    }
    
    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "rsyslog-%{+YYYY.MM.dd}"
      }
    }
    

    启动Logstash服务:

    sudo bin/logstash -f /etc/logstash/conf.d/syslog.conf
    

3. 配置Kibana

在Kibana中配置索引模式以匹配Logstash输出的日志,并进行可视化展示。

  • 安装Kibana

    wget https://artifacts.elastic.co/downloads/kibana/kibana-7.15.0-linux-x86_64.tar.gz
    tar -xzf kibana-7.15.0-linux-x86_64.tar.gz
    cd kibana-7.15.0
    
  • 配置Kibana: 编辑/etc/kibana/kibana.yml文件,配置Elasticsearch连接:

    server.host: "localhost"
    elasticsearch.hosts: ["http://localhost:9200"]
    

    启动Kibana服务:

    sudo bin/kibana
    

4. 验证集成

  • 在Rsyslog服务器上生成日志,并检查Elasticsearch和Kibana中是否能看到这些日志。
  • 在Kibana的Discover页面中,应该能够看到通过Logstash处理后的syslog日志。

通过以上步骤,您可以将Debian系统上的syslog日志收集并集成到ELK堆栈中,实现日志的集中收集、存储、分析和可视化展示。

0