搭建ELK日志分析系统详解

日志分析是运维工程师解决系统故障、发现问题的主要手段。日志包含多种类型,包括程序日志、系统日志以及安全日志等。通过对日志的分析,既可以做到未雨绸缪、预防故障的发生,又可以在故障发生时,寻找蛛丝马迹、快速定位故障点。管理员也可以通过体制了解到服务器的软件信息、硬件信息、服务器负荷以及安全性相关的信息,如服务器是否被攻击、磁盘空间是否即将耗尽、内存是否严重不足等。通过这些分析,管理员可以及时采取措施。通常情况下,每台服务器或者客户端都会产生日志,相对而言,服务器日志更加重要,因为它存放着企业的重要数据,同时作为服务器提供者,一旦出现问题,将影响所有客户端的使用。一些大型的机房或者数据中心一般不会给服务器配置显示设备,而逐台远程登录设备查看日志,需要每次系统认证成功后执行,且效率低下。

普遍的做法就是日志的集中管理,既将所有服务器的日志集中发送到到日志服务器中,如开源的Syslog。好处是可以集中查看所有服务器的日志,减轻了工作量,从安全性的角度来看,这种集中日志管理可以有效查询以及跟踪服务器日志被攻击的行为,因为黑客入侵的一瞬间,一些安全日志已经被发送到日志服务器。比如银行的监控系统,窃贼一旦发现监控设备,及时立即破坏这些设备也于事无补,因为监控画面早已经发送至监控服务器器中。采用集中化管理日志,也存在一些不足,如针对日志的分析以及查找将变得十分困难,对日志的逐条检查虽然可以获取有价值的信息,但是工作量十分庞大,像Apache这样的Web网站每天都有可能产生上万条日志。Linux虽然提供了文字编辑类的工具命令(如grep、awk、wc等),可以快速定位已知关键字的日志内容,却无法快速定位未知错误日志。当面对更高要求的查询、排序、统计以及数据分析时,加之庞大的机器数量。这些工具难免力不从心。开源实时日志分析系统——ELK应运而生。

ELK主要由三个开源工具组成:

  • Elasticsearch:是个开源分布实时分析搜索引擎,建立在全文搜索引擎库Apache Lucens基础上,同时隐藏了Apache Luces的复杂性。Elasticsearch将所有的功能打包成一个独立的服务,并提供了一个简单的RESTful API接口,它具有分布式、零配置、自动发现、索引自动分片、索引副本机制、RESTful风格接口、多数据源、自动搜索负载等特点;
  • Logstash:是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出到Elasticsearch;
  • Kibana:也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供图形化的日志分析Web界面,可以汇总、分析和搜索重要数据日志;

ELK的工作原理,如图:

搭建ELK日志分析系统详解
Logstash的主要组件:
  • Shipper:日志收集者。负责监控本地日志文件的变化,及时收集最新的日志文件内容。通常,远程代理端(agent)只需要运行这个组件即可;
  • Indexer:日志存储者。负责接收日志并写入到本地文件;
  • Broker:日志Hub。负责连接多个Shipper和Indexer;
  • Search and Stronage:允许对事件进行搜索和存储;
  • Web Interface:基于Web的展示界面;

正是由于以上组件在Logstash架构中可独立部署,才提供了更好的群集扩展性。

Logstash使用管道方式进行日志的搜集处理和输出,优点类似Linux系统的管道命令,将前一个流程的处理结构发送到后一个流程继续处理。在Logstash中,包括了三个阶段,分别是输入(input)、处理(Filter,非必需)和输出(output),三者的关系如图:

搭建ELK日志分析系统详解
实验需要实现的功能有:
(1)配置ELK日志分析群集;
(2)使用Logstash收集日志;
(3)使用Kibana查看分析日志;

一、环境准备

建议两台node服务器的内存不能小于4G!
时间必须一致,否则会出现意想不到的错误!

两个ELK节点的配置几乎一致,操作如下:

两台机器基本环境配置完成之后,接下来才开始真正的部署ELK日志分析系统!

关于部署ELK所需的所有软件都在网盘链接:https://pan.baidu.com/s/1PeJk6KhiNiMpZeksUH1fJQ
提取码:14ez
建议先在windows本地进行解压,否则压缩方式Linux系统不便进行解压缩!

二、部署Elasticsearch软件

在node1和node2节点上都要部署Elasticsearch,下面以node1为例,node2配置与node1相同!

(1)安装Elasticsearch软件

Elasticsearch软件可以通过RPM安装、YUM安装或者源码安装,生产环境中用户可以根据实际情况进行安装方式的选择,本章采用RPM方式进行安装。

访问测试,测试效果如图:

搭建ELK日志分析系统详解
搭建ELK日志分析系统详解
接下来,通过命令插入一个测试索引,命令如下:

再次刷新浏览器进行查看,如图:

搭建ELK日志分析系统详解

三、安装Kibana

(1)在node1上配置安装Kibana

(2)编辑Kibana配置文件

(3)启动服务

(4)访问测试

搭建ELK日志分析系统详解
其实到这里,功能已经可以实现了,当时为了有更好的效果,建议搭建一台Web服务器并安装Logstash!

四、安装Logstash

Logstash是部署在需要监控其日志的应用服务器上!

(1)在Apache服务器上安装Logstash

(2)编写Logstash服务的配置文件

Logstash配置文件有三部分组成:input、output、filter(根据需要),因此标准的格式为:

在每个部分中,也可以指定多个访问方式。例如:若要指定两个日志来源文件,则格式如下:

编写logstash配置文件apache_log.conf

[root@localhost ~]#  vim  /etc/logstash/conf.d/apache_log.conf//必须在这个目录下,叫什么文件名无所谓,内容如下:input { file{ path => "/etc/httpd/logs/access_log" 

来源:人间不值得-

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月25日
下一篇 2019年8月25日

相关推荐