ELK/ELFK日志分析系统部署

一、ELK日志分析系统

ELK是一套完整的日志集中处理解决方案,将Elastic Search、Logstash和Kibana三个开开源工具配置使用,发挥出更强大的用户对日志查询、排序、统计需求(还可以加一个filebeat)。

1、组成

①Elasticserach

Elasticsearch是基于Lucene开发的分布式存储检索引擎,用来存储各类日志。
Elasticsearch是基于JAVA开发的,可以通过RESTful Web接口让用户通过浏览器与Elasticsearch通信。
Elasticsearch是一个实时的、分布式的可扩展搜索引擎,允许进行全文、结构化地搜索。通常用于索引和搜索大容量的日志数据,也可以用于搜索不同类型的文档。

②Logstash

Logstash作为一个数据收集引擎,支持动态的从各种数据源搜集数据并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置(一般会发送给Elasticsearch)。

③Kibana

通常与Elasticsearch一起部署,kibana是Elasticsearch的一个数据可视化Dashboard。Kibana提供图形化的WEB界面来浏览Elasticsearch日志数据,可以用来汇总、分析和搜索重要数据。

④Filebeat

Filebeat是一款轻量级的开源日志文件数据搜集器。通常在采集数据的客户端安装Filebeat并指定目录与日志格式,Filebeat就能快速收集数据并发送给Logstash进行分析,或是直接发给ES存储。性能上相比于运行于JVM上的Logstash优势明显,是对它的替代。

优势

·通过Logstash具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量从而减轻Elasticsearch持续写入数据的压力
·从其他数据源(例如数据库,消息队列等)中提取
·将数据发送到多个目的地,例如S3,HDFS或写入文件
·使用条件数据流逻辑组成更复杂的处理管道

日志集中化管理工具

·Packetbeat 用来搜索网络流量数据
·Topbeat 用来搜索系统、进程和文件系统级别的cpu和内存使用情况等数据
·Filebeat 用来搜集文件数据
·Winlogbeat 用来搜集windows时间日志数据

2、日志处理步骤

①将日志进行集中化管理

②对日志格式化(Logstash)并输出到Elasticsertach

③对格式化后的数据进行索引和存储

④前端数据展示(Kibana)

3、完整日志系统基本特征

①收集

能够采集多种来源的日志数据

②传输

能够稳定的把日志数据解析过滤并传输到存储系统

③存储

存储日志数据

④分析

支持UI分析

⑤警告

有监控机制,能够提供错误报告

二、ELK部署

1、环境

node1 192.168.10.102 ElasticSearch、Kibana
node2 192.168.10.103 ElasticSearch
web 192.168.10.30 Logstash、apache

2、node1配置

①修改hosts文件

ELK/ELFK日志分析系统部署_第1张图片

②安装JDK并设置环境变量

这里用的是rpm包安装
ELK/ELFK日志分析系统部署_第2张图片在这里插入图片描述
设置环境变量
在这里插入图片描述
source加载

③安装ES

这里也是用rpm包安装
ELK/ELFK日志分析系统部署_第3张图片

④修改配置文件

vim /etc/elasticsearch/elasticsearch.yml
在这里插入图片描述
集群名
在这里插入图片描述
节点名,每个节点各自独立
在这里插入图片描述
指定数据存放路径
在这里插入图片描述
指定日志存放路径
在这里插入图片描述
不锁定内存
在这里插入图片描述
监听所有地址
在这里插入图片描述
默认监听端口9200
在这里插入图片描述
指定发现节点
ELK/ELFK日志分析系统部署_第4张图片

⑤创建数据存放路径并授权

mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data/
ELK/ELFK日志分析系统部署_第5张图片

⑥启动ES

ELK/ELFK日志分析系统部署_第6张图片

⑦查看节点信息

在这里插入图片描述
访问该节点9200端口
在这里插入图片描述
http://192.168.10.102:9200/_cluster/health?pretty
ELK/ELFK日志分析系统部署_第7张图片
查看群集的健康情况,status为green表示健康。
http://192.168.10.102:9200/_cluster/state?pretty
ELK/ELFK日志分析系统部署_第8张图片
查看集群状态信息

3、安装Elasticsearch-head插件

ES在5.0版本后,插件需要作为独立服务进行安装,需要使用npm工具(NodeJS的包管理工具)安装。安装ELasticsearch-head需要提前安装依赖软件node和phantomjs。
node是一个基于Chrome V8引擎的JavaScript运行环境。
phantomjs是一个居于webkit的JavaScriptAPI,可以理解为一个隐形的浏览器,任何基于webkit浏览器做的事情,它都可以做到。

①编译安装node

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②安装phantomjs

在这里插入图片描述
在这里插入图片描述

③安装ES-head数据可视化工具

在这里插入图片描述
ELK/ELFK日志分析系统部署_第9张图片
ELK/ELFK日志分析系统部署_第10张图片

④修改ES主配置文件

在这里插入图片描述
最后添加
ELK/ELFK日志分析系统部署_第11张图片

⑤启动ES-head

在这里插入图片描述
在这里插入图片描述
必须在解压后的ES-head目录下启动服务,进程会读取该目录下的gruntfile.js文件,否则可能启动失败。

