ElasticStack基本部署
文章目录
ElasticStack基本部署与介绍
1.ELK
ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。
全系的Elastic Stack技术栈包括:
2.ElasticSearch安装与介绍
2.1介绍
Elasticsearch 基于java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
ElasticSearch是Elastic Stack的核心,同时Elasticsearch 是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为Elastic Stack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
2.2下载
https://www.elastic.co/cn/downloads/elasticsearch
2.3配置
下载完以后,先不要解压。可以使用xftp传输至linux,然后创建一个新的文件夹,解压到这个文件夹中。
解压完成后进入该目录:
因为ElasticSearch不支持Root用户直接操作,因此我们需要创建一个elsearch用户
# 添加新用户
useradd elsearch
# 然后通过xftp工具,将刚刚下载的文件传输到linux
# 解压缩
tar -zxvf elasticsearch-7.9.1-linux-x86_64.tar.gz
#重命名
mv elasticsearch-7.9.1/ elasticsearch
因为刚刚我们是使用root用户操作的,所以我们还需要更改一下elasticsearch文件夹的所属,改为elsearch用户
chown elsearch:elsearch elasticsearch/ -R
然后再切换成elsearch用户进行操作# 切换用户
su - elsearch
然后我们就可以对我们的配置文件进行修改了
# 进入到 elsearch下的config目录
cd /elasticsearch/config
#打开配置文件
vim elasticsearch.yml
附上我的配置作为参考
#配置节点
cluster.initial_master_nodes: ["node-1"]
#允许外网访问
network.host: 0.0.0.0
#设置对外暴露的端口
http.port: 9200
#设置节点的名称,要与第一项一致
node.name: node-1
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址
http.cors.allow-origin: "*"
#防止磁盘占用过高
cluster.routing.allocation.disk.threshold_enabled: false
在Elasticsearch中如果,network.host不是localhost或者127.0.0.1的话,就会认为是生产环境,会对环境的要求比较高,我们的测试环境不一定能够满足,一般情况下需要修改2处配置,如下:
# 修改jvm启动参数
vim conf/jvm.options
#根据自己机器情况修改
-Xms128m
-Xmx128m
然后在修改第二处的配置,这个配置要求我们到宿主机器上来进行配置
# 到宿主机上打开文件
vim /etc/sysctl.conf
# 增加这样一条配置,一个进程在VMAs(虚拟内存区域)创建内存映射最大数量
vm.max_map_count=655360
# 让配置生效
sysctl -p
启动ElasticSearch
首先我们需要切换到 elsearch用户
su - elsearch
然后在到bin目录下,执行下面
# 进入bin目录
cd /soft/elsearch/bin
# 后台启动
./elasticsearch -d
启动成功后,访问下面的URL
http://192.168.255.5:9200/
如果出现了下面的信息,就表示已经成功启动了
2.4错误汇总
1.ELASTICSEARCH-HEAD 连接不上ELASTICSEARCH
原因:可能是config/elasticsearch.yml文件的配置问题。
解决方法:
附上我的配置作为参考
#配置节点
cluster.initial_master_nodes: ["node-1"]
#允许外网访问
network.host: 0.0.0.0
#设置对外暴露的端口
http.port: 9200
#设置节点的名称,要与第一项一致
node.name: node-1
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址
http.cors.allow-origin: "*"
#防止磁盘占用过高
cluster.routing.allocation.disk.threshold_enabled: false
2.ElasticSerach 出现 high disk watermark [90%] exceeded on
原因:磁盘空间不足,配置了集群的话,索引会不健康。
解决办法:
在elasticserach.yml配:
cluster.routing.allocation.disk.threshold_enabled: false
3.failed to obtain node locks, tried [[/usr/local/elasticsearch-6.3.2/data/my-application]] with lock
原因是已经有一个elastic进程在启动了(使用后台启动容易引发这个错误),杀掉重启即可。
ps aux | grep elasticsearch
kill - 9 进程ID
4.es启动报错: [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
修改config目录下的 elasticsearch.yml文件
cluster.initial_master_nodes: ["node-1"]
5.elasticsearch7.x安装异常 ERROR: [2] bootstrap checks failed. You must address the points described in th
6.ElasticSearch启动报错,bootstrap checks failed
修改elasticsearch.yml配置文件,允许外网访问。
network.host: 0.0.0.0
7.浏览器访问不到elasticsearch服务
有可能就是linux防火墙忘记关了…
systemctl stop firewalld
3.Beats安装与介绍
3.1介绍
Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticsearch,然后进行后续的数据分析活动。Beats由如下组成:
Packetbeat:是一个网络数据包分析器,用于监控、收集网络流量信息,Packetbeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支 持ICMP (v4 and v6)、DNS、HTTP、Mysql、PostgreSQL、Redis、MongoDB、Memcache等协议;
Filebeat:用于监控、收集服务器日志文件,其已取代 logstash forwarder;
Metricbeat:可定期获取外部系统的监控指标信息,其可以监控、收集 Apache、HAProxy、MongoDB MySQL、Nginx、PostgreSQL、Redis、System、Zookeeper等服务;
Beats和Logstash其实都可以进行数据的采集,但是目前主流的是使用Beats进行数据采集,然后使用 Logstash进行数据的分割处理等,早期没有Beats的时候,使用的就是Logstash进行数据的采集。
3.2下载
3.3配置
这里以Filebeat为例,其它的beats都差不多。
下载完以后,先不要解压。可以使用xftp传输至linux,然后创建一个新的文件夹,解压到这个文件夹中。
解压完成后进入该目录:
后期如果要使用,需要创建一个yml文件,然后使用该yml文件来启动filebeat。
关于yml文件的格式,下面以filebeat连接kafka的yml文件为例:
version: "2.13-2.7.1"
filebeat.inputs:
- type: log
enabled: true
paths:
- /home/admin/*.log #监听的日志文件
filebeat.config.modules:
path: ../modules.d/*.yml
reload.enabled: true
setup.template.settings:
index.number_of_shards: 3
output.kafka:
enabled: true
hosts: ["127.0.0.1:9093"] # kafka集群配置
topic: test03 #kafka 订阅的主题
4.Kibana安装与介绍
4.1介绍
Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。
4.2下载
https://www.elastic.co/cn/downloads/kibana
4.3配置
下载完以后,先不要解压。可以使用xftp传输至linux,然后创建一个新的文件夹,解压到这个文件夹中。
解压完成后进入该目录:
后期如果要使用,需要先修改config目录中的配置文件。
5.Logstash安装与介绍
5.1.介绍
Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch)
5.2下载
https://www.elastic.co/cn/downloads/logstash
5.3配置
下载完以后,先不要解压。可以使用xftp传输至linux,然后创建一个新的文件夹,解压到这个文件夹中。
解压完成后进入该目录:
后期如果要使用,需要先修改config目录中的配置文件。