• Logstash 安装配置使用


    一、Windows下安装运行

      官网下载,下载与elasticSearch同一个版本,zip格式。Logstash占用内存较大,我在使用的时候cpu一般都是冲到90%

    1、CMD直接运行

    创建一个基本的Logstash管道来测试Logstash设置。

    解压logstash ,并且在bin目录下运行命令(参考下面命令):加入 -e 标志可以在命令行直接指定配置文件。

    logstash -e "" 

    或者:

    logstash -e "input { stdin {} } output { stdout {} }"

    注意:双引号不能改成单引号否则可能会报:ERROR: Unknown command '{'

    然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,Logstash会将时间戳和IP地址信息加入输出的消息。按下ctrl+C可以从命令行退出Logstash。

    2、配置文件运行,并用bat文件

      进入bin目录,新建文件 logstash_default.conf  内容如下:

    input {
    stdin{}
    }
    
    output {
    stdout{}
    elasticsearch {hosts=>"127.0.0.1:9200"} }

    配置文件中定义了stdout和elasticsearch作为output,这样的“多重输出”即保证输出结果显示到屏幕上,同时也输出到elastisearch中。

    在bin目录,新文件文件  run_default.bat  内容如下:

    logstash -f logstash_default.conf

    启动 run_default.bat 启动logstash。 等待cmd中出现:logstash api endpoint {:port=>9600 }    浏览器访问:http://localhost:9600/

    在CMD中输入任何你想输入的字符串。然后看下es中是否有了数据。

    3、使用NSSM将Logstash安装为Windows服务

    • 下载NSSM:http://www.nssm.cc/download
    • NSSM解压,eg:E盘,进入到E: ssm-2.24win64 ,执行cmd

    • nssm install logstash,【nssm install <服务名> 例如:nssm install Elasticsearch(自定义服务名)】 弹出如下界面

    Path: 填写启动文件路径(${LOGSTASH_HOME}inxxx.bat)
    Startup directory : 填写启动文件目录(${LOGSTASH_HOME}in)
    Detail : 填写服务名称
    Dependencies : 填写此服务启动需要依赖哪个服务(一般配置为要先启动elasticsearch,再启动logstash)

    二、工作原理

      在logstash中,包括了三个阶段:输入input --> 处理filter(不是必须的) --> 输出output

    1、输入:采集各种样式、大小和来源的数据

      数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

    2、过滤器:实时解析和转换数据

      数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

    3、输出:选择你的存储,导出你的数据

    尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。

    Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。 

    每个阶段都由很多的插件配合工作,比如file、elasticsearch、Redis等等。

    每个阶段也可以指定多种方式,比如输出既可以输出到elasticsearch中,也可以指定到标准输出stdout在控制台打印

    三、命令行中常用的命令

      -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash

      -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“” 则默认使用stdin作为输入,stdout作为输出)

      -l:日志输出的地址(默认就是stdout直接在控制台中输出)

      -t:测试配置文件是否正确,然后退出。

    logstash -f stdin.conf -t

    四、用Logstash解析日志

       在现实世界中,一个Logstash管理会稍微复杂一些:它通常有一个或多个input,filter 和 output 插件。

    在这一小节中,创建一个Logstash管道,并且使用Filebeat将Apache Web日志作为input,解析这些日志,然后将解析的数据写到一个Elasticsearch集群中。你将在配置文件中定义管道,而不是在命令行中定义管道配置。

    在开始之前,请先下载示例数据

    1、配置Filebeat来发送日志行到Logstash

    在你创建Logstash管道之前,你需要先配置Filebeat来发送日志行到Logstash。Filebeat客户端是一个轻量级的、资源友好的工具,它从服务器上的文件中收集日志,并将这些日志转发到你的Logstash实例以进行处理。Filebeat设计就是为了可靠性和低延迟。Filebeat在主机上占用的资源很少,而且Beats input插件将对Logstash实例的资源需求降到最低。

    (画外音:注意,在一个典型的用例中,Filebeat和Logstash实例是分开的,它们分别运行在不同的机器上。在本教程中,Logstash和Filebeat在同一台机器上运行。)

    第1步:配置filebeat.yml

    filebeat.inputs:
    - type: log
      paths:
        - /usr/local/programs/logstash/logstash-tutorial.log
    
    output.logstash:
      hosts: ["localhost:5044"]

    第2步:在logstash安装目录下新建一个文件first-pipeline.conf

     

    (画外音:刚才说过了通常Logstash管理有三部分(输入、过滤器、输出),这里input下面beats { port => "5044" }的意思是用Beats输入插件,而stdout { codec => rubydebug }的意思是输出到控制台)

    第3步:检查配置并启动Logstash

    logstash -f first-pipeline.conf --config.test_and_exit

    (画外音:--config.test_and_exit选项的意思是解析配置文件并报告任何错误)

    logstash -f first-pipeline.conf --config.reload.automatic

    (画外音:--config.reload.automatic选项的意思是启用自动配置加载,以至于每次你修改完配置文件以后无需停止然后重启Logstash)

    第4步:启动filebeat

    filebeat -e -c filebeat.yml -d "publish"

    如果一切正常,你将会在Logstash控制台下看到类似这样的输出:

    更多参考:Logstash

  • 相关阅读:
    CAN总线学习资料
    VMware虚拟机 硬盘空间不足 磁盘大小调整方案
    郭天祥-S3C2440开发板Linux2.6.31移植教程
    MFC串口编程——使用标准SerialCom类
    Luogu P2602 [ZJOI2010]数字计数 //数位DP
    luogu P1896 [SCOI2005] 互不侵犯 //状压DP
    中北大学ACM 5/12 T6 CSY的幸福
    P2473 || SCOI2008 奖励关 //状压&&期望DP
    请让蝴蝶爬满全身
    【图论】二分图 // 未完成 =、=
  • 原文地址:https://www.cnblogs.com/peterYong/p/11061160.html
Copyright © 2020-2023  润新知