⑥通过ES-head查看ES信息

ELK/ELFK日志分析系统部署_第12张图片
未连接可以将localhost改为IP

⑦插入索引

ELK/ELFK日志分析系统部署_第13张图片
ELK/ELFK日志分析系统部署_第14张图片
可以看到索引默认被分片5个。有一个是副本。
ELK/ELFK日志分析系统部署_第15张图片

4、ELK-Logstash部署

①安装logstash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②测试logstash

-f 指定logstash配置文件,根据配置文件配置logstash的输入输出流
-e 从命令行获取,输入输出后面跟着的字符串,该字符串可以被当作logstash的配置
-t 测试配置文件是否正确,然后退出
logstash -e ‘input { stdin{} } output { stdout{} }’

标准输入输出

ELK/ELFK日志分析系统部署_第16张图片
在这里插入图片描述

rubydebug输出

logstash -e ‘input { stdin{} } output { stdout{ codec=>rubydebug } }’
ELK/ELFK日志分析系统部署_第17张图片
ELK/ELFK日志分析系统部署_第18张图片

输出到ES

logstash -e ‘input { stdin{} } output { elasticsearch { hosts=>[“192.168.10.102:9200”] } }’
在这里插入图片描述
结果发送到ES
ELK/ELFK日志分析系统部署_第19张图片
ELK/ELFK日志分析系统部署_第20张图片

5、定义logstash配置文件

Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)
·input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等
·filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式
·output:表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。
指定多个访问方式

input {
file { path =>“/var/log/messages” type =>“syslog”}
file { path =>“/var/log/httpd/access.log” type =>“apache”}
}
修改 logstash 配置文件,让其收集系统日志 /var/log/messages,并将其输出到 ES 中

①赋权

在这里插入图片描述
赋予读的权限,让 Logstash 可以获取到该文件的内容

②修改配置

vim /etc/logstash/conf.d/system.conf
ELK/ELFK日志分析系统部署_第21张图片
在这里插入图片描述
重启服务

6、访问测试

ELK/ELFK日志分析系统部署_第22张图片

7、ELK-Kibana部署

①安装Kibana

在这里插入图片描述

②配置主配置文件

在这里插入图片描述
在这里插入图片描述
监听端口,默认5601

设置监听地址,0.0.0.0监听所有
在这里插入图片描述
设置和ES建立连接的地址和端口
在这里插入图片描述
设置在ES中添加.kibana索引

③启动kibana

在这里插入图片描述
启动kibana并加入开机自启
在这里插入图片描述

④验证kibana

ELK/ELFK日志分析系统部署_第23张图片
继续添加索引
在这里插入图片描述
添加system索引
ELK/ELFK日志分析系统部署_第24张图片
ELK/ELFK日志分析系统部署_第25张图片

⑤将apache服务器的日志添加到ES并通过kibana显示

修改apache配置
在这里插入图片描述
ELK/ELFK日志分析系统部署_第26张图片
在这里插入图片描述
在kibana上添加apache_access-*和apache_error-*索引
在这里插入图片描述
ELK/ELFK日志分析系统部署_第27张图片
ELK/ELFK日志分析系统部署_第28张图片

三、ELFK

1、Filebeat作用

由于logstash会大量占用系统的内存资源,所以一般我们会使用filebeat替换logstash收集日志的功能,这也就是ELFK。或者使用fluentd替代logstash组成EFK,由于fluentd是由go开发的,所以一般用于k8s。

2、ELFK工作流程

①filebeat将日志收集后交由logstash处理;
②logstash将日志过滤、格式化等操作,满足过滤条件的数据发送给ES;
③ES对数据进行分片存储,并提供索引功能;
④Kibana对数据进行图形化展示。

3、ELFK部署

①环境

在ELK的基础上新增一台filebeat节点服务器。
filebeat服务器 192.168.10.104

②安装filebeat

在这里插入图片描述
在这里插入图片描述
下载filebeat压缩包
在这里插入图片描述
在这里插入图片描述
解压缩并转移到/usr/local下

③修改配置文件

在这里插入图片描述
指定log类型,从日志文件中读取信息
在这里插入图片描述
开启日志收集功能,默认false关闭
在这里插入图片描述
指定监控的日志文件,添加收集/var/log/messages
ELK/ELFK日志分析系统部署_第29张图片
添加,指定名称filebeat,log类型,filebeat服务器即本机ip。

在这里插入图片描述
注释,收集的日志不传输到ES
在这里插入图片描述
收集的日志传送给logstash。
ELK/ELFK日志分析系统部署_第30张图片
启动filebeat,-e记录到stderr并禁用syslog /文件输出,-c指定配置文件

④在logstash节点新建一个logstash配置文件

在这里插入图片描述
ELK/ELFK日志分析系统部署_第31张图片
在这里插入图片描述
启动logstash并重加配置文件

⑤验证查看

ELK/ELFK日志分析系统部署_第32张图片
Kibana
ELK/ELFK日志分析系统部署_第33张图片
添加索引
ELK/ELFK日志分析系统部署_第34张图片
查看

你可能感兴趣的:(elasticsearch,搜索引擎,大数据)