00
前言:
需求是小编需要采集windows 上面的系统日志,所以要搭建个日志采集系统
首先说下什么是ELK呢?
ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。
- Elasticsearch 是一个搜索和分析引擎。
- Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。
- Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
不过小编采用的是winlogbeat ES Kibina的组合进行日志收集,优点就是轻量级,因为去掉了笨重的logstash, 占用资源更少。
如上图所示,该ELK框架由beats(这里我们采用winlogbeat) elasticsearch kibana构成,这个框架比较简单,入门级的框架。
01
准备工作:
代码语言:javascript复制Centos7虚拟机一台作为服务端
Windows 虚拟机一台作为客户端
代码语言:javascript复制各软件包下载好并上传到Centos7服务上/opt目录下
02
关闭selinux:
临时关闭selinux:
获取当前selinux状态 getenforce Enforcing为开启,Permissive为关闭
临时关闭:setenforce 0
永久关闭selinux:vim /etc/sysconfig/selinux
SELINUX=enforcing 替换为SELINUX=disabled
重启机器后后,运行命令sestatus
SELinux status : disabled
03
部署JDK:
首先进入/opt目录然后做如下操作
代码语言:javascript复制[root@localhost /]# tar zxvf jdk1.8.0_131.tar.gz
[root@localhost /]# mv jdk1.8.0_131 /usr/
[root@localhost /]# vim /etc/profile
添加
代码语言:javascript复制export JAVA_HOME=/usr/jdk1.8.0_131/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
代码语言:javascript复制[root@localhost /]# source /etc/profile
[root@localhost /]# java –version
这样JDK就安装好了
04
部署Elasticsearch:
代码语言:javascript复制[root@localhost /]# tar xzf elasticsearch-5.3.0.tar.gz
[root@localhost /]# mv elasticsearch-5.3.0 /usr/local/elasticsearch
[root@localhost /]# ll /usr/local/elasticsearch/
代码语言:javascript复制[root@localhost /]# useradd elk 创建用户
[root@localhost /]# chown -R elk /usr/local/elasticsearch/
[root@localhost /]# ll /usr/local/elasticsearch/
代码语言:javascript复制[root@localhost /]# vim /etc/security/limits.conf
添加
代码语言:javascript复制* soft nofile 65536
* hard nofile 65536
代码语言:javascript复制 [root@localhost /]# vim /etc/security/limits.d/20-nproc.conf
添加
代码语言:javascript复制soft nproc 2048
代码语言:javascript复制root@localhost /]# vi /etc/sysctl.conf
添加
代码语言:javascript复制[root@localhost /]# sysctl –p
注意:做完几步后 建议重启系统
代码语言:javascript复制[root@localhost /]# cd /usr/local/elasticsearch/config/
[root@localhost config]# vim jvm.options
注释:如果你虚拟机是2G以上不需要改
代码语言:javascript复制[root@localhost config]# vim elasticsearch.yml
1.修改监听的网络地址为0.0.0.0
改成
2.开启监听的端口
去掉#
3. data,用于存放索引分片数据文件,logs,用于存放日志
文件夹如果没有需要自己创建。注意文件夹创建好后chown –R elk data和logs下。
代码语言:javascript复制[root@localhost /]# su - elk 进入elk用户启动
[elk@localhost ~]$ /usr/local/elasticsearch/bin/elasticsearch -d 启动
[elk@localhost ~]$ tail -fn 50 /usr/local/elasticsearch/logs/elasticsearch.log
或看端口 9200 9300 是否启动了
代码语言:javascript复制[root@localhost elk]# netstat -ntlp|grep -E "9200|9300"
浏览器中输入:http://IP:9200测试是否正常(以下为正常)
05
部署Kibana:
代码语言:javascript复制[root@localhost /]# tar xzf kibana-5.3.0-linux-x86_64.tar.gz
[root@localhost /]# mv kibana-5.3.0-linux-x86_64 /usr/local/kibana
[root@localhost /]# cd /usr/local/kibana/config/
[root@localhost config]# vim kibana.yml
1.修改监听的网络地址为0.0.0.0
改成
去掉#号(改成EC服务器的ip地址) 这台和EC在一起所以不用改 如果有对个分布式集群用,隔开
2.开启监听的端口
代码语言:javascript复制[root@localhost config]# cd ..
[root@localhost kibana]# cd bin/ 进入bin目录
[root@localhost bin]# nohup ./kibana & 后台启动
[root@localhost bin]# netstat -tnlp|grep -E "9200|9300|5601"
浏览器http://192.168.125.139:5601
至此服务端搭建完毕。
06
部署Winlogbeat客户端:
1.首先把下载好的文件上传的客户端机器上
2.解压到C:Program Files
3.安装winlogbeat服务
重新命名文件夹为winlogbeat
用管理员身份打开windows的 powershell
- 运行以下命令来安装服务
C:UsersAdministrator> cd 'C:Program FilesWinlogbeat'
C:Program FilesWinlogbeat> .install-service-winlogbeat.ps1
如果在系统上禁用了脚本执行,则需要为当前会话设置执行策略以允许脚本运行。
代码语言:javascript复制PowerShell.exe -ExecutionPolicy UnRestricted -File .install-service-winlogbeat.ps1.
安装好后即可在系统服务中看到了
然后启动服务
4.配置winlogbeat.yml文件
用winlogbeat收集日志,发送到elasticsearch 修改配置文件 :winlogbeat.yml
修改tags信息,因为winlogbeat没有ip自带,查看日志时不方便区分,顾在此字段中添加ip mac
填写要输出到es的地址
修改此处即可
这里是要采集的日志类型,默认已配置好无需修改
5.重启服务
最后登录kibana配置winlogbeat索引查看获取的日志
可以看到已经接收到刚才开启winlogbeat服务的日志信息了
Tags中也有所填信息方便以后索引查看
至此实验完成。