本篇文章主要讲解如下安装Logstash,logstash依赖于Java环境,首先安装Java,安装脚本如下:

yum install java

logstash安装

Logstash的安装脚本如下:

# 下载logstash的压缩包
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.zip
# 解压压缩包
upzip logstash-7.2.0.zip
# 将解压的包移到/usr/share目录下
mv logstash-7.2.0 /usr/share/
cd /usr/share/logstash-7.2.0/

stash第一个事件

Logstash管道有两个必需元素,输入和输出,以及一个可选元素filter。 输入插件使用来自源的数据,过滤器插件在您指定时修改数据,输出插件将数据写入目标。 如下如

要测试Logstash安装成功,运行最基本的Logstash管道。 执行以下的命令

 bin/logstash -e 'input { stdin { } } output { stdout {} }'

-e标志使您可以直接从命令行指定配置。 通过在命令行指定配置,可以快速测试配置,而无需在迭代之间编辑文件。 示例中的管道从标准输入stdin获取输入,并以结构化格式将输入移动到标准输出stdout。 启动Logstash后,等到看到“Pipeline main started”,然后在命令提示符下输入hello world,显示的如下:

hello world
{"host" => "VM_0_13_centos","message" => "hello world","@version" => "1","@timestamp" => 2019-07-02T06:26:28.684Z
}

配置logstash输出到elasticsearch

修改logstash的安装目录的config目录下的logstash-sample.conf文件,配置如下:

input {beats {port => 5044}
}
output {elasticsearch {hosts => ["http://10.0.0.5:9200", "http://10.0.0.13:9200", "http://10.0.0.17:9200"]index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"#user => "elastic"#password => "changeme"}
}

在上面的配置中,输入数据源为filebeat,关于filebeat见下一小节,输出源为elasticsearch。更多的输入和输出源的配置见官网https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html

用下面的命令从后台启动logstash:

./bin/logstash -f config/logstash-sample.conf >logstash.log  2>&1 &

logstash结合filebeat

在分布式系统中,一台主机可能有多个应用,应用将日志输出到主机的指定目录,这时由logstash来搬运日志并解析日志,然后输出到elasticsearch上。由于于 logstash是java应用,解析日志是非的消耗cpu和内存,logstash安装在应用部署的机器上显得非常的笨重。最常见的做法是用filebeat部署在应用的机器上,logstash单独部署,然后由 filebeat将日志输出给logstash解析,解析完由logstash再传给elasticsearch。

下载filebeat,下载命令如下:

 wget  https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz
tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz
mv filebeat-7.2.0-linux-x86_64 /usr/share/
cd /usr/share/filebeat-7.2.0-linux-x86_64/

vim filebeat.yml修改配置:

filebeat.inputs:
- type: logenabled: truepaths:- /var/log/service-hi.log
output.logstash:hosts: ["192.168.1.4:5044"]

主要配置的是日志的搜集目录为/var/log/service-hi.log,这个目录是应用service-hi输出日志的文件。输出到logstsh的地址为192.168.1.4

启动filebeat,执行一下命令:

sudo chown root filebeat.yml
sudo ./filebeat -e >filebeat.log 2>&1 &

Spring Boot整合ELK+Filebear构建日志系统

在SpringBoot应用service-hi,定时输出日志如下:

@SpringBootApplication
public class ElkTestApplication {Logger logger= LoggerFactory.getLogger(ElkTestApplication.class);Random random=new Random(10000);public static void main(String[] args) {SpringApplication.run(ElkTestApplication.class, args);new ElkTestApplication().initTask();}private void initTask(){Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {@Overridepublic void run() {logger.info("seed:"+random.nextInt(999999));}},100,100, TimeUnit.MILLISECONDS);}
}

然后在部署了filebeat的机器上部署该应用,应用的输出文件为/var/log/service-hi.log,应用启动命令如下:

nohup java -jar  elk-test-0.0.1-SNAPSHOT.jar > /var/log/service-hi.log 2>&1  &

应用启动成功后日志输出如下:

2019-07-02 17:13:13.530  INFO 31579 --- [pool-1-thread-1] com.example.elktest.ElkTestApplication   : seed:562779
2019-07-02 17:13:13.630  INFO 31579 --- [pool-1-thread-1] com.example.elktest.ElkTestApplication   : seed:963836
2019-07-02 17:13:13.730  INFO 31579 --- [pool-1-thread-1] com.example.elktest.ElkTestApplication   : seed:825694
2019-07-02 17:13:13.830  INFO 31579 --- [pool-1-thread-1] com.example.elktest.ElkTestApplication   : seed:33228
2019-07-02 17:13:13.930  INFO 31579 --- [pool-1-thread-1] com.example.elktest.ElkTestApplication   : seed:685589

