智能运维(AiOps)是在自动化运维(DevOps)基础之上发展起来的,它可以对自动化运维在应用层面进行系统日志及应用日志进行日志收集、分析、展示等全方位的日志管理解决方案。
下面就我们经常使用的如下方案进行分析,以便在实际工作中可以选择属于适合自己企业的日志管理解决方案,为企业运营提供良好的日志数据服务。
l ELK
ELK是ElasticSearch,Logstash,Kibana的缩写,分别提供搜索,数据接入和可视化功能,构成了Elastic的应用技术栈。
ü Elastic介绍
ElasticSearch是一个基于Lucene的开源搜索服务。它提供了一个基于RESTful web接口的分布式多用户能力的全文搜索引擎。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
ElasticSearch提供REST API来进行集群的管理,监控,健康检查。
Elasticsearch是一个准实时性的搜索平台,从数据索引到数据可以被搜索存在一定的时延。
ü Logstash介绍
Logstash用jruby实现,类似一个数据管道,把输入的数据进行处理,变形,过滤,然后输出到其它地方。
Logstash设计了自己的DSL,包括有区域,注释,数据类型(布尔值,字符串,数值,数组,哈希),条件判断,字段引用等。
Logstash的数据管道包含三个步骤,Input,Filter和Output,每一步都可以通过plugin来扩展。另外Input和Output还支持配置Codecs,完成对输入输出数据的编解码工作。
Logstash支持的常见的Input包含File,syslog,beats等。Filter中主要完成数据的格式化处理,可以增删改字段,加标签等等。
Logstash中Output插件不仅仅支持ElasticSearch,还可以和许多其它软件集成和目标,Output可以是文件,数据库,S3,Hadoop等等。
logstash进程在实际运用中,会被分为两个不同的角色。运行在应用服务器上的,尽量减轻运行压力,只做读取和转发,这个角色叫做 shipper;运行在独立服务器上,完成数据解析处理,负责写入 Elasticsearch 的角色,叫 indexer。
logstash 作为无状态的软件,配合消息队列系统,可以很轻松的做到线性扩展
ü Kibana介绍
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看、交互存储在Elasticsearch索引中的数据。使用Kibana可以通过各种图表进行高级数据分析及展示。
l Splunk
Splunk是大数据领域第一家在纳斯达克上市公司。
Splunk提供一个机器数据的搜索引擎。使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备(物理、虚拟机和云平台)生成的快速移动型计算机数据 。
Splunk 处理数据速度快,可让您在几分钟内找到问题并解决问题,且其能关联并分析跨越多个系统的复杂事件。以便获取更多运营可见性预测及业务智能化提醒。