搭建日志采集服务器——ELK

Posted 玛丽莲茼蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建日志采集服务器——ELK相关的知识,希望对你有一定的参考价值。

一、前言

1.目的

采集Windows系统上的日志。
日志都分散在各个生产服务器,且开发人员无法登陆生产服务器,这时候就需要一个集中式的日志收集装置,对日志中的关键字进行监控,触发异常时进行报警,并且开发人员能够查看相关日志

2.ELK

ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。
Elasticsearch 是一个搜索和分析引擎。
Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。
Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

3.系统

Centos 7虚拟机+win10虚拟机

二、步骤

1.安装win10操作系统

因为之前安装过centos7了,所以这次只需要安装一个win10。
依然按照 硬件->镜像->安装系统 这个顺序。
我选择的家庭版,让我输入秘钥,就在网上随便搜了一个。

但是出现了虚拟机和页面大小不一样的情况

直接调整分辨率,选一个比现在大的合适的就行。

我发现,不需要调整IP就能连网

打开此电脑以后,C盘存的操作系统,但是D盘是不可读写的,需要格式化:双击D盘就会提醒你怎样格式化。

2. 下载压缩包并上传

jdk1.8.0_131.tar.gz
elasticsearch-7.15.1-linux-x86_64.tar.gz
kibana-7.15.1-linux-x86_64.tar.gz
winlogbeat-7.15.1-windows-x86_64.zip

jdk下载链接:https://www.oracle.com/java/technologies/downloads/#java8

需要账号密码,感谢这个博主https://blog.csdn.net/qq_40579464/article/details/105667259

账号:756309186@qq.com
密码:zZ5241248

后3个是免费的:https://www.elastic.co/cn/elastic-stack/

————————————————————————————————

其中,这些

jdk1.8.0_131.tar.gz
elasticsearch-7.15.1-linux-x86_64.tar.gz
kibana-7.15.1-linux-x86_64.tar.gz

需要上传到centos服务器上,下面这个

winlogbeat-7.15.1-windows-x86_64.zip

上传到win10客户端上

1)上传到服务器

要把3个安装包上传到/opt路径下,如下图

C:\\Users\\DELL>pscp F:\\elasticsearch-7.15.1-linux-x86_64.tar.gz root@192.168.10.100:/opt
root@192.168.10.100 password:
elasticsearch-7.15.1-linu | 332861 kB | 22190.8 kB/s | ETA: 00:00:00 | 100%

C:\\Users\\DELL>pscp F:\\kibana-7.15.1-linux-x86_64.tar.gz root@192.168.10.100:/opt
root@192.168.10.100 password:
kibana-7.15.1-linux-x86_6 | 277101 kB | 13195.3 kB/s | ETA: 00:00:00 | 100%

C:\\Users\\DELL>pscp F:\\jdk-8u311-linux-x64.tar.gz root@192.168.10.100:/opt
root@192.168.10.100's password:
jdk-8u311-linux-x64.tar.g | 143359 kB | 11027.6 kB/s | ETA: 00:00:00 | 100%

2)上传到客户端

这里还不知道怎样给win10虚拟机传文件

3. 部署JDK

首先进入/opt目录然后做如下操作

[root@localhost /]# tar zxvf jdk-8u311-linux-x64.tar.gz

解压以后生成jdk1.8.0_311这个文件夹,然后删掉原来的压缩包就行

[root@localhost /]# mv jdk-8u311-linux-x64 /usr/
[root@localhost /]# vim /etc/profile

在profile的后面添加三行

export JAVA_HOME=/usr/jdk1.8.0_311/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

重启配置文件,然后检测是否按好jdk8

[root@localhost /]# source /etc/profile
[root@localhost /]#  java –version

4.关闭selinux

selinux在Linux系统中负责执行最小权限原则,给每个进程只分配能访问到的最少的资源,保护系统的安全性。
1)法(一):临时关闭selinux:
获取当前selinux状态 getenforce Enforcing为开启,Permissive为关闭

2)法(二):永久关闭
永久关闭selinux:vim /etc/sysconfig/selinux
SELINUX=enforcing 替换为SELINUX=disabled

reboot命令重启系统,运行命令sestatus(永久关闭才能看到disabled)

5. 部署Elasticsearch

这里出现了jdk版本不匹配的一个warning,先不去管这个warning。
运行的时候报出了一个error:
看提示可知:缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.

  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填


解决方法:
换回root登录,修改配置文件elasticsearch.yml

vim /usr/local/elasticsearch/config/elasticsearch.yml

需要做两件事:
1)释放下面这一行的注释(把#去掉就行了)

# node.name: node-1

2)释放下面这一行的注释,并且删掉node-2

# cluster.initial_master_nodes: ["node-1","node-2"]

改为

cluster.initial_master_nodes: ["node-1"]

然后再切换回elk用户运行./elasticsearch程序,就没有error只剩下jdk那个warning了。

以上是关于搭建日志采集服务器——ELK的主要内容,如果未能解决你的问题,请参考以下文章

从0开始搭建ELK及采集日志的简单应用

「SpringCloud」(三十八)搭建ELK日志采集与分析系统

ELK初级搭建

日志审计极易上手搭建自己日志采集服务器分析日志(winlogbeat+Elasticsearch+Kibana)

搭建ELK日志分析平台(下)—— 搭建kibana和logstash服务器

ELK搭建踩过的坑