Linux下安装 Logstash 5.4.0 及简单使用

背景:
Centos7.3 Linux系统,服务器内网防火墙处于关闭状态;
之前已经在三台服务器上安装好了ES集群(10.3.1.8、10.3.1.9、10.3.1.13),每台单实例,互相已配置SSH免密登录。服务器本身安装好了JDK1.8,配置好了环境变量。
由于Logstash具备相当的独立性,我把它放在10.3.1.14这台机器上
还没安装ES的可以参考我之前写的ES集群安装文档:
Linux下安装 ElasticSearch 5.4.0 集群全过程(包括head插件)


一、官网下载安装

1.官网手动下载:https://www.elastic.co/downloads/past-releases
注意版本对应ES的版本:(我全部都选择5.4.0)
这里写图片描述

2.服务器在线下载:

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz

我暂时是把 Logstash 和 Kibana 都放在 10.3.1.14 这台机器上

logstash没这么多讲究,随便找个目录安装就行,我是放在 /home/logstash/logstash-5.4.0
这里写图片描述

二、使用测试

注:此处只是简单测试下Logstash的基本功能

1.接收控制台输入,Logstash解析输出到控制台
在Logstash目录下创建test文件夹:

[root@cdh4 logstash-5.4.0]# mkdir test
[root@cdh4 logstash-5.4.0]# cd test
[root@cdh4 test]# vim std_std.conf

在test目录下创建 std_std.conf 文件,添加内容:

input {
    stdin{
    }
}
output {
    stdout{
    }
}

然后到bin目录下启动Logstash(基于std_std.conf):

./logstash -f ../test/std_std.conf

这里写图片描述

-f 是指基于配置文件的路径
这里写图片描述

控制台输入测试:
这里写图片描述

2.从文件读取,Logstash解析输出到控制台
我是从取出tomcat的当天access_log作为读取文件,没有该文件的可以复制下面一段内容做成测试文件

[root@cdh4 test]# vim access_log.2018-04-10.log
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/css/component.css HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/EasePack.min.js HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/TweenLite.min.js HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/rAF.js HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/demo-1.js HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/img/demo-1-bg.jpg HTTP/1.1" 304 -
10.2.17.9 - - [10/Apr/2018:09:06:30 +0800] "GET / HTTP/1.1" 302 -
10.2.17.9 - - [10/Apr/2018:09:06:30 +0800] "GET /login HTTP/1.1" 200 3271
10.2.17.9 - - [10/Apr/2018:09:06:36 +0800] "POST /login HTTP/1.1" 302 -
10.2.17.9 - - [10/Apr/2018:09:06:36 +0800] "GET / HTTP/1.1" 200 11776
10.2.17.9 - - [10/Apr/2018:09:06:36 +0800] "GET /static/css/font-awesome.min.css?v=4.4.0 HTTP/1.1" 304 -

在test目录下创建 file_std.conf 文件,添加内容:

input{
    file{
        path =>"/home/logstash/logstash-5.4.0/test/access_log.2018-04-10.log"
        start_position=>"beginning"
    }
}

filter{
    grok{
        match=>{
            "message"=>"%{DATA:clientIp} - - \[%{HTTPDATE:accessTime}\] \"%{DATA:method} %{DATA:requestPath} %{DATA:httpversion}\" %{DATA:retcode} %{DATA:size} \"%{DATA:fromHtml}\" \"%{DATA:useragent}\""
        }

        remove_field=>"message"
    }
    date{
        match=>["accessTime","dd/MMM/yyyy:HH:mm:ss Z"]
    }
}

output{
    stdout{
        codec=>rubydebug
    }
}

这个配置文件相对比较复杂,而且我们一般在使用elk的时候logstash的配置文件基本也是和这个类似,大同小异了,这里对关键部分详细解说一下。更深入的内容和使用方式,大家可以到elastic官网或者到logstash的最佳实战页面去看,网址是:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html

input/file/path:这里指定了要对哪个日志文件进行扫描。如果希望扫描多个文件,可以使用*这个路径通配符;或者使用多个日志路径以数组形式提供(path=>[“outer-access.log”,”access.log”]);或者直接给定一个目录,logstash会扫描所有的文件,并监听是否有新文件。

