Logstash 简介:

Logstash 是一个实时数据收集引擎,可收集各类型数据并对其进行分析,过滤和归纳。按照自己条件分析过滤出符合数据导入到可视化界面。它可以实现多样化的数据源数据全量或增量传输,数据标准格式处理,数据格式化输出等的功能,常用于日志处理。工作流程分为三个阶段:

  (1)input数据输入阶段,可接收oracle、mysql、postgresql、file等多种数据源;
  (2)filter数据标准格式化阶段,可过滤、格式化数据,如格式化时间、字符串等;
  (3)output数据输出阶段,可输出到elasticsearch、mongodb、kfka等接收终端。
  那么,接下来将会对每个阶段进行讲解。

一、官网下载安装

1、下载logstash-6.6.0安装包,下载路径:logstash-6.6.0,然后解压之es的同级目录(方便管理);或直接在服务器上下载:

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

2、将安装包上次到服务器,然后解压安装包,例如解压到:/usr/local/

   tar –zxvf logstash-6.6.0.tar.gz

  重命名安装目录

    mv logstash-6.6.0 logstash

二、使用测试

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

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

1 [root@cdh4 logstash]# mkdir test
2 [root@cdh4 logstash]# cd test
3 [root@cdh4 test]# vim std_std.conf

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

1 input {
2     stdin{
3     }
4 }
5 output {
6     stdout{
7     }
8 }

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

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

  -f 是指基于配置文件的路径:

  控制台输入测试:

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

 1 [root@cdh4 test]# vim access_log.2018-04-10.log
 2 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/css/component.css HTTP/1.1" 304 -
 3 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/EasePack.min.js HTTP/1.1" 304 -
 4 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/TweenLite.min.js HTTP/1.1" 304 -
 5 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/rAF.js HTTP/1.1" 304 -
 6 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/js/demo-1.js HTTP/1.1" 304 -
 7 10.2.17.9 - - [10/Apr/2018:09:06:22 +0800] "GET /static/logshow/img/demo-1-bg.jpg HTTP/1.1" 304 -
 8 10.2.17.9 - - [10/Apr/2018:09:06:30 +0800] "GET / HTTP/1.1" 302 -
 9 10.2.17.9 - - [10/Apr/2018:09:06:30 +0800] "GET /login HTTP/1.1" 200 3271
10 10.2.17.9 - - [10/Apr/2018:09:06:36 +0800] "POST /login HTTP/1.1" 302 -
11 10.2.17.9 - - [10/Apr/2018:09:06:36 +0800] "GET / HTTP/1.1" 200 11776
12 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 文件,添加内容:

 1 input{
 2     file{
 3         path =>"/home/logstash/logstash-5.4.0/test/access_log.2018-04-10.log"
 4         start_position=>"beginning"
 5     }
 6 }
 7
 8 filter{
 9     grok{
10         match=>{
11             "message"=>"%{DATA:clientIp} - - \[%{HTTPDATE:accessTime}\] \"%{DATA:method} %{DATA:requestPath} %{DATA:httpversion}\" %{DATA:retcode} %{DATA:size} \"%{DATA:fromHtml}\" \"%{DATA:useragent}\""
12         }
13
14         remove_field=>"message"
15     }
16     date{
17         match=>["accessTime","dd/MMM/yyyy:HH:mm:ss Z"]
18     }
19 }
20
21 output{
22     stdout{
23         codec=>rubydebug
24     }
25 }  

这个配置文件相对比较复杂,而且我们一般在使用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解析后的信息。你可以试着去掉这一句就明白他的用处了。

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

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

3.接收控制台输入,Logstash解析输出到ElasticSearch集群

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

 1 input{
 2         stdin {}
 3 }
 4 output {
 5         elasticsearch {
 6                 hosts => ["10.10.10.34:9200"]
 7                 index => "yj_index"
 8         }
 9         stdout { codec => rubydebug}
10 }

然后执行测试:

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

可以看到控制台出现了ES-JSON:

再通过head插件查看这些内容有没有存进去:

可以看到,一切OK

转载于:https://www.cnblogs.com/haw2106/p/10410916.html

