一、ELK日志分析系统简介
ELK不仅适用于日志分析,还可以支持其他数据搜索、分析和收集的场景,如网络流量分析、性能分析等
1.1 日志服务器
-
提高安全性
-
集中存放日志
-
缺陷(对日志分析困难)
1.2 ELK日志分析系统
-
Elasticsearch
-
Logstash
-
Kibana
1.2.1 Elasticsearch
1.2.1.1 Elasticsearch的概述
提供了一个分布式多用户能力的全文搜索引擎,例如百度。而且它是由java开发的,可通过RESTful web接口,可让用户通过浏览器和Elasticsearch。通常用于是索引和搜索大容量的日志,也可以搜索许多不同类型的文档
解释:RESTful web
get 获取
post 创建
put 更新
delete 删除
get 搜索值
1.2.1.2 Elasticsearch核心概念
- 接近实时
- 集群
- 节点
- 索引
- 索引(库)->类型(表)->文档(记录)
- 分片和副本
1.2.2Logstash介绍
1.2.2.1 Logstash介绍
一款强大的数据处理工具,可实现数据传输、格式处理、格式化输出,数据输入、数据加工(如过滤、改写等)记忆数据输出
1.2.2.1 LogStash主要组件
-
Shipper:日志收集者,专门负责监控当地的web微服务日志
-
Indexer:日志存储者
-
Broker:类似于日志的harbor,主要负责连接多个日志收集者,相当于中间人
-
Search and Storage:搜索和存储
-
Web Interface:基于web展示数据界面
1.2.2.2 logstash主要做的三件事
- input(数据采集)
- filter(数据过滤)
- output(数据输出)
1.2.2.3 filebeat
轻量级的开源日志文件数据收集器
1.2.2.3.1 filebeat结合logstash的优势
-
通过logstash
-
从其他数据源中提取
-
将数据发送给多个目的地或写入数据
-
使用条件数据流逻辑组成更复杂的处理管道
1.2.3 Kibana介绍
1.2.3.1 kibana介绍
一个针对Elasticsearch的开源分析及可视化平台,搜索、查看存储在Elasticsearch索引中的数据,通过各种图表进行高级数据分析及管理
1.2.3.2 Kibana主要功能
-
Elasticsearch无缝集成
-
整合数据,复杂数据分析
-
更加收益
-
接口容易,分享工人也
-
配置简单,可视化多数据源
-
简单数据导出
1.3 日志处理步骤
- 将日志进行集中化管理
- 将日志格式化(Logstash)并输出到Elasticsearch
- 对格式化后的数据进行索引和存储(Elasticsearch)
- 前段数据的展示(Kibana)
1.4 完整日志系统基本特征
- 收集:能够采集多种来源的日志数据
- 传输:能够稳定的把日志数据分析过滤并传输到系统文件
- 存储:存储日志数据
- 分析:支持UI分析
- 警告:能够提供错误报告,监控机制
二、ELK实施部署
2.1 ELK Elasticsearch集群部署(在Node1、Node2节点上操作)
2.1.1 为node1、node2关闭防火墙,改名,编辑hosts
2.1.2 解压压缩包
在node1远程传输内容到node2,为node1、node2解压压缩包ES
2.1.3 为node1、node2解压压缩包,重新配置服务并开机自启ES服务
2.1.4 为node1和node2配置文件,配置信息,创建文件夹和设置权限
2.1.5 为node1和node2启动ES服务
2.1.6 查看节点信息node1、node2
2.1.7 查看群集的健康情况
注意:
- 绿色:健康 数据和副本 全都没有问题
- 红色:数据都不完整
- 黄色:数据完整,但副本有问题
2.2 在node1节点下操作
2.2.1 在opt下安装gcc、gcc-c++
2.2.2 在opt下解压node压缩包,同时编译安装
2.2.3 在opt下解压phantomjs到usr/local/src/下
2.2.4 切换目录,复制内容到/usr/local/src/
2.2.5 在opt下解压ES
2.2.6 切换到刚刚解压玩的目录下后进行安装
2.2.7 修改 Elasticsearch 主配置文件
vim /etc/elasticsearch/elasticsearch.yml
2.2.8 重新启动ES服务
systemctl restart elasticsearch
2.2.9 切换到elasticsearch-head,在后台运行
cd /usr/local/src/elasticsearch-head/
npm run start &
2.2.10 查看ES信息
2.2.11 插入索引
2.2.12 重新查看索引信息
2.3 ELK Logstash 部署(在 Apache 节点上操作)
2.3.1 关闭防火墙设置别名apache,安装httpd并启动
2.3.2 安装java环境,查看java版本
2.3.3 在opt下将logstash转移到xshell下,然后解压,为它做软链接,同时开机自启logstash服务
2.3.4 输入输出流
2.3.5 使用 rubydebug 输出详细格式显示
2.3.6 使用Logstash将信息写入Elasticsearch中
2.3.7 为message增加读权限,编辑system.conf配置文件,重新启动logstash服务
2.3.8 查看索引信息
2.4 ELK Kiabana部署(在 Node1 节点上操作)
2.4.1 安装kibana
cd /opt
rpm -ivh kibana-5.5.1-x86_64.rpm
2.4.2 启动服务,查看5601端口
systemctl start kibana.service
systemctl enable kibana.service
netstat -natp | grep 5601
2.4.3 增加索引
2.4.4 将Apache服务器的日志(访问的、错误的)添加到Elasticsearch并通过Kibana显示
2.4.5 切换到conf.cd下,运行apache_log配置文件