elk日志分析搭建使用记录(二)

0x00 介绍

1.elk背景介绍

Elasticsearch 是一个非常强大的搜索引擎。它目前被广泛地使用于各个 IT 公司。Elasticsearch 是由 Elastic 公司创建。它的代码位于 GitHub - elastic/elasticsearch: Free and Open, Distributed, RESTful Search Engine。目前,Elasticsearch 是一个免费及开放(free and open)的项目。

同时,Elastic 公司也拥有 Logstash 及 Kibana 开源项目。这个三个项目组合在一起,就形成了 ELK 软件栈,他们三个共同形成了一个强大的生态圈。

简单地说,Logstash 负责数据的采集,处理丰富数据,数据转换等。

Kibana 负责数据展示,分析,管理,监督及应用。

Elasticsearch 处于最核心的位置,它可以帮我们对数据进行快速地搜索及分析。

0x01 部署架构

elk日志分析搭建使用记录(二)_第1张图片

 

0x02 安装部署

0.前期准备

这些前期准备是必须进行的。创建账号:

adduser elastic // 创建账号

passwd elastic  //设置密码

因为不能直接使用root用户运行,所以我们要进行前期准备。

配置系统:

vi /etc/security/limits.conf

新增如下内容:

*  soft  nproc 65536

*  hard  nproc 65536

elastic  -  nofile  65535

elk日志分析搭建使用记录(二)_第2张图片

vi /etc/sysctl.conf

新增如下内容:

vm.max_map_count=262144

elk日志分析搭建使用记录(二)_第3张图片

systemctl stop firewalld  #如果没法访问kibana或者elasticsearch的web页面,往往是防火墙没有开启。

systemctl disable firewalld.service  # 系统重启后,防火墙会自动开启。

我们在将安装包上传到/opt/elk/ 或者创建该目录后按照官方的指南进行下载安装。

1.Elasticsearch 安装和维护

1.Elasticsearch 安装

tar -xzf elasticsearch-8.1.2-linux-x86_64.tar.gz

cd /opt/elk/elasticsearch-8.1.2/

chown -R elastic:elastic /opt/elk/elasticsearch-8.1.2

vi ./config/elasticsearch.yml

vi ./config/elasticsearch.yml

修改前是:

#network.host: 192.168.0.1

修改后:

network.host: 0.0.0.0

su elastic

./bin/elasticsearch

elk日志分析搭建使用记录(二)_第4张图片

 【重要提示】:请记录该段内容,说明如下:

Elasticsearch 的安全功能将产生

用户名为elastic的用户,密码是C_4NQ7GMQR1******************

✅ Elasticsearch security features have been automatically configured!

✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):

  C_4NQ7GMQR1******************

ℹ️  HTTP CA certificate SHA-256 fingerprint:

  61734a00eac826309e01a2a2ed5e4a1d00f5b2c7c02bb917ee******************

ℹ️  Configure Kibana to use this cluster:

• Run Kibana and click the configuration link in the terminal when Kibana starts.

• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):

  eyJ2ZXIiOiI4LjEuMiIsImFkciI6WyIxMC4xMC40Ljg5OjkyMDAiXSwiZmdyIjoiNjE3MzRhMDBlYWM4MjYzMDllMDFhMmEyZWQ1ZTRhMWQwMGY1YjJjN2MwMmJiOTE3ZWVhODkxYjg1ODU3OGI3ZSIsImtleSI6Ik1xQ3JJSUFCbkNlSzlaZlpUdXIxOkxXbENYR0N6U******************

ℹ️ Configure other nodes to join this cluster:

• Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token ` (valid for the next 30 minutes):

  eyJ2ZXIiOiI4LjEuMiIsImFkciI6WyIxMC4xMC40Ljg5OjkyMDAiXSwiZmdyIjoiNjE3MzRhMDBlYWM4MjYzMDllMDFhMmEyZWQ1ZTRhMWQwMGY1YjJjN2MwMmJiOTE3ZWVhODkxYjg1ODU3OGI3ZSIsImtleSI6Ik5LQ3JJSUFCbkNlSzlaZlpUdXIxOkZfY2Qzd0RRU05DVHJG******************

  If you're running in Docker, copy the enrollment token and run:

  `docker run -e "ENROLLMENT_TOKEN=" docker.elastic.co/elasticsearch/elasticsearch:8.1.2`

2.Elasticsearch 维护

1.以守护进程的形式运行elasticsearch

cd /opt/elk/elasticsearch-8.1.2/

su elastic

./bin/elasticsearch -d -p pid

 elk日志分析搭建使用记录(二)_第5张图片

pid 在当前目录下面。

  • 停止守护进程的elasticsearch

pkill -F pid

  • 如果不是守护进程形式的,可以使用Ctrl +  C 停止

2.Kiabana安装

1.Kiabana 安装

tar -xzf kibana-8.1.2-linux-x86_64.tar.gz

chown -R elastic:elastic /opt/elk/kibana-8.1.2

cd /opt/elk/kibana-8.1.2/

vi ./config/kibana.yml

修改前是:

#server.host: "localhost"

#i18n.locale: "en"

修改后:

server.host: "0.0.0.0"

i18n.locale: "zh-CN"

su elastic

./bin/kibana

elk日志分析搭建使用记录(二)_第6张图片

 http://0.0.0.0:5601/?code=027993

实际上,我们打开服务器IP:5601,kibana所在的服务器地址是10.10.**.**,(你的服务器IP)所以我们打开的是http://10.10.**.**:5601/

elk日志分析搭建使用记录(二)_第7张图片

elk日志分析搭建使用记录(二)_第8张图片

如果我们同时安装和运行elasticsearch 和kibana没有超过30分钟,是不会出现这个界面的,但是因为我们这里超过30分钟了,所以会出现这个提示,它提示的Windows的命令,故我们实际在kibana所在的服务器执行的是./bin/kibana-verification-code

elk日志分析搭建使用记录(二)_第9张图片

elk日志分析搭建使用记录(二)_第10张图片

执行命令后,获得验证码,输入进行验证。验证通过,进行配置

2.Kiabana 维护

1.以后台进程的形式运行Kiabana

cd /opt/elk/kibana-8.1.2/

su elastic

nohup ./bin/kibana & 

该值为pid

  1. 停止后台进程的elasticsearch

kill -9 17534 # kill -9 pid  或者 kill -SIGTERM pid

  1. 如果不是守护进程形式的,可以使用Ctrl +  C 停止

3.Fleet安装

kibana 界面进行配置

elk日志分析搭建使用记录(二)_第11张图片

elk日志分析搭建使用记录(二)_第12张图片

 elk日志分析搭建使用记录(二)_第13张图片

elk日志分析搭建使用记录(二)_第14张图片

elk日志分析搭建使用记录(二)_第15张图片

sudo ./elastic-agent install --url=https://10.10.*.*:8220 \ --fleet-server-es=https://10.10.*.*:9200 \ --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2NDk4MzI4MTU4NTk6cmZNOXRzLUFUZmVkM0ZoX2ZOclZvZw \ --fleet-server-policy=fleet-server-policy \ --fleet-server-es-ca-trusted-fingerprint=61734a00eac826309e01a2a2ed5e4a1d00f5b2c7c02bb917eea891b858578b7e \ --certificate-authorities= \ --fleet-server-cert= \ --fleet-server-cert-key=

.\elastic-agent.exe install --url=https://10.10.*.*:8220 ` --fleet-server-es=https://10.10.*.*:9200 ` --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2NDk4MzI4MTU4NTk6cmZNOXRzLUFUZmVkM0ZoX2ZOclZvZw ` --fleet-server-policy=fleet-server-policy ` --fleet-server-es-ca-trusted-fingerprint=61734a00eac826309e01a2a2ed5e4a1d00f5b2c7c02bb917eea891b858578b7e ` --certificate-authorities= ` --fleet-server-cert= ` --fleet-server-cert-key=

安装Fleet 服务器

Fleet 服务器进行安装,命令如下:

./elastic-agent install --url=https://10.10.*.*:8220 --fleet-server-es=https://10.10.*.*:9200 --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2NDk4MzI4MTU4NTk6cmZNOXRzLUFUZmVkM0ZoX2ZOclZvZw --fleet-server-policy=fleet-server-policy  --fleet-server-es-ca-trusted-fingerprint=61734a00eac826309e01a2a2ed5e4a1d00f5b2c7c02bb917eea891b858578b7e

