Elasticsearch基于java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,resful风格接口,多数据源,自动搜索负载等。
Logstash基于java,是一个开源的用于收集,分析和存储日志的工具。
Kibana基于nodejs,也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以汇总、分析和搜索重要数据日志。
Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticearch,然后进行后续的数据分析活动
https://www.elastic.co/cn/downloads/elasticsearch
# 添加用户名
useradd elsearch
# 为itcast目录更改为elsearch用户权限
chown elsearch:elsearch itcast/ -R
#设置ip地址,任务网络均可访问
network.host: 0.0.0.0
#放开http.port:9200
http.port: 9200 #这里就是访问ES的端口
#放开node.name,集群模式下,放开cluster.name
node.name: node-1
#数据存储和日志存储路径放开注释
path.data: /itcast/es/elasticsearch-7.15.0/data
path.logs: /itcast/es/elasticsearch-7.15.0/logs
#说明:在Elasticsearch中如果,network.host不是localhost或者127.0.0.1的话,就会认为是生成环境,会对环境的要求比较高,我们的测试环境不一定能够满足,一般情况下需要修改两处配置,如下:
#1:修改jvm启动参数
vim config/jvm.options
-Xms128m #根据自己机器情况修改
-Xmx128m
#2:一个进程在VMAs(虚拟内存区域)创建内存映射量最大数量
vim /etc/sysctl.conf
vm.max_map_count=655360
#配置生效
sysctl -p
#启动ES服务
su - elsearch
cd bin
./elasticsearch 或 ./elasticsearch -d #后台系统
#问题1:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
#解决1:切换到root用户,编辑limits.conf添加类似如下内容
vim /etc/security/limits.conf
#添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
#问题2:max number of threads [1024] for user [elsearch] is too low,increase to at least [4096]
#解决2:切换到root用户,进入limits.d目录下修改配置文件
vim /etc/security/limits.d/90-nproc.conf
#修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 4096
#问题3:system call filters failed to install;check the logs and fix your configuration or disable system call filters at your own risk
#解决3:Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true
vim config/elasticsearch.yml
#添加
bootstrap.system_call_filter: false
#问题4: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
#解决4:多节点添加多个ip地址,单节点可以写按默认的来
cluster.initial_master_nodes: ["node-1"] #这里的node-1为node-name配置的值
#在root用户下关闭防火墙:
#centos6,关闭方式
chkconfig iptables off
#centos7,关闭方式
systemctl stop firewalld.service
# 查询看进程
jps
# 停止指定进程
kill -9 进程id
由于ES官网并没有为ES提供界面管理工具,仅仅是提供了后台的服务。elasticsearch-head是一个为ES开发的一个页面客户端工具,其源码托管于GitHub,地址为:http://github.com/mobz/elasticsearch-head
head提供了4种安装方式:
#拉取镜像
docker pull mobz/elasticsearch-head:5
#创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
#启动容器
docker start elasticsearch-head
这里我不小心,输错了容器名称。抱歉哈!!!
注意:
由于前后端分离开发,所有会存在跨域问题,需要在服务端做CORS的配置,如下:
vim elasticsearch.yml
# 内容如下
http.cors.enabled: true
http.cors.allow-origin: "*"
打开chrome的应用商店,即可安装https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm
通过chrome插件的方式安装不存在跨域问题