elk日志分析搭建使用记录
Posted 煜铭2011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 部署架构
0x02 安装部署
0.前期准备
这些前期准备是必须进行的。创建账号:
adduser elastic // 创建账号
passwd elastic //设置密码
因为不能直接使用root用户运行,所以我们要进行前期准备。
配置系统:
vi /etc/security/limits.conf
新增如下内容:
* soft nproc 65536
* hard nproc 65536
elastic - nofile 65535
vi /etc/sysctl.conf
新增如下内容:
vm.max_map_count=262144
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
【重要提示】:请记录该段内容,说明如下:
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 <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=<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
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
http://0.0.0.0:5601/?code=027993
实际上,我们打开服务器IP:5601,kibana所在的服务器地址是10.10.**.**,(你的服务器IP)所以我们打开的是http://10.10.**.**:5601/
如果我们同时安装和运行elasticsearch 和kibana没有超过30分钟,是不会出现这个界面的,但是因为我们这里超过30分钟了,所以会出现这个提示,它提示的Windows的命令,故我们实际在kibana所在的服务器执行的是./bin/kibana-verification-code
执行命令后,获得验证码,输入进行验证。验证通过,进行配置
2.Kiabana 维护
1.以后台进程的形式运行Kiabana
cd /opt/elk/kibana-8.1.2/
su elastic
nohup ./bin/kibana &
该值为pid
- 停止后台进程的elasticsearch
kill -9 17534 # kill -9 pid 或者 kill -SIGTERM pid
- 如果不是守护进程形式的,可以使用Ctrl + C 停止
3.Fleet安装
kibana 界面进行配置
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=<PATH_TO_CA> \\ --fleet-server-cert=<PATH_TO_FLEET_SERVER_CERT> \\ --fleet-server-cert-key=<PATH_TO_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=<PATH_TO_CA> ` --fleet-server-cert=<PATH_TO_FLEET_SERVER_CERT> ` --fleet-server-cert-key=<PATH_TO_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
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
此处我们选择在远程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
回到kibana界面,可以看到Agent policy 1 新增一个代理,这个代理就是我们刚刚安装的Windows代理
0x03 配置使用
0x04 问题解决
0x05 参考文档
请见:elk日志分析搭建使用记录(五)
以上是关于elk日志分析搭建使用记录的主要内容,如果未能解决你的问题,请参考以下文章