Logstash在Linux上安装部署相关推荐

  1. Linux上安装部署Solr-4.10.4并测试

    Solr是一种全文检索技术,在一些门户社区中能提高用户体验.Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交 ...

  2. linux上安装部署vnc远程服务

    本文操作环境为: [root@localhost ~]# uname -a Linux localhost.localdomain 4.19.90-17.ky10.aarch64 #1 SMP Sun ...

  3. Linux上安装oracle19c客户端,Oracle 19c的下载和安装部署(图形安装和静默安装)

    Oracle 19C的下载和安装部署(图形安装和静默安装) Oracle Database 19c ,也就是12.2.0.3,最初在livesql.oracle.com上发布,是Oracle Data ...

  4. 在 Linux 或者 Windows 服务器上安装部署 MATLAB

    在 Linux 或者 Windows 服务器上安装部署 MATLAB 目标 在服务器上安装 MATLAB,以供实验室内多个用户远程连接使用.特别是要完成 MATLAB 的激活. 安装方式 这里我们采用 ...

  5. Linux上安装Java部署项目必要软件

    目录 Linux上软件安装常用软件 1.在Linux上安装JDK: 2.在Linux上安装Mysql: 3.在Linux上安装tomcat: 4.在Linux上安装redis Linux上软件安装常用 ...

  6. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

  7. linux下安装部署ansible

    linux下安装部署ansible 介绍 Ansible是一种批量部署工具,现在运维人员用的最多的三种开源集中化管理工具有:puppet,saltstack,ansible,各有各的优缺点,其中sal ...

  8. linux 下安装部署mq,RocketMQ在linux下安装部署

    本博客以当前RocketMQ最新版介绍:v4.4.0 环境要求 64位JDK 1.8+; Maven 3.2.x; // 源码编译时需要用到 二进制文件安装 > unzip rocketmq-a ...

  9. 云服务器,Linux上安装xampp来搭建node,api

    目录 下载xampp: xampp安装步骤 安装守护进程pm2 服务器上启动node服务 Debian 10(Buster)上安装Firewalld 服务器的安全组规则,开放端口 linux查看自己的 ...

最新文章

  1. ERROR: from PIL import Image ImportError: No module named PIL
  2. java ajax搜索框提示,Javaweb-案例练习-2-给搜索框添加提示
  3. Linux线程(六)
  4. Spring Boot 2中的功能切换
  5. java安装后在哪里打开_冷却塔声屏障安装后降噪效果不理想,原因出在哪里?...
  6. 《Windows Phone 7 用户界面设计和交互指南 v2.0》
  7. Visual Studio Code 调试 React Native (RN) 步骤 Mac版
  8. pmp第六版错题集6.1
  9. 软件测试方法可以分为几种?
  10. Java FTP工具类
  11. 串行进位加法器电路图(logisim实现)
  12. 泛微oa ecology8.0创建工作流程示例
  13. macOS免费串口工具coolTerm/Minicom/Comtool/Volt+(伏特加)/友善串口调试助手/screen/picocom
  14. NAT转换技术(SNAT、MASQUERADE、DNAT策略)及代理服务(squid服务)
  15. storm trident mysql,storm_Trident
  16. form编译报错:ORA-12162: TNS:net service name is incorrectly specified解决办法
  17. IT软件开发行业拓客的10个经典方法
  18. 九章算法面试题27 最大连续子集
  19. 敏友的【敏捷个人】有感(9): 2012年,开始我的敏捷个人之行
  20. 威纶通界面UI,复制可用,威伦通触摸屏设计界面

热门文章

  1. C#参考之方法参数关键字:params、ref及out
  2. call_user_func_array 笔记
  3. 测试功能范围_IT8511+电子负载 OCP?测试功能
  4. 华为服务器万兆网卡驱动型号,华为万兆光模块型号参数大全
  5. cnn 预测过程代码_FPN的Tensorflow代码详解——特征提取
  6. redis3.2.1php扩展,php7.2.1+redis3.2.1 安装redis扩展(windows系统)
  7. python入门语句_Python 快速入门笔记(5):语句
  8. python画笔初始位置_turtle绘画-移动落笔点(改变初始原点)
  9. sqlserver2008清除日志方法_服务器磁盘使用率100%解决方法
  10. # 可视化工具资源汇总