日志分析是运维工程师解决系统故障、发现问题的主要手段。日志包含多种类型,包括程序日志、系统日志以及安全日志等。通过对日志的分析,既可以做到未雨绸缪、预防故障的发生,又可以在故障发生时,寻找蛛丝马迹、快速定位故障点。管理员也可以通过体制了解到服务器的软件信息、硬件信息、服务器负荷以及安全性相关的信息,如服务器是否被攻击、磁盘空间是否即将耗尽、内存是否严重不足等。通过这些分析,管理员可以及时采取措施。通常情况下,每台服务器或者客户端都会产生日志,相对而言,服务器日志更加重要,因为它存放着企业的重要数据,同时作为服务器提供者,一旦出现问题,将影响所有客户端的使用。一些大型的机房或者数据中心一般不会给服务器配置显示设备,而逐台远程登录设备查看日志,需要每次系统认证成功后执行,且效率低下。
ELK主要由三个开源工具组成:
- Elasticsearch:是个开源分布实时分析搜索引擎,建立在全文搜索引擎库Apache Lucens基础上,同时隐藏了Apache Luces的复杂性。Elasticsearch将所有的功能打包成一个独立的服务,并提供了一个简单的RESTful API接口,它具有分布式、零配置、自动发现、索引自动分片、索引副本机制、RESTful风格接口、多数据源、自动搜索负载等特点;
- Logstash:是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出到Elasticsearch;
- Kibana:也是一个开源和免费的工具,Kibana可以为Logstash和Elasticsearch提供图形化的日志分析Web界面,可以汇总、分析和搜索重要数据日志;
ELK的工作原理,如图:
- Shipper:日志收集者。负责监控本地日志文件的变化,及时收集最新的日志文件内容。通常,远程代理端(agent)只需要运行这个组件即可;
- Indexer:日志存储者。负责接收日志并写入到本地文件;
- Broker:日志Hub。负责连接多个Shipper和Indexer;
- Search and Stronage:允许对事件进行搜索和存储;
- Web Interface:基于Web的展示界面;
正是由于以上组件在Logstash架构中可独立部署,才提供了更好的群集扩展性。
Logstash使用管道方式进行日志的搜集处理和输出,优点类似Linux系统的管道命令,将前一个流程的处理结构发送到后一个流程继续处理。在Logstash中,包括了三个阶段,分别是输入(input)、处理(Filter,非必需)和输出(output),三者的关系如图:
一、环境准备
建议两台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方式进行安装。
访问测试,测试效果如图:
再次刷新浏览器进行查看,如图:
三、安装Kibana
(1)在node1上配置安装Kibana
(3)启动服务
(4)访问测试
四、安装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进行处理,非常感谢!