filter/grok/match/message:里面的DATA和HTTPDATE都是grok语法内置的正则表达式,DATA匹配任意字符,HTTPDATE匹配joda类型的日期格式字符。上例中”[“是匹配“[”。

filter/grok/match/date:是对HTTPDATE日期格式的解释,joda可以支持很多复杂的日期格式,需要在这里指明才能正确匹配。

remove_field=>”message”:用处是去掉原有的整个日志字符串,仅保留filter解析后的信息。你可以试着去掉这一句就明白他的用处了。

然后启动就可以直接看到解析输出到控制台的内容了:

./logstash -f ../test/file_std.conf

这里写图片描述

3.接收控制台输入,Logstash解析输出到ElasticSearch集群
确保集群三台机器已经启动,其中10.3.1.8是master

在test目录下创建 file_es.conf 文件,添加内容:

input{
        stdin {}
}
output {
        elasticsearch {
                hosts => ["10.3.1.8:9200"]
                index => "yj_index"
        }
        stdout { codec => rubydebug}
}

然后执行测试:

./logstash -f ../test/file_es.conf

可以看到控制台出现了ES-JSON:
这里写图片描述

再通过head插件查看这些内容有没有存进去:
这里写图片描述

可以看到,一切OK!


### 回答1: 要在Linux安装Logstash,您可以按照以下步骤操作: 1. 下载Logstash安装包,可以从官方网站或者其他可靠的下载站点获取。 2. 解压安装包到您想要安装的目录。 3. 配置Logstash的配置文件,包括输入、过滤和输出等。 4. 启动Logstash服务,可以使用命令行或者系统服务管理工具。 5. 测试Logstash是否正常工作,可以使用一些测试数据来验证Logstash是否正确地处理了数据。 需要注意的是,安装Logstash之前需要确保您的系统已经安装了Java运行环境。另外,Logstash的配置文件需要根据您的具体需求进行调整,以确保能够正确地处理数据。 ### 回答2: Logstash是一款用于数据处理的开源工具,可以将各种不同格式的数据从不同的来源采集、转换、过滤和输出。对于Linux系统,安装Logstash需要经过以下步骤: 1. 下载并安装Java环境。Logstash需要运行在Java环境中,因此需要先安装Java。可以在终端中输入以下命令进行安装: sudo apt-get install default-jre 2. 下载并安装Logstash包。在官网下载Logstash的最新版,解压并安装。以下命令将Logstash包下载到本地: wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0.tar.gz 解压Logstash包: tar -xzvf logstash-7.14.0.tar.gz 3. 配置Logstash。可以在/etc/logstash目录中创建一个新的配置文件,例如myconfig.conf,并编辑它以指定需要采集、转换、过滤和输出的数据。以下是一个简单的配置示例,它从stdin输入接收数据并将其发送到stdout输出: input { stdin {} } output { stdout {} } 4. 启动Logstash。可以在命令行中输入以下命令来启动Logstash: cd logstash-7.14.0/bin/ ./logstash -f /etc/logstash/myconfig.conf 运行Logstash后,可以使用Ctrl+C键来停止它。 5. 配置Logstash以作为服务运行。为了更方便地管理Logstash,可以将它配置为作为服务运行。以下是在systemd下配置Logstash服务的命令: sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable logstash.service sudo /bin/systemctl start logstash.service 以上是在Linux系统上安装Logstash的基本步骤。要注意的是,在配置Logstash时,需要注意采集和处理数据的输入和输出,以使其能够顺利地完成数据管道的工作。同时,应根据实际需求进行配置,以满足具体的业务需求,提高数据处理的效率和精度。 ### 回答3: Logstash是一个在开源社区中广泛使用的日志收集和处理工具。它能够从多种数据源中获取任意类型的数据,经过过滤和转换后,将其输出到各种目标数据存储中。在本文中,我们将讨论如何在Linux系统中安装Logstash。 步骤一:安装Java Logstash是基于Java编写的,因此必须先在系统中安装Java。打开终端,输入以下命令,安装Java: $ sudo apt-get install openjdk-8-jre 步骤二:下载和设置Logstash安装Logstash之前,我们需要先从官网下载Logstash工具。首先在Web浏览器中访问https://www.elastic.co/cn/downloads/logstash并选择适合自己系统的Logstash版本。 下载完成后,我们需要将下载的压缩包解压到本地。 $ tar xvf logstash-6.5.1.tar.gz 解压完成后,进入目录 logstash-6.5.1/bin,并启动Logstash: $ ./logstash -e 'input { stdin { } } output { stdout { } }' -e参数允许我们以命令行方式启动Logstash,它将会从标准输入(input)获取任何输入,并输出到标准输出(output)。因此,我们将在终端中看到输入的任何内容,并直接输出到屏幕中。 步骤三:配置Logstash 启动Logstash后,我们需要编辑配置文件,以将其与数据源进行连接。Logstash的配置文件通常存储在 /etc/logstash/conf.d 目录中。我们创建以下文件,来配置Logstash: $ sudo nano /etc/logstash/conf.d/apache.conf 输入以下内容: input { beats { port => 5044 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => ["localhost:9200"] } stdout { codec => rubydebug } } 该配置定位了数据输入端口 5044,并设置了数据格式过滤器。然后,将数据输出到Elasticsearch和标准输出流。 步骤四:启动Logstash服务 启动Logstash作为服务,以增强稳定性和自动化。通过以下命令启动Logstash: $ sudo systemctl start logstash 可以通过以下命令查看服务的状态: $ sudo systemctl status logstash 如果输出的状态显示“active (running)”表示服务运行正常。 此外,我们还可以使用以下命令开启自动启动: $ sudo systemctl enable logstash 以上就是Linux安装Logstash的流程。Logstash具有强大的数据采集能力,可以快速地获取和过滤数据,非常适合进行分布式系统数据分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值