要将Debian系统上的syslog与ELK(Elasticsearch, Logstash, Kibana)堆栈集成,可以按照以下步骤进行配置:
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
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
在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
在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
通过以上步骤,您可以将Debian系统上的syslog日志收集并集成到ELK堆栈中,实现日志的集中收集、存储、分析和可视化展示。