一、ELK日志分析简介
1.1、日志服务器
● 提高安全性
● 集中存放日志缺陷
● 对日志的分析困难
1 )ELK日志分析系统
● Elasticsearch
● Logstash
● Kibana
2 )日志处理步骤
1.将日志进行集中化管理
2.将日志格式化(Logstash)并输出到Elasticsearch
3.对格式化后的数据进行索引和存储(Elasticsearch)
4.前端数据的展示(Kibana)
1.2、Elasticsearch介绍
1 )Elasticsearch的概述
提供了一个分布式多用户能力的全文搜索引擎
2 )Elasticsearch核心概念
●接近实时
●集群
●节点
●索引
★索引(库)→类型(表)→>文档(记录)
●分片和副本
1.3、Logstash介绍
1 )Logstash介绍
●—款强大的数据处理工具
●可实现数据传输、格式处理、格式化输出
●数据输入、数据加工(如过滤,改写等)以及数据输出
2 )LogStash主要组件
●Shipper
●lndexer
●Broker
●Search and Storage
●Web Interface
1.4、Kibana介绍
1 )Kibana介绍
●一个针对Elasticsearch的开源分析及可视化平台
●搜索、查看存储在Elasticsearch索引中的数据
●通过各种图表进行高级数据分析及展示
2 )Kibana主要功能
●Elasticsearch无缝之集成
●整合数据,复杂数据分析
●让更多团队成员受益接口灵活,分享更容易
●配置简单,可视化多数据源
●简单数据导出
二、实验部署
2.1、拓扑图
1)需求描述
配置ELK日志分析群集
使用Logstash收集日志
使用Kibana查看分析日志
2 )设备列表
主机 | 操作系统 | 主机名 | IP地址 | 主要软件 |
---|---|---|---|---|
服务器 | Centos7.4 | node1 | 20.0.0.31 | Elasticsearch Kibana |
服务器 | Centos7.4 | node1 | 20.0.0.32 | Elasticsearch |
服务器 | Centos7.4 | node1 | 20.0.0.30 | Logstash Apache |
3 )准备安装环境
●关闭防火墙和Selinux
● Node1、Node2节点内存分配4G,Apache节点分配1G内存
●通过VMware虚拟网络Vmnet8连接
4 )安装步骤分析
1.环境准备
2.部署Elasticsearch软件
3.安装Elasticsearch-head插件
4.Logstash安装及使用方法
5.安装Kibana
5 )安装部署Elasticsearch安装步骤
1.安装Elasticsearch软件
2. 加载系统服务
3.更改Elasticsearch主配置文件
4.创建数据存放路径并授权
5.启动Elasticsearch并查看是否成功开启
6.查看节点信息
三、配置 Elasticsearch环境
3.1、node1和node2同时配置
[root@localhost ~]# hostnamectl set-hostname node1 ##修改主机名
[root@localhost ~]# su ##刷新
[root@node1 ~]# systemctl stop firewalld.service ##关闭防火墙
[root@node1 ~]# setenforce 0 ##关闭核心防护
[root@node1 ~]# vi /etc/hosts ##添加域名解析
20.0.0.31 node1
20.0.0.32 node2
[root@node1 ~]# java -version ##查Java版本信息
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
###########安装elasticsearch-5.5.0.rpm软件包#########
[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl enable elasticsearch.service
[root@node1 ~]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# ls
elasticsearch.yml jvm.options log4j2.properties scripts
[root@node1 elasticsearch]# cp -p elasticsearch.yml elasticsearch.yml.bak
[root@node1 elasticsearch]# ls
elasticsearch.yml elasticsearch.yml.bak jvm.options log4j2.properties
[root@node1 elasticsearch]# vi elasticsearch.yml ####修改一下内容
17 cluster.name: my-elk-cluster ####集群名称
23 node.name: node1 ####节点名称(不能和其他节点重复)
33 ath.data: /data/elk_data ####数据存放位置
37 path.logs: /var/log/elasticsearch/ ####日志位置
43 bootstrap.memory_lock: false ##不在启动时锁定内存:锁定物理内存地址防止而是内存被交换出去
55 network.host: 0.0.0.0 ####允许所有网段
59 http.port: 9200 ####监听端口号
68 discovery.zen.ping.unicast.hosts: ["node1", "node2"] ####群集发现通过单波实现
##################wq保存退出#################################
[root@node1 elasticsearch]# mkdir -p /data/elk_data ###创建数据存放路径
[root@node1 elasticsearch]# id elasticsearch
[root@node1 elasticsearch]# chown elasticsearch:elasticsearch /data/elk_data/ ##授权
[root@node1 elasticsearch]# systemctl start elasticsearch.service ##开启服务
[root@node1 elasticsearch]# netstat -anpt | grep 9200 ####过滤监听端口,查看服务是否开启
3.2、打开浏览器(谷歌)验证 http://20.0.0.31:9200 http://20.0.0.32:9200
验证一下es单节点情况
3.3、集群检查健康和状态
http://20.0.0.32:9200/_cluster/health?pretty
3.4、集群的信息状态检查
http://20.0.0.32:9200/_cluster/state?pretty
1)node1和node2同时配置
#############进行配置依赖性环境包#############
[root@node1 elasticsearch]# yum -y install gcc-c++ make
[root@node1 elasticsearch]# cd ~
[root@node1 ~]# tar xzvf node-v8.2.1.tar.gz
[root@node1 ~]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure
[root@node1 node-v8.2.1]# make -j3 #####这边时间会比较长,耐心等待
[root@node1 node-v8.2.1]# make install
###############安装phantomjs###前端框架
[root@node1 node-v8.2.1]# cd ~
[root@node1 ~]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node1 ~]# cd phantomjs-2.1.1-linux-x86_64/
[root@node1 phantomjs-2.1.1-linux-x86_64]# cd bin/
[root@node1 bin]# cp phantomjs /usr/local/bin/
#############安装elasticsearch-head#####数据可视化工具
[root@node1 ~]# cd ~
[root@node1 ~]# tar zxvf elasticsearch-head.tar.gz
[root@node1 ~]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm install
[root@node1 elasticsearch-head]# vi /etc/elasticsearch/elasticsearch.yml ##下面配置文件,末尾插入
http.cors.enabled: true ###开启跨域访问
http.cors.allow-origin: "*" ###跨域访问允许的域名地址
[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service
######启动elasticsearch-head 启动服务器###
[root@node1 elasticsearch-head]# cd ~
[root@node1 ~]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &
[root@node1 elasticsearch-head]# netstat -anpt |grep 9100
3.5、验证elasticsearch-hea可视化工具