logstash的应用

今天最后一次课了,下课之后印度哥们过来跟我说,你们讲的东西很有趣啊。然后给了我一个很大的拥抱,这哥们就因为我上次在他饿了一天之后,借了他3刀,所以后来对我非常的好=_=............

 

logstash一个分布式日志收集工具。我们今天的演示内容。

虽然不涉及什么编程操作,但是我觉得熟悉这类工具对从事安全分析的人是非常的重要。

因为安全分为攻击型和防御行。日志分析就是防御型中最重要的部分之一,而日志的收集,管理,将会是非常耗时的一件事,尤其是分布式收集。如果以后去给哪个企业管服务器,难说用得上啊。

logstash就是把各个服务器(a,b,c,d,e,f........)上的日志,汇集到一起。假设是接收服务器是X。X可以把收集结果输出到web UI上或者本地文件,因此管理员只需要在一台机器上进行日志分析就行,而且还是自动收集。这东西另一个imba之处就是它无视日志格式,什么格式它都认。

老师说还有一个好处就是免费。。。。

好吧,说说这东西的配置:

分布式的架构分为发送端和接收端。运行logstash很简单,就是一个jar文件,命令在官网都有。主要是配置文件的设置。

发送端的配置如下:

input {
  file {
    type => "syslog"

    # Wildcards work here :)
    path => [ "/var/log/messages", "/var/log/syslog", "/var/log/*.log" ]
  }

  file {
    type => "apache-access"
    path => "/var/log/apache2/access.log"
  }

  file {
    type => "apache-error"
    path => "/var/log/apache2/error.log"
  }
}

#这里可以写filter

output {
  # Output events to stdout for debugging. Feel free to remove
  # this output if you don't need it.
  stdout { debug => true }

  # Ship events to the amqp fanout exchange named 'rawlogs"
  amqp {
    host => "127.0.0.1"
    exchange_type => "fanout"
    name => "rawlogs"
  }
}

简单的来说,就是提取服务器本地的日志(input),经过过滤器的表达式(我没写)的过滤,然后把日志发送到接收端。

接收端的配置如下:

input {
  amqp {
    # ship logs to the 'rawlogs' fanout queue.
    type => "all"
    host => "127.0.0.1"
    exchange => "rawlogs"
    name => "rawlogs_consumer"
  }
}

output {
  stdout { debug => true }

  #elasticsearch { embedded => true }
  file
 {
 path => "/media/Acer/try.log"
 }
}
接收端不同的地方在于:

不止要运行logstash,还要运行一个amqp服务器,这个服务器才是负责接收消息的,然后转给logstash。如果要输出在web UI,就要运行一个叫elasticsearch的服务器。然后logstash的output指向相应IP就行,默认端口9300.以上的例子只是我本地的演示,把结果输出在本地文件(我的elasticsearch似乎有问题)。我们演示的时候用的是两台机器,配置文件几乎是一样的。。接收端是另外一台机器,那台机器上的elasticsearch就没问题,能出结果。

顺便BS一下logstash的官方,官方的分布式教程有问题(启动接收端的时候没说用配置文件。。),卡了我们一段时间。最后还是给我们自己发现和改出来了。

 

补充一下,一个阿里巴巴工作的朋友读完文档后给了我另外一些提示:

有3种原因会中断发送

内存 硬盘 还有就是发送端发送速度过快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot和Logstash是两个不同的工具,它们可以一起使用来实现日志收集和分析。 Spring Boot是一个用于构建Java应用程序的开发框架,它提供了自动化配置和约定大于配置的原则,使得开发者可以快速搭建和部署应用程序。Spring Boot内置了日志框架,通常使用的是Logback或者Log4j。 Logstash是一个开源的数据收集引擎,它可以从不同的数据源收集日志数据,并将其转发到不同的目标存储或分析系统。Logstash支持多种输入源和输出目标,包括文件、数据库、消息队列等。它还支持对日志数据进行过滤、转换和增强等操作。 要在Spring Boot应用中使用Logstash,你可以通过配置Spring Boot的日志框架来将日志数据发送到Logstash。一种常见的做法是使用Logback作为Spring Boot的日志框架,并配置Logstash的appender来将日志数据发送到Logstash服务器。你可以在Spring Boot的配置文件中设置Logback的配置,包括定义Logstash的目标服务器地址和端口等信息。 以下是一个示例的Logback配置文件,将日志数据发送到Logstash: ```xml <configuration> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>your-logstash-server:port</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <root level="info"> <appender-ref ref="logstash" /> </root> </configuration> ``` 请注意替换`your-logstash-server`和`port`为你实际使用的Logstash服务器地址和端口。 通过这样的配置,你的Spring Boot应用程序的日志将被发送到Logstash服务器,然后你可以使用Logstash进行进一步的日志处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值