这时的日志数据的传输路径如下图: 

在kibana组件上查看,可以看到创建了一个filebeat开头的数据索引,如下图:

在日志搜索界面,可以看到service-hi应用输出的日志,如图所示:

参考资料

https://www.elastic.co/guide/en/logstash/7.2/installing-logstash.html#_yum https://www.elastic.co/guide/en/logstash/7.2/first-event.html https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html

热门内容:

  • 优秀的代码都是如何分层的?

  • 面试必备,Java线程状态之细节回顾

  • 每个公司都会用的短 URL 服务,怎么设计与实现?

  • 面试官:你简历中写用过docker,能说说容器和镜像的区别吗?

  • 如何为linux服务器配置DNS解析?

  • 再见微服务

  • 46个经典Linux面试题!

  • 分布式下必备神器之分布式锁

  • 千万级负载神器 LVS、Nginx及HAProxy工作原理大图详解!

  • 你还在从零搭建项目 ?

喜欢就点个"在看"呗^_^

ELK教程3:logstash的部署、SpringBoot整合ELK+Filebeat相关推荐

  1. SpringBoot整合ELK日志收集

    ELK简介 ELK是Elasticsearch+Logstash+Kibana简称 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来. ...

  2. 项目实战|史上最简单的springboot 整合elk教程,实现日志收集(带视频哦)

    配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...

  3. SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb

    这篇文章主要介绍springboot如何整合mongodb. 准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-start ...

  4. Spring Boot教程(三十四)整合elk(1)

    2019独角兽企业重金招聘Python工程师标准>>> elk 简介 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机 ...

  5. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  6. Springboot/Springcloud整合ELK平台,(Filebeat方式)日志采集及管理(Elasticsearch+Logstash+Filebeat+Kibana)

    前言 最近在搞一套完整的云原生框架,详见 spring-cloud-alibaba专栏,目前已经整合的log4j2,但是想要一套可以实时观察日志的系统,就想到了ELK,然后上一篇文章是socket异步 ...

  7. ELK教程1:ElasticSearch集群的部署

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 在分布式系统中,应用数量众多,应用调用链复杂,常常使用ELK作为日志收集.分析和展示的组件.本 ...

  8. SpringBoot整合Guacamole

    前言 本文主要介绍的是SpringBoot如何整合Guacamole在浏览器是远程桌面的访问. Guacamole 介绍 Apache Guacamole 是一个无客户端远程桌面网关.它支持标准协议, ...

  9. ELK企业级日志分析系统部署

    ELK企业级日志分析系统部署 文章目录 ELK企业级日志分析系统部署 1.什么是ELK日志分析系统 2.ELK日志分析系统诞生的原因 3.ELK日志分析系统的核心开源工具 3.1Logstash解析 ...

最新文章

  1. MapReduce DataJoin 链接多数据源
  2. Informatica ETL workflow 定时运行功能介绍 scheduler
  3. 数据库系统概论:第四章 数据库安全性
  4. mysql 5.6.14安装_MySQL5.6.14下载、安装及配置安装图文教程
  5. 【译】ES2018 新特性: 正则表达式的 s (dotAll) 标志
  6. 多么痛的领悟--写在领英股票被腰斩之后
  7. python第三方库安装的各种方法(全网最全,最简单易懂)
  8. 提的最多的数据库“索引”,先来简单了解一下
  9. js中eval 详解
  10. 2010年的最后一天,我又辞工(日记)
  11. 90后男屌丝如何让淘宝客日赚10万滴
  12. java桌球小游戏使用图片_java桌球小游戏 小球任意角度碰撞
  13. vue怎么制作甘特图——dhtmlx-gantt
  14. Mysql将分组后产生的同一分组的值连接起来
  15. 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码
  16. miui编译第三方卡米 对应的修改步骤位置
  17. jieba.cut 和jieba.posseg
  18. 6. Z 字形变换(给定字符串,画N后逐行拼接成新字符串)
  19. 初探MUI制作微信APP页面(一)
  20. COSCon'20 Track J 女性半边天分论坛介绍

热门文章

  1. HDU 排名(简单题)
  2. 万航单位换算器 V1.0 绿色版
  3. (拆点+最小路径覆盖) bzoj 2150
  4. sqljdbc.jar 和 sqljdbc4.jar
  5. Struts2的工作原理
  6. 解决phpmyadmin3.4空密码登录被禁止登陆的方法
  7. 刻意练习:LeetCode实战 -- Task14. 最长公共前缀
  8. Matlab编程与数据类型 -- 开关语句switch/end
  9. 如何用 OpenGL 绘制雪花?
  10. “数学不行,啥都干不好!”骨灰级程序员:这比努力重要1000倍