日常事件日志监控工具推荐

Windows事件日志文件可以说是一个信息宝库,包含了服务器性能和操作等重要信息。但是定期梳理是一件非常乏味的工作,尤其是当你的数据中心里有不少服务器需要维护的时候。

Windows
Server将事件日志进行了分类,包括应用程序、安全和系统类,默认情况下,每台服务器的事件日志文件保存在本地。

市场上有大量的事件日志监控工具,包括免费的和付费的。你要根据自己的需求进行选择。不管选择哪种工具,肯定是希望能够尽可能多地清理和纠正日志文件中的错误。一款合适的,用来进行Windows服务器故障排除和维护的工具是非常有价值的。

这里是一些可供选择的日志文件监控工具,但由于产品规模不尽相同,这里仅作参考。

免费与付费日志监控工具

免费低端产品,可以订阅微软的Windows Event
Viewer。你可以将从多台计算机那里搜集到的事件日志文件放到一个中心点以便阅读,你可以应用过滤器,如“错误和警告”。你可以每天检查文件,纠正错误。因为与日志监控一样简单,所以你可能会错过实时的错误报警,过于简单的结果可能会隐藏或者忽略掉某些错误。

Syslog和ELK
stack也是免费的工具,但是功能更多更复杂。Syslog是一种工业标准的协议,可用来记录设备的日志。有多种变体,包括builds和add-ons。ELK
stack工具包含Elasticsearch、Logstash和Kibana三个开源软件。这些工具都可以搜集和整理来自Windows
Event
Viewer等工具的日志。你可以从监控事件日志开始,然后收集IIS、SQL等应用日志。

在支付端,两个受欢迎的工具是SolarWinds Log & Event
Manager和Splunk。这些产品都位于高端市场,不仅仅是即插即用。

支付或企业版本的事件日志监控工具提供了大量的各种各样的日志信息和提醒,包括Event
Viewer日志。但因为过于复杂,通常由一个小型IT团队来维护。

还可以寻找供应商,如Splunk和SolarWinds,它们会为你提供合适的工具,为你的服务器环境提供帮助。

Windows事件日志文件可以说是一个信息宝库,包含了服务器性能和操作等重要信息。但是定期梳理是一件非常乏…

SolarWinds Log&Event
Manager是Windows的日志分析工具,可提供集中的日志监控体验。该平台提供事件时间检测,帮助用户快速检测问题所在。由SolarWinds
Log&Event Manager处理的数据在传输过程中会进行加密,未经授权无法读取。

结束语

除ELK套件以外,业界关于运维监控产品还有很多,如Splunk、Nagios等。

Splunk是在语句里生成图表。而ELK则是用户在Kibana Web
Portal上鼠标选择的方式来点出来,相比Splunk来说要简单得多,用户不用记住那些语法即可绘制多种Chart。易用性有很大提高。另外,Splunk属于入库后对内容的即使处理,比如rex函数等等,而ES是尽量在入库前,即在Logstash端已经将数据源实时过滤、分析。提高了数据处理能力。最重要一点,ELK是免费的,Splunk则需要昂贵的费用。

Nagios最大的特点是其强大的管理中心,但看不到历史数据,很难追查故障原因,而且配置复杂,这些恰恰是ELK组件的优势所在。

本文所述案例和架构来自于IBM
Platform团队在使用ELK套件中的实战经历和工作总结,IBM
Platform冲出了ELK套件仅对日志搜集的约束,除Logstash所支持input
plugin外,还充分利用了Elasticsearch本身所支持多种数据源输入,从而增强了数据源的输入条件,提高了系统监控范围,大大提高了ELK的扩展性和实用性。

ELK本身对POWER系统,还有IBM JAVA支持有一定局限性,不过IBM
Platform团队已经将这些问题一一解决,使之可以完美地集成于多个平台。除此之外,IBM
Platform将ELK和IBM Platform Cluster Manager、IBM Platform
EGO集成于一体。用于ELK自动部署和管理,有效提高了ELK的部署和管理效率。并对IBM
Platform Converge、IBM Platform
Conductor(包括Spark)提供监控和Dashboard等功能。

 

点击链接加入群【.NET大型网站架构】433685124QQ群

如果你正在寻找易于使用的Windows日志管理解决方案,那么EventTracker值得试试。LogDNA

ELK多种架构及优劣

既然要谈ELK在大数据运维系统中的应用,那么ELK架构就不得不谈。本章节引出四种笔者曾经用过的ELK架构,并讨论各种架构所适合的场景和优劣供大家参考。

