ELK教程3:logstash的部署、SpringBoot整合ELK+Filebeat
本篇文章主要讲解如下安装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相关推荐
- SpringBoot整合ELK日志收集
ELK简介 ELK是Elasticsearch+Logstash+Kibana简称 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来. ...
- 项目实战|史上最简单的springboot 整合elk教程,实现日志收集(带视频哦)
配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...
- SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
这篇文章主要介绍springboot如何整合mongodb. 准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-start ...
- Spring Boot教程(三十四)整合elk(1)
2019独角兽企业重金招聘Python工程师标准>>> elk 简介 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机 ...
- SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台
转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...
- Springboot/Springcloud整合ELK平台,(Filebeat方式)日志采集及管理(Elasticsearch+Logstash+Filebeat+Kibana)
前言 最近在搞一套完整的云原生框架,详见 spring-cloud-alibaba专栏,目前已经整合的log4j2,但是想要一套可以实时观察日志的系统,就想到了ELK,然后上一篇文章是socket异步 ...
- ELK教程1:ElasticSearch集群的部署
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 在分布式系统中,应用数量众多,应用调用链复杂,常常使用ELK作为日志收集.分析和展示的组件.本 ...
- SpringBoot整合Guacamole
前言 本文主要介绍的是SpringBoot如何整合Guacamole在浏览器是远程桌面的访问. Guacamole 介绍 Apache Guacamole 是一个无客户端远程桌面网关.它支持标准协议, ...
- ELK企业级日志分析系统部署
ELK企业级日志分析系统部署 文章目录 ELK企业级日志分析系统部署 1.什么是ELK日志分析系统 2.ELK日志分析系统诞生的原因 3.ELK日志分析系统的核心开源工具 3.1Logstash解析 ...
最新文章
- MapReduce DataJoin 链接多数据源
- Informatica ETL workflow 定时运行功能介绍 scheduler
- 数据库系统概论:第四章 数据库安全性
- mysql 5.6.14安装_MySQL5.6.14下载、安装及配置安装图文教程
- 【译】ES2018 新特性: 正则表达式的 s (dotAll) 标志
- 多么痛的领悟--写在领英股票被腰斩之后
- python第三方库安装的各种方法(全网最全,最简单易懂)
- 提的最多的数据库“索引”,先来简单了解一下
- js中eval 详解
- 2010年的最后一天,我又辞工(日记)
- 90后男屌丝如何让淘宝客日赚10万滴
- java桌球小游戏使用图片_java桌球小游戏 小球任意角度碰撞
- vue怎么制作甘特图——dhtmlx-gantt
- Mysql将分组后产生的同一分组的值连接起来
- 【路径规划】基于粒子群算法求解带时间窗的车辆路径规划问题VRPTW模型matlab源码
- miui编译第三方卡米 对应的修改步骤位置
- jieba.cut 和jieba.posseg
- 6. Z 字形变换(给定字符串,画N后逐行拼接成新字符串)
- 初探MUI制作微信APP页面(一)
- COSCon'20 Track J 女性半边天分论坛介绍
热门文章
- HDU 排名(简单题)
- 万航单位换算器 V1.0 绿色版
- (拆点+最小路径覆盖) bzoj 2150
- sqljdbc.jar 和 sqljdbc4.jar
- Struts2的工作原理
- 解决phpmyadmin3.4空密码登录被禁止登陆的方法
- 刻意练习:LeetCode实战 -- Task14. 最长公共前缀
- Matlab编程与数据类型 -- 开关语句switch/end
- 如何用 OpenGL 绘制雪花?
- “数学不行,啥都干不好!”骨灰级程序员:这比努力重要1000倍