elk日志分析搭建使用记录(二)_第16张图片

https://www.elastic.co/guide/en/fleet/8.1/elastic-agent-cmd-options.html

If no fleet-server-cert* flags are specified, Elastic Agent auto-generates a self-signed certificate with the hostname of the machine. Remote Elastic Agents enrolling into a Fleet Server with self-signed certificates must specify the --insecure flag.

重点关注:因为我们没有使用正式的证书,所以产生的是自签名的证书,所以后续在其他服务器进行安装agent的时候,需要添加--insecure

4.Elastic Agent 安装

windows agent 安装

如果我们需要在其他服务器进行添加Elastic Agent代理,注意在Fleet 服务器是不建议安装Elastic Agent

elk日志分析搭建使用记录(二)_第17张图片

 elk日志分析搭建使用记录(二)_第18张图片

此处我们选择在远程Windows服务器进行安装,复制命令如下

.\elastic-agent.exe install --url=https://10.10.*.*:8220 --enrollment-token=UnFDSUlZQUJuQ2VLOVpmWjllcVg6aC1kR2lUY0NTZi1pc1g1WWt0QTFydw==

因为我们没有实际安装有效的证书,详情请见【Fleet安装】-【安装Fleet 服务器】,所以实际安装命令是:

.\elastic-agent.exe install --url=https://10.10.*.*:8220 --enrollment-token=UnFDSUlZQUJuQ2VLOVpmWjllcVg6aC1kR2lUY0NTZi1pc1g1WWt0QTFydw== --insecure

elk日志分析搭建使用记录(二)_第19张图片

回到kibana界面,可以看到Agent policy 1 新增一个代理,这个代理就是我们刚刚安装的Windows代理

elk日志分析搭建使用记录(二)_第20张图片

elk日志分析搭建使用记录(二)_第21张图片

linux agent 安装

elk日志分析搭建使用记录(二)_第22张图片

 sudo ./elastic-agent install --url=https://10.10.*.*:8220 --enrollment-token=UnFDSUlZQUJuQ2VLOVpmWjllcVg6aC1kR2lUY0NTZi1pc1g1WWt0QTFydw== --insecure

因为我们按照fleet的时候,使用的是自签名的证书。

直接以root权限的用户安装运行:

tar -xzf elastic-agent-8.1.2-linux-x86_64.tar.gz

cd elastic-agent-8.1.2-linux-x86_64

./elastic-agent install --url=https://10.10.4.89:8220 --enrollment-token=UnFDSUlZQUJuQ2VLOVpmWjllcVg6aC1kR2lUY0NTZi1pc1g1WWt0QTFydw== --insecure

elk日志分析搭建使用记录(二)_第23张图片

以普通权限的用户安装运行:

确保权限:如果我们使用普通账号,例如elastic,这时需要sudo权限或者root权限的用户,以root权限的用户进行修改:

chmod u+w /etc/sudoers

vim /etc/sudoers

新增:elastic  ALL=(ALL) ALL, 如下图所示:

elk日志分析搭建使用记录(二)_第24张图片

 chmod u-w /etc/sudoers

tar -xzf elastic-agent-8.1.2-linux-x86_64.tar.gz

chown -R elastic:elastic /opt/elastic-agent-8.1.2-linux-x86_64

su elastic

cd elastic-agent-8.1.2-linux-x86_64

sudo ./elastic-agent install --url=https://10.10.*.*:8220 --enrollment-token=UnFDSUlZQUJuQ2VLOVpmWjllcVg6aC1kR2lUY0NTZi1pc1g1WWt0QTFydw== --insecure

elk日志分析搭建使用记录(二)_第25张图片

0x03 配置使用

请见:elk日志分析搭建使用记录(三)

0x04 问题解决

请见:elk日志分析搭建使用记录(四)

0x05 参考文档

请见:elk日志分析搭建使用记录(五)

你可能感兴趣的:(安全建设,基础安全,ELK安装,kibana安装,安全审计平台,elastic,8,elasticsearch,8)