由于领导要求让我研究 efk 日志审计系统。我之前从未接触过,所以写这一篇文章作为研究和搭建过程的笔记 供自己以后参考,其中记录了我搭建过程中的遇到的各种问题,以及解决办法 包括常用到的指令。
一. 准备阶段
1.准备好elasticsearch ,filebeat ,kibana 的压缩文件(网上下载),并下载好Xftp用于文件上传,Centos镜像文件并用VMware创建虚拟机
(注意elastic,filebeat,kibana的版本号要一样 如下图版本号均为-7.3.1 避免发生兼容性问题)
2.VMware16创建虚拟机 (本人之前没怎么接触过 摸索【百度】了很久,会的这里可以跳过不看)
点击主页中的创建虚拟机
这边我直接点击的典型(推荐)
根据实际情况选择(一般默认就可以了)
点击完成
然后耐心等待机器加载
加载完毕后还有一些配置 需要处理
语言选择好之后 进行软件选择
选择GNOME桌面 和 开发工具 就可以了 点击左上角完成退出
第二步点击网络和主机名
链接网络 一样还是点击完成退出
最后点击安装位置 ,默认的就可以了 点击完成退出 再点右下角开始安装
这里设置root密码 开机用的 设置完后等待系统安装好就可以了
安装好效果图如下:
二.搭建EFK日志审计系统
打开终端:在根目录下创建一个存放 压缩包的文件夹
cd / <----------------- 到根目录下
mkdir mysoft <------------ 创建文件夹的指令 mysoft 是文件夹的名称 名称随意
使用 ifconfig 查看虚拟机的ip (这个ip之后会经常用到) 用xftp链接这台虚拟机需要用到
ifconfig
点开下载好的xftp
把你下载好的 压缩包 拉进来放在 你才创建好的文件夹内
这时我们在虚拟机中创建的文件夹中查看
现在开始对elastic,filebeat,kibana 三个压缩包进行解压
执行解压缩命令:
tar -zxvf elasticsearch-7.3.1-linux-x86_64.tar.gz -C /usr/local <-----解压到/usr/local目录下
tar -zxvf 文件名称(按TAB可以补全) -C (解压到的位置)
此时查看 usr/local目录下 刚才解压好的文件
接下来 我们要对这三个组件进行配置
1. cd 到elastic的目录下 对其配置文件进行修改
注意需要先登入root 用户才可以对其进行修改
文件无内容 退出需要同时按住shift + :键 输入 q! 再按回车键才能退出
正确方式如下先登录 root 用户 并输入密码
进入文件后点击 键盘 i 建 进入插入模式 (插入模式才可以对文件进行修改)
设置network.host
修改完毕后 按键盘 ESC 键退出插入模式 按住shift + : 键 输入wq 点击回车 保存并退出
现在我们准备启动elastic
前往elastic 的bin目录下输入./elasticsearch启动elastic
./elasticserach
你会发现启动不了 报错了 这是因为elastic 不能允许root 用户启动它 ,我们需要创建专门启动它的用户
创建用户 指令
创建用户
useradd user-es <-----------user-es 是我起的用户名称这里随意
创建所属组:
chown user-es:user-es -R /usr/local/elasticsearch-7.3.1 <-----------user-es 为名称
切换到user-es用户
su user-es
再次启动elastic
结果还是报错 错误如下:
解决办法 如下:
问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;
解决办法:
#切换到root用户修改
vim /etc/security/limits.conf
# 在最后面追加下面内容
*** hard nofile 65536 或 262144
*** soft nofile 65536
*** 是启动ES的用户
添加内容
vi /etc/sysctl.conf
然后在文末添加如下内容
vm.max_map_count = 655360
保存退出以后再在 root用户状态下 执行一下内容:
sysctl -p
接下来切换到非root用户就可以启动了
效果图如下:
修改完后即可正常运行
要执行后台启动elastic命令
启动elasticsearch(在bin 目录下)
./elasticsearch
后台启动elasticsearch(在bin 目录下)
./elasticsearch -d
检测 elastic是否正常启动命令,返回结果为拒绝连接则为启动失败
通过下面的命令找到进程IP
fuser -n tcp 9200 <------elastic默认端口号是9200
启动成功后 在浏览器进行访问 虚拟机ip + elastic的9200端口
如果elastic启动成功但 浏览器访问不了 可能是防火墙有限制 以下列举一些可能用到的指令:
.查询指定端口是否已开启
firewall-cmd --query-port=9200/tcp
添加指定需要开放的端口
firewall-cmd --add-port=9200/tcp --permanent
查看想开的端口是否已开
firewall-cmd --query-port=9200/tcp
注意:如果查询是no,则需要执行防火墙命令重载
firewall-cmd --reload
2.对kibana 进行配置
首先我们同样要像 elasticsearch 一样给 Kibana 配置一个 账户 来专门开启 Kibana 配置过程相同 指令如下:
创建用户
useradd user-ki
创建所属组:
chown user-ki:user-ki -R /usr/local/kibana-7.3.1-linux-x86_64
切换到user-ki用户
su user-ki
切换到 user-ki用户的 记得重新切换至 root 用户 再进行配置
配置文件所在位置为 /usr/local/kibana-7.3.1-linux-x86_64/config/kibana.yml
对配置文件进行修改
根据实际情况填写 :
配置修改 并保存后 再kibana的bin目录下启动kibana
启动指令如下:
kibana 后台启动在 kibana的bin目录下执行以下命令在后台启动:
nohup ./kibana &
kibana 启动:
./kibana
记得切换至我们刚才创建的 专门启动kibana 的账户 再启动
这种情况 请输入一遍 exit 按回车键
启动成功后(可能要等待一段时间 Kibana启动比较慢) 用浏览器访问 虚拟机ip + Kibana 5601端口 ,检查是否启动成功
当出现这个页面表示 启动成功:
3.最后配置并启动filebeat
首先来的filebeat目录下 ,对filebeat.yml文件进行配置
根据实际情况 配置Kibana的host
根据实际情况配置elastic的hosts
保存退出 启动filebeat
在filebeat 目录下 输入 ./filebeat -e 启动
./filebeat -e
启动成功后 我们用刚才浏览器打开的kibana页面
点击添加日志 :
由于我需要的是系统日志,这里点击的系统日志
进入页面后翻到最底下,直接点击检查数据(上面的配置我们都配置好了 不用再配置了)
出现(此模块成功收到数据)表示 日志审计服务搭建成功
点击左上角 仪表盘 进行查看日志信息