ELK是ElasticSerach、Logstash、Kibana三款产品名称的首字母集合,用于日志的搜集和搜索,今天我们一起搭建和体验基于ELK的日志服务;
环境规划
本次实战需要两台电脑(或者vmware下的两个虚拟机),操作系统都是CentOS7,它们的身份、配置、地址等信息如下:
hostname
IP地址
身份
配置
elk-server
192.168.119.132
ELK服务端,接收日志,提供日志搜索服务
双核,4G内存
nginx-server
192.168.119.133
Nginx服务端,产生的访问日志通过上报到Logstash
双核,2G内存
部署情况简介
运行时的部署情况如下图所示:
业务请求到达nginx-server机器上的Nginx; Nginx响应请求,并在access.log文件中增加访问记录; FileBeat搜集新增的日志,通过LogStash的5044端口上传日志; LogStash将日志信息通过本机的9200端口传入到ElasticSerach; 搜索日志的用户通过浏览器访问Kibana,服务器端口是5601; Kibana通过9200端口访问ElasticSerach;
安装JDK
首先请在elk-server机器上JDK8;
在ELK官方文档中(https://www.elastic.co/guide/en/elasticsearch/hadoop/6.2/requirements.html),推荐的JDK版本为8,如下图所示:
在CentOS7安装JDK8的步骤请参考《CentOS7安装JDK8》;
创建用户
ElasticSerach要求以非root身份启动,所以我们要创建一个用户:
1. 创建用户组:groupadd elasticsearch;
2. 创建用户加入用户组:useradd elasticsearch -g elasticsearch;
3. 设置ElasticSerach文件夹为用户elasticsearch所有:chown -R elasticsearch.elasticsearch /usr/local/work/elasticsearch-6.2.3;
系统设置
设置hostname,打开文件/etc/hostname,将内容改为elk-server 关闭防火墙(如果因为其他原因不能关闭防火墙,也请不要禁止80端口):systemctl stop firewalld.service 禁止防火墙自动启动:systemctl disable firewalld.service 打开文件/etc/security/limits.conf,添加下面四行内容:
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096