1、可以专门注定灵活、高效的数据分析语句,将日志内容进行细粒度的数据分析。也完全可以利用日志建立可编程的日志实时搜索平台,针对特定的关键字进行检索。
2、不安装agent,可以通过特定的协议如snmp等,在监控平台上获取机器数据和通信数据,但是针对应用和数据库等的日志信息,我想到的是通过定时+shell的方式进行抓取。
收起1、大日志文件或小日志文件可以使用splunk进行分析和监控,对按规则提出数据可以生成非常漂亮的报表和展现形式。特别适合于HDFS海量小文件。如果是大日志其实也可以考虑对日志进行切片,可以提高大日志文件的读写效率。
2、远程抓取日志,要么遵循通用的snmp、SSH、telnet等协议,要么采用如sync、通用转发器等轻agent进行。其实不用担心agent会出问题,都是轻量级的工具。一般不会造成系统资源消耗太大。
收起不安装agent和实时需求之间是有一定权衡取舍的。
比如说scp、rsync这些命令,其实也算是一种agent(sshd和rsyncd)。用Perl之类服务器自带脚本语言写一个daemon实时传日志,这个daemon也是一种agent。所以在有实时需求的时候,关键还得看agent是不是真的耗用系统资源了。所以很多地方会选择日志输出给rsyslog再转发出去,就是因为反正你不用,rsyslogd这个agent也一定会在系统上跑的。
除此之外,还有一种方式,让应用直接给远端打日志过去。log4j是有socketappender的……这算是可以圆满达到目的,但是这就必须联系研发人员一块了。
收起开源工具有很多,如果不允许用开源工具,可以按照这个样子去开发。
1、logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。
2、Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面。
3、RabbitMQ是一个受欢迎的消息代理,通常用于应用程序之间或者程序的不同组件之间通过消息来进行集成。本文简单介绍了如何使用 RabbitMQ,假定你已经配置好了rabbitmq服务器。
4、Apache Kafka是由Apache软件基金会开发的一个开源消息系统项目,由Scala写成。Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
等等,都可以用已log收集,检索。还有一些简单的工具如sync等也可以实现简单的log收集。
收起