zoukankan      html  css  js  c++  java
  • 第三章·Logstash入门-部署与测试

    1.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
    # 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源

    #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

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

    安装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/
    

    2、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(用户数据报协议)    

    3.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"
    }
    

    结果展示如下图所示:


    测试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"}
    

    结果展示如下图所示:


    测试logstash标准输入到ES
    #从标准输入到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

  • 相关阅读:
    setInterval和setTimeOut方法—— 定时刷新
    json
    开发者必备的火狐插件
    C#泛型类和集合类的方法
    jQuery几种常用方法
    SQL语句优化技术分析
    索引的优点和缺点
    Repeater使用技巧
    jQuery 表格插件
    利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
  • 原文地址:https://www.cnblogs.com/Forever-x/p/11324987.html
Copyright © 2011-2022 走看看