ELK 实时日志分析平台
环境搭建手册
2019 年 3 月
1
文 档 说 明
文档名称
文档编号
文档类型
编
制
核
审
备
注
《ELK 实时日志分析平台环境搭建手册》
○原型稿
●初稿
○征求意见稿
○最终稿
版本号
1.0
日 期
日 期
2019/04/08
修 订 记 录
修订人
修订内容摘要
产生版本
修订日期
审核人
1
1 ELK 配置
1.1 组件介绍
Elasticsearch:
是一个基于 Lucene 的搜索服务器。提供搜集、分析、存储数据三大功能。
它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。
Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发
布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜
索,稳定,可靠,快速,安装使用方便。
Logstash:
主要是用来日志的搜集、分析、过滤日志的工具。用于管理日志和事件的
工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提
供给其它模块调用,例如搜索、存储等。
Kibana:
是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图
表,为用户提供强大的数据可视化支持。
Filebeat: 隶属于 Beats。目前 Beats 包含四种工具:
1.Packetbeat(搜集网络流量数据)
1
2.Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等
数据。通过从操作系统和服务收集指标,帮助您监控服务器及其托管的服
务。)
3.Filebeat(搜集文件数据)
4.Winlogbeat(搜集 Windows 事件日志数据)
Kafka:
1.发布和订阅记录流,类似于消息队列或企业消息传递系统。
2.以容错持久的方式存储记录流。
3.处理记录发生的流。
1.2 环境需求
(1)VMware
(2)Centos 6.5
(3)JDK 1.8
(4)nginx
jdk 官方下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html
1.3 JDK 安装
1.3.1 卸载旧版本 JDK
查看是否安装过 java
rpm -qa | grep java
rpm -e --nodeps #要卸载的包 (包通过上面的指令可以获取到)
2
1.3.2 选择安装目录
选择安装 JDK 的位置/opt/install,如果存在这个目录无需创建,一般新
到的机器是没有这个目录的,这个我们创建这个目录。 指令 需要输入密
码
管理员:mkdir /opt/install
非管理员:sudo mkdir /opt/install
1.3.3 上传和解压
将 jdk-8u131-linux-x64.tar.gz 上 传 到 服 务 器 的 /opt/install , 使 用
SecureFXPortable(或者 filelilla)将文件上传到服务器解压:
cd /opt/install
#进入 install 目录
tar -zxvf jdk-8u131-linux-x64.tar.gz
#解压到当前目录
3
1.3.4 环境变量配置
vi
/etc/profile
#打开配置文件
在文档的最后面添加如下内容,记住不要带空格:
export JAVA_HOME=/opt/install/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile #让配置生效
java –version
#验证是否安装成功
2.Elasticsearch
2.1 安装 Elasticsearch
将 elasticsearch-6.5.3.tar.gz 上 传 到 服 务 器 的 /opt/install , 使 用
SecureFXPortable(或者 filelilla)将文件上传到服务器解压:
#进入 install 目录
#解压到当前目录
cd /opt/install
tar -zxvf elasticsearch-6.5.3.tar.gz
4
2.2 运行 Elasticsearch
切换至 elasticsearch-6.5.3 目录下的 bin 目录,使用
./ elasticsearch 运行
2.3 处理异常
2.3.1 uncaught exception in thread [main]org.elasticsearch.bootstrap.StartupException:
java.lang.RuntimeException: can not run elasticsearch as root
原因是 elasticsearch 默认是不支持用 root 用户来启动的。
解决方案一:Des.insecure.allow.root=true
修改/usr/local/elasticsearch-2.4.0/bin/elasticsearch,
添加 ES_JAVA_OPTS="-Des.insecure.allow.root=true"
或 执 行 时 添 加 : sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d
-Des.insecure.allow.root=true
注意:正式环境用 root 运行可能会有安全风险,不建议用 root 来跑。
解决方案二:添加专门的用户
useradd elastic
chown -R elastic:elastic elasticsearch-2.4.0
su elastic
5
sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d
2.3.2 Could not register mbeans java.security.AccessControlException: access
denied ("javax.management.MBeanTrustPermission" "register")
sudo chown -R noroot:noroot elasticsearch 改变 elasticsearch 文
件夹所有者到当前用户
这是因为 elasticsearch 需要读写配置文件,我们需要给予 config
文件夹权限,需要新建了 elsearch 用户,elsearch 用户不具备读写权
限,因此还是会报错,解决方法是切换到管理员账户,赋予权限即可:
sudo –root
切换至管理员权限
chmod -R 775 config
赋予权限
2.3.3 bootstrap checks failed[1]: max file descriptors [4096]
elasticsearch process is too low, increase to at least [65536]
for
原因:无法创建本地文件问题,用户最大可创建文件数太小
解决方案:切换到 root 用户,编辑 limits.conf 配置文件, 添加类似
如下内容:
vim /etc/security/limits.conf
添加如下内容:
6