首页 > 其他分享 >如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器

如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器

时间:2023-01-08 14:31:39浏览次数:58  
标签:ELK filebeat stdout log4j org 服务器 appender ###

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

需要先给配置文件加权限

chown root:root  filebeat.yml 

然后启动

sudo ./filebeat -e -c filebeat.yml & 

3.4、 配置远程的logstash并启动

log4j_filebeat.conf

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 } }

启动:

./bin/logstash -f config/log4j_fliebeat.conf &

3.5、 Java客户端日志配置和程序

log4j.properties

### 设置###log4j.rootLogger = debug,stdout,D### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.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看到结果如下:

如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器_apache

在kibana看到结果如下:

如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器_服务器_02

 同理,我们使用另一个端口启动另外一个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 } }

启动:

./bin/logstash -f config/log4j_fliebeat2.conf &

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.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.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.DailyRollingFileAppenderlog4j.appender.D.File = /Users/KG/Documents/logs/t-yxc-finance/app.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.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("另外一台服务器,最新的日志!!"); }}

运行结果如下:

如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器_elasticsearch_03

如何利用filebeat把不同服务器上的log4j日志传输到同一台ELK服务器_apache_04

标签:ELK,filebeat,stdout,log4j,org,服务器,appender,###
From: https://blog.51cto.com/u_15867943/5996693

相关文章

  • Java Netty框架自建DNS代理服务器教程
    前言DNS协议作为着互联网客户端-服务器通信模式得第一关,在当下每天都有成千上亿上网记录产生得当今社会,其重要性自然不可言喻。在国内比较有名得DNS服务器有电信得114.11......
  • 构建samba共享文件服务器​
    拓扑图:​推荐步骤:​创建组名字benet,创建bob、tom、alice、marry将用户添加到benet组,安装samba服务器,bob、tom、alice为普通账户marry为管理员对所有目录有读取和写入权限在/......
  • 重学ElasticSearch (ES) :ELK搭建SpringBoot日志实时分析系统
    一、概述在一个大型的分布式架构的项目里,不同的服务模块部署在不同的服务器上,如果想要定位问题,可能需要去不同的服务器上查看不同服务的日志。那么,ELK可以很方便的把日志集......
  • Winserver 搭建RustDesk服务器
    【1】安装NodeJs软件版本node-v16.14.2-x86node.js官网:Node.js(nodejs.org)【2】安装PM2(1)打开cmd依次输入一下三行命令npminstall-gpm2npminstallpm2-windows-......
  • 三丰 免费云服务器搭建个人网站
    一、前言最近空余时间比较多,作为一个前端,也想做个个人项目,但是无奈一直以来没有自己的服务器,之前在github上发布过个人静态页面,但是无法作为后端服务,最近找了很久,发现......
  • WebRTC - STUN/TURN服务器的搭建(使用coturn)
    在进行WebRTC通信时,节点间会按照如下顺序获取对方的地址:1)如果双端在同一个内网,直接用内网IP通信;2)通过STUN服务器,为双端构造可以直接访问的地址,打造一条可以穿透NAT的通路......
  • .net core Kestrel宿主服务器自定义监听端口配置
    .netcoreKestrel宿主服务器自定义监听端口配置http://t.zoukankan.com/williamwsj-p-9645095.html.netcoreKestrel宿主服务器自定义监听端口配置在.netcore的w......
  • 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服
    在网上搜了很多方法,一一排除过后,如下解决:将网络配置中的协议1.TCP/IP协议改为“已启用”2.确认TCP/IP“属性”中IP和端口号是否为本机的Ip及1433(我就是因为电脑原来的......
  • 隐藏Tomcat异常页面中的版本信息,Tomcat服务器版本号泄露
    在Tomcat报错页面中,显示ApacheTomcat/8.5.xx相关版本号等信息,是不安全的。这会被黑客获取到,利用该版本的其他漏洞对服务器进行异常操作,所以需要隐藏掉。需要修改SERVERINFO......
  • 小试三丰云免费云服务器
    2023-01-07使用心得:使用宝塔界面,安装了Linux,写了两个简单的node程序,让pm2跑起来了,感觉还挺简单,做点简单的测试主要是有公网ip,可以有了固定的空间,服务器的访问速度......