上篇文章中的架构图中提到了LogStash的Shipper和Indexer。
LogStash自身没有什么角色,只是根据不同的功能、不同的配置给出不同的称呼而已。
Shipper主要是安装在需要收集的日志服务器上,其input为实际的日志源,output一般来说都是redis(你要是不想用redis做缓存也可以用其他的)
Indexer则是单独部署(可以集群),其input是redis(shipper的output),output则是elasticSearch搜索引擎。
logstash虽然是ruby语言写的,但是需要运行在JVM上,说白了logstash仍然是一个java进程,需要占用JVM内存。
由于logstash shipper是需要安装在日志所在的服务器上的。
如果日志所在的服务器不能安装JAVA(或者人家不想、不允许安装),又或者说日志所在的服务器软件本身对JVM的需求比较高,不再允许其他java进程来分享JVM内存,那怎么办呢?
官网上给出了很多其他的工具来shipper log。
其中介绍的最多的是lumberjack(现在叫logstash-forward),加密传输,但是不能支持redis做缓存,并且input好像只支持file类型的。