logstash的部署和使用

本文详细介绍了如何使用Logstash收集由Log4j产生的日志,并将其存储至Elasticsearch中。步骤包括下载Logstash、修改配置文件、启动Logstash服务、配置Log4j以发送日志至Logstash,以及通过Java代码进行日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下载logstash

https://www.elastic.co/downloads/elasticsearch

2、修改配置

   cd config
   vim log4j_es.conf
   
    input {
        log4j {
            host => "127.0.0.1"
            port => 4560
        }
    }
    output {
        stdout {
          codec => rubydebug
        }
        elasticsearch{
            hosts => ["localhost:9200"]
            index => "log4j-%{+YYYY.MM.dd}"
            document_type => "log4j_type"
        }
    }

’3、启动logstash

./bin/logstash -f config/log4j_es.conf

4. Log4j记录日志到Logstash

4-1) 新建maven项目

pom中的关键dependency配置如下:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

4-2) log4j.properties(放在resources文件夹下)

 

### 设置###
log4j.rootLogger = debug,stdout,D,E,logstash

### 输出信息到控制抬 ###
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/elk/debug.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

### 输出ERROR 级别以上的日志到=/Users/bee/Documents/elk/log4j/error.log  ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =/Users/KG/Documents/logs/elk/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

#输出日志到logstash
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.RemoteHost=127.0.0.1
log4j.appender.logstash.port=4560
log4j.appender.logstash.ReconnectionDelay=60000
log4j.appender.logstash.LocationInfo=true

4-3) Java代码(ElkLog4jTest.java):

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("This is a debug message!");
        logger.info("This is info message!");
        logger.warn("This is a warn message!");
        logger.error("This is error message!");

        try{
            System.out.println(5/0);
        }catch(Exception e){
            logger.error(e);
        }
    }
}

 5、展示效果

### 部署Logstash教程及配置指南 #### Logstash简介 Logstash 是一种开源的数据处理管道工具,能够实时地从多种数据源采集数据并将其传输到指定的目标存储位置。它通常被用来构建 ELK(Elasticsearch, Logstash, Kibana)技术栈中的日志管理解决方案。 #### 安装Logstash 要成功部署 Logstash,需遵循官方文档或社区资源提供的安装指南[^1]。以下是常见的安装流程: 1. **下载与解压** 访问 Elastic 的官方网站或者镜像站点获取最新版本的 Logstash 压缩包,并将其解压缩至目标目录。 2. **环境准备** 确保 Java 运行时已正确安装,因为 Logstash 依赖于 JVM 来执行其核心功能。可以通过命令 `java -version` 检查当前系统的 JDK 或 JRE 版本是否满足最低要求。 3. **验证安装** 执行以下命令测试 Logstash 是否正常工作: ```bash ./bin/logstash -e 'input { stdin {} } output { stdout {} }' ``` #### 配置Logstash Logstash 支持两类主要的配置文件形式:pipeline 全局设置[^2]。 - **Pipeline 配置** Pipeline 文件定义了输入(input)、过滤(filter)以及输出(output)三个阶段的具体实现逻辑。例如,在一个典型的日志解析场景下可以这样编写: ```plaintext input { file { path => "/var/log/*.log" start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => ["http://localhost:9200"] } } ``` 上述脚本会读取 `/var/log/` 下的所有 `.log` 文件内容经过 Grok 插件提取字段后再发送给本地运行的 Elasticsearch 实例保存[^3]。 - **系统级参数调整** 对应的是位于主程序根路径下的 settings.yml 文档,这里允许管理员修改诸如插件加载方式、线程数限制等高级选项。 #### 启动服务并与其他组件联动 当完成上述准备工作之后就可以正式开启服务进程了。如果希望同时启用 Filebeat 提供的日志转发能力,则按照如下方法操作即可[^4]: ```bash sudo ./filebeat -e -c ./filebeat.yml -d publish ./bin/logstash -f ./logstash.conf --config.reload.automatic ``` 另外值得注意的一个第三方扩展库——logstash-modsecurity 可能会对特定需求用户提供帮助[^5]。该项目专注于分析 ModSecurity Web 应用防火墙产生的审计记录,有兴趣者可前往 GitCode 页面查看详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值