先大致介绍ELK组件。ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。后文的四种基本架构中将逐一介绍应用到的其它套件。

  • Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA
    API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache
    Lucene搜索引擎库之上。

  • Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括
    syslog、消息传递(例如
    RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

  • Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在
    Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。

我们先谈谈第一种ELK架构,如图1,这是最简单的一种ELK架构方式。优点是搭建简单,易于上手。缺点是Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。建议供学习者和小规模集群使用。

此架构首先由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana
Web
Portal方便的对日志查询,并根据数据生成报表(详细过程和配置在此省略)。

图片 1

图1 ELK架构一

 

第二种架构(图2)引入了消息队列机制,位于各个节点上的Logstash
Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash
server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

图片 2

图2 ELK架构二

 

这种架构适合于较大集群的解决方案,但由于Logstash中心节点和Elasticsearch的负荷会比较重,可将他们配置为集群模式,以分担负荷,这种架构的优点在于引入了消息队列机制,均衡了网络传输,从而降低了网络闭塞尤其是丢失数据的可能性,但依然存在Logstash占用系统资源过多的问题。

第三种架构(图3)引入了Logstash-forwarder。首先,Logstash-forwarder将日志数据搜集并统一发送给主节点上的Logstash,Logstash分析、过滤日志数据后发送至Elasticsearch存储,并由Kibana最终将数据呈现给用户。

图片 3

图3 ELK架构三

 

这种架构解决了Logstash在各计算机点上占用系统资源较高的问题。经测试得出,相比Logstash,Logstash-forwarder所占用系统CPU和MEM几乎可以忽略不计。另外,Logstash-forwarder和Logstash间的通信是通过SSL加密传输,起到了安全保障。如果是较大集群,用户亦可以如结构三那样配置logstash集群和Elasticsearch集群,引入High
Available机制,提高数据传输和存储安全。更主要的配置多个Elasticsearch服务,有助于搜索和数据存储效率。但在此种架构下发现Logstash-forwarder和Logstash间通信必须由SSL加密传输,这样便有了一定的限制性。

第四种架构(图4),将Logstash-forwarder替换为Beats。经测试,Beats满负荷状态所耗系统资源和Logstash-forwarder相当,但其扩展性和灵活性有很大提高。Beats
platform目前包含有Packagebeat、Topbeat和Filebeat三个产品,均为Apache 2.0
License。同时用户可根据需要进行二次开发。

图片 4

图4 ELK架构四

 

这种架构原理基于第三种架构,但是更灵活,扩展性更强。同时可配置Logstash
和Elasticsearch 集群用于支持大集群系统的运维日志数据监控和查询。

不管采用上面哪种ELK架构,都包含了其核心组件,即:Logstash、Elasticsearch
和Kibana。当然这三个组件并非不能被替换,只是就性能和功能性而言,这三个组件已经配合的很完美,是密不可分的。各系统运维中究竟该采用哪种架构,可根据现实情况和架构优劣而定。

用户还可以定义自己的警报。提出警报后,可以创建故障单以记录问题,直到问题得到解决。还有一些预定报告形式的文档,可以使用它们查看有关网络状态的定期更新。报告符合PCI-DSS,SOX等。

ELK实战举例

ELK实战举例一,通过ELK组件对Spark作业运行状态监控,搜集Spark环境下运行的日志。经过筛选、过滤并存储可用信息,从而完成对Spark作业运行和完成状态进行监控,实时掌握集群状态,了解作业完成情况,并生成报表,方便运维人员监控和查看。

数据来源可以是各式各样的日志,Logstash配置文件有三个主要模块:input()输入或者说收集数据,定义数据来源;filter()对数据进行过滤,分析等操作;output()输出。input
plugin目前支持将近50种,如下表所示:

Beats couchdb_changes Xmpp eventlog exec s3 file ganglia gelf
Github Heartbeat Heroku http Sqs Irc imap jdbc JMX
lumberjack varnishlog Pipe snmptrap generator Rss rackspace RabbitMQ Redis
Sqlite Elasticsearch http_poller Stomp syslog TCP Twitter unix UDP
websocket drupal_dblog Zenoss ZeroMQ Graphite Log4j stdin wmi relp
Kafka puppet_facter Meetup            

数据源搜集到后,然后通过filter过滤形成固定的数据格式。目前支持过滤的类JSON、grep、grok、geoip等,最后output到数据库,比如Redis、Kafka或者直接传送给Elasticsearch。当数据被存储于Elasticsearch之后,用户可以使用Elasticsearch所提供API来检索信息数据了,如通过REST
API执行CURL
GET请求搜索指定数据。用户也可以使用Kibana进行可视化的数据浏览。另外Kibana有时间过滤功能,运维人员可对某一时间段内数据查询并查看报表,方便快捷。

图片 5

图6 ELK对Spark Task 监控

 

ELK实战举例二,通过ELK组件对系统资源状态监控,如图7、图8所示,是笔者前段时间使用ELK组件为集群提供日志查询和系统资源监控的例子。通过各类日志搜集,分析,过滤,存储并通过Kibana展现给用户,供用户实时监控系统资源、节点状态、磁盘、CPU、MEM,以及错误、警告信息等。

图片 6

图7 ELK对系统状态监控

 

图片 7

图8 ELK对系统资源情况监控

 

ELK实战举例三,通过ELK组件对系统负载状态监控,如图9所示。

图片 8

图9 ELK对workload监控

 

ELK实战举例四,通过ELK组件对系统日志管理和故障排查,如图10所示。用户可根据故障发生时间段集中查询相关日志,可通过搜索、筛选、过滤等功能,快速定位问题,从而排查故障。另外,通过对各个应用组件的日志过滤,可快速列举出各个应用对应节点上的Error或Warning日志,从而对故障排查或者对发现产品bug提供快捷途径。

图片 9

图10 ELK 对日志搜索,查询

 

XpoLog的价格取决于你需要的用户数,保留数和数据量。Basic版本是免费的,每天支持1GB,5天数据保留。ManageEngine
EventLog Analyzer

ELK在大数据运维系统中的应用

在海量日志系统的运维中,以下几个方面是必不可少的:

  1. 分布式日志数据集中式查询和管理

  2. 系统监控,包含系统硬件和应用各个组件的监控

  3. 故障排查

  4. 安全信息和事件管理

  5. 报表功能

ELK组件各个功能模块如图5所示,它运行于分布式系统之上,通过搜集、过滤、传输、储存,对海量系统和组件日志进行集中管理和准实时搜索、分析,使用搜索、监控、事件消息和报表等简单易用的功能,帮助运维人员进行线上业务的准实时监控、业务异常时及时定位原因、排除故障、程序研发时跟踪分析Bug、业务趋势分析、安全与合规审计,深度挖掘日志的大数据价值。同时Elasticsearch提供多种API(REST
JAVA PYTHON等API)供用户扩展开发,以满足其不同需求。

图片 10

图5 ELK在运维系统组件中应用图示

 

汇总ELK组件在大数据运维系统中,主要可解决的问题如下:

  1. 日志查询,问题排查,上线检查

  2. 服务器监控,应用监控,错误报警,Bug管理

  3. 性能分析,用户行为分析,安全漏洞分析,时间管理

综上,ELK组件在大数据运维中的应用是一套必不可少的且方便、易用的开源解决方案。

图片 11

总体而言,SolarWinds Log&Event
Manager是基于威胁响应能力和法规遵从性的绝佳选择。它提供一个30天的免费试用。PRTG
Network Monitor

图片 12

图片 13

PRTG Network
Monitor是一个网络监控平台,包括Windows事件日志传感器和Syslog接收传感器。Windows事件日志传感器监控Windows系统和应用日志文件,并显示日志消息的速率。该系统日志接收传感器记录的由设备在网络中发送的每秒系统日志文件的数量和过滤。过滤器是可自定义的,因此可以确定哪些活动将触发警报。

图片 14

还有智能警报使用机器学习来检测异常日志模式和错误。警报可以通过Slack和PagerDuty等工具发送。

Papertrail是Windows的日志分析器,可自动扫描日志数据。扫描日志数据时,可以选择希望扫描结果显示的信息。例如,可以选择扫描是否包含IP地址,电子邮件地址,
GUID/UUID,HTTPURL,域,主机,文件名和引用文本。

LogDNA的一个有趣的事情是LogDNA代理和CLI接口是开源的。实际上,这允许你自定义日志管理体验。但是,如果不想这样做,标准用户界面具有足够多的功能来帮助你有效地监控系统日志。

在日志分析工具中,以图形将性能的相关数据显示到仪表盘。以这种集中格式,读取性能数据要比尝试直接读取日志文件作为文本文件容易得多。SolarWinds
Log & Event Manager

为了进一步分析,可以将日志结果(规范化日志或特定日志文件)转发给团队的其他成员或转化为报告。SolarWinds
Log&Event Manager提供的报告符合HIPAA,PCI
DSS,SOX,DISA和STIG。报告功能的范围使该工具非常适合需要高度合规性的大型企业。

图片 15

Papertrail易于部署的日志分析器的理想选择。它提供免费的计划,允许你每月监控多达100
MB的数据。Splunk

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注