赞
踩
ELK是三款软件的简称,分别是Elasticsearch、Logstash、Kibana,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。说白了Elastic Stack相当于以前的ELK。
一般需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时, 大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
一个完整的集中式日志系统,需要包含以下几个主要特点:
监控机制 ELK 提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。
ELK 的主要组件有:
ELK架构中,可以直接使用Logstach 组件收集数据并过滤,把数据发送给Elasticsearch,并通过Kibana展示出来;也可以使用Filebeat收集日志,Logstash从FileBeat获取日志文件。Logstash将从Filebeat获取到的日志进行处理,将处理好的日志文件输出到Elasticsearch进行处理
Elasticsearch是Elastic Stack的核心,是一个分布式搜索和分析引擎。Logstash和Beats有助于收集、聚合和丰富数据,并将其存储在Elasticsearch中。Kibana让你 以交互方式探索、可视化和共享数据的见解,并管理和监控整个堆栈。
Elasticsearch为所有类型的数据提供了近实时的搜索和分析功能。无论你是拥有结构化还是非结构化的文本、数值数据还是地理空间数据,Elasticsearch都能以支持快速搜索的方式高效地存储和索引这些数据。
Elasticsearch 为所有类型的数据提供近乎实时的搜索和分析。无论是 具有结构化或非结构化文本、数字数据或地理空间数据, Elasticsearch 可以以支持快速搜索的方式有效地存储和索引它。 可以远远超出简单的数据检索和汇总信息来发现 数据中的趋势和模式。
应用场景有:
在Elasticsearch中,数据和信息的组织主要依赖于两个核心概念:文档(documents)和索引(indices)。
数据和信息在Elasticsearch中是以文档和索引的形式进行组织和存储的。
文档是数据的基本单位,而索引则是组织和管理这些文档的容器。在Elasticsearch中,通常不会直接操作单个文档,而是通过索引来管理和查询文档集合。
当想要存储一个新的文档时,我们会将它添加到一个索引中;当我们想要搜索文档时,我们会在一个或多个索引中执行查询。索引还可以进行分片(sharding)和复制(replication),以支持水平扩展和高可用性。
在Elasticsearch中,搜索和分析功能是其最为核心和强大的特性之一。通过Elasticsearch,用户可以轻松地执行各种复杂的搜索操作,并对数据进行深入的分析。
Elasticsearch的可扩展性和弹性主要体现在其集群、节点和分片的设计上
综上所述,Elasticsearch通过集群、节点和分片的设计实现了出色的可扩展性和弹性。这种设计使得Elasticsearch能够轻松应对大规模的数据存储和搜索需求,同时保持系统的稳定性和性能。
系统:ubuntu
软件:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.1.0-linux-x86_64.tar.gz
cat >> /etc/hosts << EOF
192.168.92.10 server
EOF
cd /usr/local/src/
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.1.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz
# 创建es用户,生成证书文件
# 新增es用户
useradd es
# 设置密码
passwd es
mv elasticsearch-8.1.0 /usr/local/
# 创建数据文件目录
mkdir -p /usr/local/elasticsearch-8.1.0/data
# 创建证书目录
mkdir -p /usr/local/elasticsearch-8.1.0/config/certs
# 切换目录
cd /usr/local/elasticsearch-8.1.0
# 修改文件拥有者
chown -R es:es /usr/local/elasticsearch-8.1.0
# 签发证书并配置
su es
# 签发ca证书 直接回车两次, 会在当前目录生成一个文件elastic-stack-ca.p12
/usr/local/elasticsearch-8.1.0/bin/elasticsearch-certutil ca
# 用ca证书签发节点证书, 这一步就是为整个集群做安全认证 过程直接回车三次
/usr/local/elasticsearch-8.1.0/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将生成的证书文件移动到 config/certs目录中 mv elastic-stack-ca.p12 elastic-certificates.p12 config/certs/ # 设置集群多节点的http证书 签发http证书 /usr/local/elasticsearch-8.1.0/bin/elasticsearch-certutil http ####### 以下为输出内容: # 是否发出认证证书请求 n Generate a CSR? [y/N]n # 是否使用已经存在的ca证书 y Use an existing CA? [y/N]y # ca证书的路径 /usr/local/elasticsearch-8.1.0/config/certs/elastic-stack-ca.p12 CA Path: /usr/local/elasticsearch-8.1.0/config/certs/elastic-stack-ca.p12 # 输入密码 没有密码,直接回车 Password for elastic-stack-ca.p12: # 证书的有效时间 默认5年 5y For how long should your certificate be valid? [5y] 5y # 是否每个节点都生成证书 不需要 n Generate a certificate per node? [y/N]n # 输入几台主机名称 并做最后的确认 When you are done, press <ENTER> once more to move on to the next step. con02 # 输入几台主机的ip地址 并确认 When you are done, press <ENTER> once more to move on to the next step. 192.168.92.102 # 是否选择证书的配置 否 n Do you wish to change any of these options? [y/N]n # 输入证书的密码 没有密码 直接回车 If you wish to use a blank password, simply press <enter> at the prompt below.Provide a password for the "http.p12" file: [<ENTER> for none] # 生成认证证书的压缩包文件 [/usr/local/elasticsearch-8.1.0/elasticsearch-ssl-http.zip] # Where should we save the generated files? A number of files will be generated including your private key(s), public certificate(s), and sample configuration options for Elastic Stack products. These files will be included in a single zip archive. What filename should be used for the output zip file? [/usr/local/elasticsearch-8.1.0/elasticsearch-ssl-http.zip] Zip file written to /usr/local/elasticsearch-8.1.0/elasticsearch-ssl-http.zip # 解压缩证书文件 并移动文件 unzip elasticsearch-ssl-http.zip cp elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs/ 修改配置文件 # 修改配置文件 vim config/elasticsearch.yml # 设置es集群名称 cluster.name: es-cluster # 设置集群中当前的节点名称 node.name: con02 # 设置数据和日志路径 path.data: /usr/local/elasticsearch-8.1.0/data path.logs: /usr/local/elasticsearch-8.1.0/logs # 设置网络访问节点 network.host: 192.168.92.102 # 设置访问端口 http.port: 9200 # 初始节点 discovery.seed_hosts: ["con02"] # 安全认证 xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true keystore.path: /usr/local/elasticsearch-8.1.0/config/certs/http.p12 truststore.path: /usr/local/elasticsearch-8.1.0/config/certs/http.p12 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: /usr/local/elasticsearch-8.1.0/config/certs/elastic-certificates.p12 truststore.path: /usr/local/elasticsearch-8.1.0/config/certs/elastic-certificates.p12 # 此处需要注意,node01为上面配置的节点名称 cluster.initial_master_nodes: ["con02"] http.host: [_local_,_site_] ingest.geoip.downloader.enabled: false xpack.security.http.ssl.client_authentication: none # 最后的输入内容: # 设置es集群名称 cluster.name: es-cluster ## 设置集群中当前的节点名称 node.name: con02 ## 设置数据和日志路径 path.data: /usr/local/elasticsearch-8.1.0/data path.logs: /usr/local/elasticsearch-8.1.0/logs ## 设置网络访问节点 network.host: 192.168.92.102 # 设置访问端口 http.port: 9200 # 安全认证 xpack.security.enabled: true xpack.security.enrollment.enabled: true xpack.security.http.ssl: enabled: true keystore.path: /usr/local/elasticsearch-8.1.0/config/certs/http.p12 truststore.path: /usr/local/elasticsearch-8.1.0/config/certs/http.p12 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: /usr/local/elasticsearch-8.1.0/config/certs/elastic-certificates.p12 truststore.path: /usr/local/elasticsearch-8.1.0/config/certs/elastic-certificates.p12 # 此处需要注意,node01为上面配置的节点名称 cluster.initial_master_nodes: ["con02"] http.host: [_local_,_site_] ingest.geoip.downloader.enabled: false xpack.security.http.ssl.client_authentication: none
# 退出到root修改系统文件内容 exit vim /etc/security/limits.conf 添加---------------------------------------------------------------- * soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096 vi /etc/sysctl.conf 添加---------------------------------------------------------------- vm.max_map_count = 262144 # 使配置生效 重启系统或者 sudo sysctl -p /etc/sysctl.conf reboot # 验证结果 su es ulimit -Hn 65536 ulimit -Sn 65536 exit
##### 注意:第一次启动一定要手动启动 cd /usr/local/elasticsearch-8.1.0/ su es ./bin/elasticsearch # system管理 vim /usr/lib/systemd/system/elasticsearch.service [Unit] Description=elasticsearch After=network.target [Service] Type=simple User=es Group=es LimitNOFILE=100000 LimitNPROC=100000 Restart=no ExecStart=/usr/local/elasticsearch-8.1.0/bin/elasticsearch PrivateTmp=true [Install] WantedBy=multi-user.target # 启动服务 systemctl daemon-reload systemctl start elasticsearch systemctl enable elasticsearch # 重新生成密码: /usr/local/elasticsearch-8.1.0/bin/elasticsearch-reset-password -u elastic 默认账号 https://192.168.92.102:9200 账号 : elastic 密码 : pwYcuJ8aT-h7TvuA0gVu
注意:在修改密码时如果报如下错误,可以查看是配置文件不正确。或者删除证书重新生成
登录地址:https://ip:port
# 查看
curl https://192.168.92.102:9200 -ku 'elastic:pwYcuJ8aT-h7TvuA0gVu'
# 查看索引
curl -ku 'elastic:pwYcuJ8aT-h7TvuA0gVu' https://172.16.1.56:9200/_cat/indicesk
以上是Elastic stack和Elasticsearch的简介,和elasticsearch的安装。后面会写一些常用的Elasticsearch API调用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。