ELK结构
ELK由ElasticSearch、Logstash、Kiabana组成。
ElasticSearch
ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。
Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
Elasticsearch 是个分布式搜索和分析引擎,优点是能对大容量的数据进行接近实时的存储、搜索和分析操作。
Logstash
Logstash作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。
Logstash 由JRuby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。
Kiabana
Kiabana是基于 Node.js 开发的展示工具,可以为 Logstash 和 ElasticSearch 提供图形化的日志分析 Web 界面展示,可以汇总、分析和搜索重要数据日志。
补充
Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。
Elasticsearch 集群部署
一、环境准备(在Node1、Node2节点上操作,只展示node1)
node1节点(内存4G):192.168.235.101 部署ES、Kibana
node2节点(内存4G):192.168.235.102 部署ES
apache节点:192.168.235.103 部署logstash、apache
所有主机关闭防火墙
更改node节点主机名
配置域名解析
安装java
二、部署 Elasticsearch 软件
安装软件包
加载服务系统
修改主配置文件
创建数据存放路径并授权
启动es
查看节点信息
http://192.168.235.101:9200 、 http://192.168.235.102:9200 查看节点 Node1、Node2 的信息
http://192.168.235.101:9200/_cluster/health?pretty查看群集的健康情况
http://192.168.235.101:9200/_cluster/state?pretty 检查群集状态信息
三、安装 Elasticsearch-head 插件
安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs。
node:是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
phantomjs:是一个基于 webkit 的JavaScriptAPI,可以理解为一个隐形的浏览器,任何基于 webkit 浏览器做的事情,它都可以做到。
编译安装 node
安装 phantomjs并复制执行文件
安装 Elasticsearch-head 数据可视化工具
修改 Elasticsearch 主配置文件
启动 elasticsearch-head 服务
查看Elasticsearch信息
通过 Elasticsearch-head 查看 Elasticsearch 信息,由于端口号为9100,所以通过浏览器访问 http://192.168.235.101:9100地址并连接群集。如果看到群集健康值为 green 绿色,代表群集很健康。
插入索引查看
刷新页面
Logstash 部署
在 Apache 节点上操作
一、更改主机名
二、安装Apahce服务(httpd)并启动
yum -y install httpd
systemctl start httpd
三、安装Java环境
四、安装logstash并创建软链接
五、测试 Logstash
-f:通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。
-e:从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。
-t:测试配置文件是否正确,然后退出。
使用 rubydebug 输出详细格式显示,codec 为一种编解码器
使用 Logstash 将信息写入 Elasticsearch 中
结果不在标准输出显示,而是发送至 Elasticsearch 中,可浏览器访问 http://192.168.235.101:9100/ 查看索引信息和数据浏览
六、定义 logstash配置文件
Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)
我们用系统日志文件为例
重启服务后浏览器访问 http://192.168.235.101:9100 查看索引信息
Kiabana 部署
在 Node1 节点上操作
一、安装 Kiabana
二、配置 Kibana 的主配置文件
三、启动 Kibana 服务
四、验证Kibana
浏览器访问 http://192.168.235.101:5601
单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果。
五、添加数据
将 Apache 服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示
启动 logstash
浏览器访问 http://192.168.235.101:9100 查看索引是否创建
浏览器访问 http://192.168.235.101:5601 登录 Kibana
选择“Discover”选项卡,在中间下拉列表中选择刚添加的 apache_access-* 、apache_error-* 索引, 可以查看相应的图表及日志信息
Filebeat+ELK 部署
Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。
一、安装 Filebeat(在 Node1 节点上操作)
二、设置 Kibana 的主配置文件
三、启动filebeat
四、新建logstash配置文件
在 Logstash 组件所在节点上新建一个 Logstash 配置文件
启动 logstash
五、访问
浏览器访问 http://192.168.235.101:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息(同上)