要將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堆棧中,實現日志的集中收集、存儲、分析和可視化展示。