Skip to the content.

Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(我们的存储库当然是 Elasticsearch。)

基本结构

logstash 简单配置

服务器环境

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@localhost ~]# uname -a 
Linux localhost 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# 

安装一个java,1.8以上

[root@localhost ~]# yum install java
[root@localhost logstash-6.3.0]# rpm -qa |grep java
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.171-8.b10.el7_5.x86_64
java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64

下载logstash

[root@localhost ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz
[root@localhost ~]# tar -xzvf logstash-6.3.0.tar.gz
# 执行文件
[root@localhost ~]# cd logstash-6.3.0
[root@localhost logstash-6.3.0]# bin/logstash

写一个配置文件

[root@localhost logstash-6.3.0]# cat my.conf 
input {
	# 从文件输入
	file {
		path => "/var/log/messages"
		type => "system"
		start_position => "beginning"
	}
	
	# 从syslog输入
	syslog {
		type => "localhost-syslog"
		port => 514
	}
}

# filter {
#	
# }

output {
    # 标准输出
	stdout { codec => rubydebug }
	# 输出到文件
	file {
 	  path => "/tmp/my2.log"
 	  # 自己修改格式
 	  #codec => line { format => "custom format: %{message}"}
 	}
}
[root@localhost logstash-6.3.0]# 

执行下面命令开始收集

[root@localhost logstash-6.3.0]# ./bin/logstash -f my.conf  

在syslog源端指定syslog发送目标

[root@localhost ~]# cat /etc/rsyslog.conf |grep 192.168.56
*.* @@192.168.56.154:514
[root@localhost ~]# systemctl restart rsyslog
# 或者
[root@localhost ~]# service rsyslog restart

参考