当前位置:首页 > ELKstack > 正文内容

Logstash入门-部署与测试

5年前 (2019-08-29)ELKstack694

Logstash环境准备与安装


Logstash环境准备

关闭防火墙

#CentOS6 关闭防火墙
[root@elkstack01 ~]# /etc/init.d/iptables stop
#CentOS7 关闭防火墙
[root@elkstack01 ~]# systemctl stop firewalld

关闭SELINUX

#临时关闭
[root@elkstack01 ~]# setenforce 0
setenforce: SELinux is disabled
#永久关闭
[root@elkstack01 ~]# vim /etc/sysconfig/selinux
SELINUX=disabled    ==>      //原来是enforcing 改成disabled
SELINUXTYPE=targeted

设置epel源

#CentOS6 下载epel源
[root@elkstack01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
#CentOS7 下载epel源
[root@elkstack01 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

修改时区

#将时区修改为上海时区

[root@elkstack01 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp:是否覆盖"/etc/localtime"? y

设置时间同步

#同步服务器时间
[root@elkstack01 ~]# ntpdate time1.aliyun.com
28 Feb 14:11:28 ntpdate[8904]: step time server 203.107.6.88 offset 3168820.831817 sec

部署Logstash

安装JDK环境


下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

#解压JDK安装包
[root@elkstack01 ~]# tar xf jdk-8u121-linux-x64.tar.gz
#将JDK安装包移动到安装目录下
[root@elkstack01 ~]# mv jdk1.8.0_121 /usr/local/
#做软链接(方便日后升级)
[root@elkstack01 ~]# ln -s /usr/local/jdk1.8.0_121 /usr/local/jdk1.8
#添加环境变量
[root@elkstack01 ~]# vim /etc/profile.d/jdk1.8.sh
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#加载环境变量
[root@elkstack01 ~]# source /etc/profile
#检查是否加载成功
[root@elkstack01 ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

安装Logstash

下载地址: https://www.elastic.co/downloads/past-releases/logstash-5-3-0

#安装Logstash使用yum localinstall 自动安装依赖包
[root@elkstack03 ~]# yum localinstall -y logstash-5.3.0.rpm
#给Logstash目录授权
[root@elkstack03 ~]# chown -R logstash.logstash /usr/share/logstash/

Logstash输入输出插件介绍

INPUT、OUTPUT插件

INPUT:插件使Logstash能够读取特定的事件源。

OUTPUT:插件将事件数据发送到特定的目的地,OUTPUT是事件流水线中的最后阶段。

INPUT支持事件源OUTPUT支持输出源CODEC编解码器支持编码
azure_event_hubs(微软云事件中心)
elasticsearch(搜索引擎数据库)avro(数据序列化)
beats(filebeat日志收集工具)email(邮件)CEF(嵌入式框架)
elasticsearch(搜索引擎数据库)file(文件)es_bulk(ES中的bulk api)
file(文件)http(超文本传输协议)http(超文本传输协议)Json(数据序列化、格式化)
generator(生成器)kafka(基于java的消息队列)Json_lines(便于存储结构化)
heartbeat(高可用软件)rabbitmq(消息队列 OpenStack)line(行)
http_poller(http api)redis(缓存、消息队列、NoSQL)multiline(多行匹配)
jdbc(java连接数据库的驱动)s3*(存储)plain(纯文本,事件间无间隔)
kafka(基于java的消息队列)stdout(标准输出)rubydebug(ruby语法格式)
rabbitmq(消息队列 OpenStack)tcp(传输控制协议)
redis(缓存、消息队列、NoSQL)udp(用户数据报协议)
s3*(存储)

stdin(标准输入)

syslog(系统日志)

tcp(传输控制协议)

udp(用户数据报协议)

Logstash输入输出插件测试

测试logstash标准输入到标准输出

#从标准输入到标准输出
[root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug }}'
#标准输入zls test及返回结果
zls test
{
#时间戳
    "@timestamp" => 2019-03-05T09:41:40.198Z,
#版本信息
      "@version" => "1",
#主机
          "host" => "0.0.0.0",
#接收信息
       "message" => "zls test"
}

结果展示如下图所示:

image.png

测试logstash标准输入到文件

#从标准输入到文件中
[root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { file { path => "/tmp/test_%{+YYYY.MM.dd}.log"}}'
#输入bgx ugly
bgx ugly
#返回结果
19:10:00.303 [[main]>worker0] INFO  logstash.outputs.file - Opening file {:path=>"/tmp/test_2019.03.05.log"}
#查看tmp目录下是否有日志文件存在
[root@elkstack03 ~]# ll /tmp/
总用量 4
-rw-r--r-- 1 root root   95 3月   5 19:10 test_2019.03.05.log
#查看日志内容
[root@elkstack03 ~]# cat /tmp/test_2019.03.05.log
{"@timestamp":"2019-03-05T11:10:00.235Z","@version":"1","host":"0.0.0.0","message":"bgx ugly"}

结果展示如下图所示:

image.png

15518481344100.jpg


打开浏览器,访问:http://10.0.0.51:9100

微信截图_20190829151210.png

“Logstash入门-部署与测试” 的相关文章