前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第三章·Logstash入门-部署与测试

第三章·Logstash入门-部署与测试

作者头像
DriverZeng
发布2022-09-26 11:07:49
3160
发布2022-09-26 11:07:49
举报
文章被收录于专栏:Linux云计算及前后端开发

曾志高翔, 江湖人称曾老大。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 个人博客:"DBA老司机带你删库跑路"

Logstash环境准备与安装

Logstash环境准备

关闭防火墙

代码语言:javascript
复制
#CentOS6 关闭防火墙
[root@elkstack01 ~]# /etc/init.d/iptables stop
#CentOS7 关闭防火墙
[root@elkstack01 ~]# systemctl stop firewalld

关闭SELINUX

代码语言:javascript
复制
#临时关闭
[root@elkstack01 ~]# setenforce 0
setenforce: SELinux is disabled
#永久关闭
[root@elkstack01 ~]# vim /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled    ==>      //原来是enforcing 改成disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

设置epel源

代码语言:javascript
复制
#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

修改时区

代码语言:javascript
复制
#将时区修改为上海时区
[root@elkstack01 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp:是否覆盖"/etc/localtime"? y

设置时间同步

代码语言:javascript
复制
#同步服务器时间(切记保证集群之间时间一致非常重要)
[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

Logstash是一个开源的数据收集引擎,可以水平伸缩,而且logstash整个ELK当中拥有最多插件的一个组件,其可以接收来自不同来源的数据并统一输出到指定的且可以是多个不同目的地。

安装JDK环境

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

代码语言:javascript
复制
#解压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

代码语言:javascript
复制
#安装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(超文本传输协议)

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标准输入到标准输出

代码语言:javascript
复制
#从标准输入到标准输出
[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"
}

结果展示如下图所示:


测试logstash标准输入到文件

代码语言:javascript
复制
#从标准输入到文件中
[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"}

结果展示如下图所示:


测试logstash标准输入到ES

代码语言:javascript
复制
#从标准输入到Elasticsearch
[root@elkstack03 ~]# /usr/share/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch {hosts => ["10.0.0.51:9200"] index => "zls_%{+YYYY.MM.dd}" }}'
#输入内容
zls test stdin to ES
#在Elasticsearch中查看数据结果
[root@elkstack01 ~]# ll /data/elk/data/nodes/0/indices/
总用量 8
drwxr-xr-x 9 elasticsearch elasticsearch 4096 3月   5 17:19 C8o7IxEVR2W7CpPFFCa4cA
drwxr-xr-x 9 elasticsearch elasticsearch 4096 3月   5 19:35 R8IZGhT4Sw2XukCiG1O02A

结果展示如下图所示:

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Logstash环境准备与安装
  • Logstash输入输出插件介绍
  • Logstash输入输出插件测试
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档