一、部署架构图如下:

logstash与Rsyslog安装配置_安装配置

二、logstash安装配置

1.logstash安装配置

本文档安装部署使用的logstash安装包为logstash-7.6.0

2.logstash安装部署

2.1安装jdk

logstash安装依赖环境为jdk1.8,请先安装jdk1.8版本,并配置好环境变量

2.2安装
#上传安装包
rz -bey logstash-7.6.0.tar.gz
#解压
tar -zxvf logstash-7.6.0.tar.gz
#进入目录
cd logstash-7.6.0
#将2.3示例配置文件拷贝下来命名为logstash.conf,并修改相关IP地址,传到config目录下
#启动
nohup ./bin/logstash -f config/logstash.conf &
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
2.3配置文件

示例如下:

input {
  udp {
    port => 514
    type => syslog
  }
}

filter {

}

output {
  # stdout { codec => rubydebug }
  # stdout { codec => rubydebug }
  #file {
  #  path => "/export/home/tools/logstash/logstash-7.6.0/data/syslog-%{+YYYYMMdd}.txt"
  #}
   
   if[message] =~ /DispTitle/{ 
                kafka {
                bootstrap_servers => "180.114.8.105:9092"
                codec => json
                topic_id => "logstashtokafka_alarm"
        }                
        }
        else if [message] =~ /Telegraf - (cpu|mem|disk)/ {
        kafka {
                bootstrap_servers => "180.114.8.105:9092"
                codec => json
                topic_id => "logstashtokafka"
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
2.4 配置KAFKA

创建TOPIC

./kafka-topics.sh --create --zookeeper 192.168.21.65:2181,192.168.21.66:2181,192.168.21.67:2181 --replication-factor 3 --partitions 3 --topic logstashtokafka_alarm
  • 1.

消费消息

./kafka-console-consumer.sh --bootstrap-server 180.114.8.105:9092 --topic logstashtokafka_alarm --from-beginning
  • 1.

三、Rsyslog安装配置

1.检查是否已经安装

systemctl status rsyslog
  • 1.

如果没有安装

sudo apt-get install rsyslog
  • 1.

2.配置文件/etc/rsyslog.conf修改

2.1放开UDP接收的注释:
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
  • 1.
  • 2.
  • 3.
2.2创建用于接收远程消息的模板:

创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在文件中的GLOBAL DIRECTIVES部分之前添加模板

$template RemoteLogs,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
  • 1.
  • 2.

最后一行添加如下信息:

if $programname  contains  'hx_'  and $msg contains 'DispTitle' then  @192.168.21.68:514

if $programname == 'error' and $msg contains 'DispTitle' then  @192.168.21.68:514
  • 1.
  • 2.
  • 3.

配置完检查是否有语法错误

rsyslogd -f /etc/rsyslog.conf -N1
  • 1.

重启rsyslog

systemctl restart syslog
  • 1.