ELK菜鸟手记 (四) - 利用filebeat和不同端口把不同服务器上的log4j日志传输到同一台ELK服务器
1. 问题描述
我们需要将不同服务器(如Web Server)上的log4j日志传输到同一台ELK服务器,介于公司服务器资源紧张(^_^)
2. 我们需要用到filebeat
什么是filebeat?
filebeat被用来ship events,即把一台服务器上的文件日志通过socket的方式,传输到远程的ELK。
可以传输到logstash,也可以直接传输到elasticsearch。
3. 我们这里讲解如何传输到远程的logstash,然后再由elasticsearch讲数据传输到kibana展示
3-1) 首先你要在你的本地测试机器上安装filebeat
以下是下载路径:
https://www.elastic.co/downloads/beats/filebeat
3-2) 其次你应该配置你的filebeat.xml
filebeat.prospectors: - input_type: log # Paths that should be crawled and fetched. Glob based paths. paths: - /Users/KG/Documents/logs/t-server/*.log #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["xx.xx.xx.xx:5000"]
3-3) 启动filebeat
需要先给配置文件加权限
input{ beats { port => 5000 } } output{ stdout{ codec => rubydebug } elasticsearch { hosts => "localhost:9200" index => "t-server-%{+YYYY.MM.dd}" document_type => "log4j_type" user => your-username password => your-password } }
启动:
3-5) Java客户端日志配置和程序
log4j.properties
### 设置### log4j.rootLogger = debug,stdout,D ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=/Users/bee/Documents/elk/log4j/debug.log### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = /Users/KG/Documents/logs/t-server/app.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
Java API
package org.genesis.arena.elk; import org.apache.log4j.Logger; /** * Created by KG on 17/3/27. */ public class ElkLog4jTest { private static final Logger logger = Logger.getLogger(ElkLog4jTest.class); public static void main(String[] args) throws Exception { logger.debug("最新的日志!!"); } }
在logstash看到结果如下:
在kibana看到结果如下:
同理,我们使用另一个端口启动另外一个logstash后台进程
logstash配置文件如下:
log4j_fliebeat2.conf
input{ beats { port => 5001 } } output{ stdout{ codec => rubydebug } elasticsearch { hosts => "localhost:9200" index => "t-yxc-finance-%{+YYYY.MM.dd}" document_type => "log4j_type" user => your-username password => your-password } }
启动:
filebeat.yml
filebeat.prospectors: # Each - is a prospector. Most options can be set at the prospector level, so # you can use different prospectors for various configurations. # Below are the prospector specific configurations. - input_type: log # Paths that should be crawled and fetched. Glob based paths. paths: - /Users/KG/Documents/logs/t-yxc-finance/*.log #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["xx.xx.xx.xx:5001"]
客户端配置文件和代码:
### 设置### log4j.rootLogger = debug,stdout,D ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=/Users/bee/Documents/elk/log4j/debug.log### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = /Users/KG/Documents/logs/t-yxc-finance/app.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
package org.genesis.arena.elk; import org.apache.log4j.Logger; /** * Created by KG on 17/3/27. */ public class ElkLog4jTest { private static final Logger logger = Logger.getLogger(ElkLog4jTest.class); public static void main(String[] args) throws Exception { logger.debug("另外一台服务器,最新的日志!!"); } }
运行结果如下:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
什么是HADOOP、产生背景、在大数据、云计算中的位置和关系、国内外HADOOP应用案例介绍、就业方向、生态圈以及各组成部分的简介(学习资料...
1. HADOOP背景介绍 1. 1.1 什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组件有 A.HDFS(分布式文件系统) B.YARN(运算资源调度系统) C.MAPREDUCE(分布式运算编程框架) 4.广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈 2. 1.2 HADOOP产生背景 1.HADOOP最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。 2.2003年、2004年谷歌发表的两篇论文为该问题提供了可行的解决方案。 ——分布式文件系统(GFS),可用于处理海量网页的存储 ——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。 3.Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOO...
- 下一篇
通过源码的方式编译hadoop的安装文件
Hadoop2.4.0重新编译64位本地库原创作者:大鹏鸟时间:2014-07-28环境:虚拟机VirtualBox,操作系统64位CentOS6.4下载重新编译需要的软件包apache-ant-1.9.4-bin.tar.gzfindbugs-3.0.0.tar.gzprotobuf-2.5.0.tar.gzapache-maven-3.0.5-bin.tar.gz下载hadoop2.4.0的源码包hadoop-2.4.0-src.tar.gz压解源码包[grid@hadoopMaster01~]$tar-zxvfhadoop-2.4.0-src.tar.gz安装编译所需软件安装MAVEN压解apache-maven-3.0.5-bin.tar.gz到/opt/目录[root@hadoopMaster01grid]#tar-zxvfapache-maven-3.0.5-bin.tar.gz-C/opt/修改/etc/profile配置,增加MAVEN环境配置M2_HOME PATH保存后使用source/etc/profile使修改配置即时生效[root@hadoopMaster01...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程