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 处于最核心的位置,它可以帮我们对数据进行快速地搜索及分析。
这些前期准备是必须进行的。创建账号:
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/ 或者创建该目录后按照官方的指南进行下载安装。
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
eyJ2ZXIiOiI4LjEuMiIsImFkciI6WyIxMC4xMC40Ljg5OjkyMDAiXSwiZmdyIjoiNjE3MzRhMDBlYWM4MjYzMDllMDFhMmEyZWQ1ZTRhMWQwMGY1YjJjN2MwMmJiOTE3ZWVhODkxYjg1ODU3OGI3ZSIsImtleSI6Ik5LQ3JJSUFCbkNlSzlaZlpUdXIxOkZfY2Qzd0RRU05DVHJG******************
If you're running in Docker, copy the enrollment token and run:
`docker run -e "ENROLLMENT_TOKEN=
1.以守护进程的形式运行elasticsearch
cd /opt/elk/elasticsearch-8.1.2/
su elastic
./bin/elasticsearch -d -p pid
pid 在当前目录下面。
pkill -F pid
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
执行命令后,获得验证码,输入进行验证。验证通过,进行配置
1.以后台进程的形式运行Kiabana
cd /opt/elk/kibana-8.1.2/
su elastic
nohup ./bin/kibana &
该值为pid
kill -9 17534 # kill -9 pid 或者 kill -SIGTERM pid
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=
.\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 服务器
在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
如果我们需要在其他服务器进行添加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代理
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
以普通权限的用户安装运行:
确保权限:如果我们使用普通账号,例如elastic,这时需要sudo权限或者root权限的用户,以root权限的用户进行修改:
chmod u+w /etc/sudoers
vim /etc/sudoers
新增:elastic ALL=(ALL) ALL, 如下图所示:
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日志分析搭建使用记录(三)
请见:elk日志分析搭建使用记录(四)
请见:elk日志分析搭建使用记录(五)