linux安装elasticsearch和kibana

Elasticsearch 是一个分布式搜索服务,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。它可以快速的存储、搜索和分析海量数据。提供Restful API,底层基于Lucene,采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也是采用了ElasticSearch作为其搜索服务。

用途:检索,日志处理和分析,基础设施指标和容器监测,安全分析,业务分析等。

ES和Mysql 进行类比

1、Index(索引)

动词,相当于MySQL中的 insert;
名词,相当于MySQL中的 Database;

2、Type(类型)

在 Index(索引)中,可以定义一个或多个类型。
类似于 MySQL中的 Table;每一种类型的数据放在一起。

3、Document(文档)

保存在某个索引(index)下,某种类型(Type)的一个数据(Document),文档是 JSON 格式的,Document就是MySQL中的某个 Table 里面的内容;

类似关系:

索引—数据库
类型—表
文档—表中的记录
属性—列

在这里插入图片描述

4、倒排索引机制

分词:将整句分拆为单词,在检索的时候然后会给每个记录做相关性得分,然后从高到低情况排除给出。
在这里插入图片描述

Docker安装ES#

1、下载镜像文件

sudo docker pull elasticsearch:7.4.2   # 存储和检索数据
sudo docker pull kibana:7.4.2     # 可视化检索数据

在安装的时候看一下虚拟机内存是否够用,ES非常的吃内存
在这里插入图片描述

free -m

2、创建实例

切换到root用户

su root
> vagrant
2.1、ElasticSearch

创建配置文件目录,将docker内部es的配置文件挂载到外部,方便修改。

mkdir /mydata/elasticsearch/config
mkdir /mydata/elasticsearch/data

# 任何IP都可以访问,注意host和IP中间有空格
echo "http.host: 0.0.0.0" >>/mydata/elasticsearch/config/elasticsearch.yml

创建好目录之后,需要给该目录访问、执行的权限:

chmod -R 777 /mydata/elasticsearch/

运行镜像:

#运行ES
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

与ES交互的端口说明

9200端口

​ RESTful API通过HTTP通信

9300端口

​ Java客户端与ES的原生传输协议和集群交互

ES_JAVA_OPTS指定java虚拟机相关参数

-Xms128m 初始堆内存大小为128m
-Xmx256m 最大堆内存大小为256m
discovery.type=single-node 设置为单点启动
ES默认占内存很大,默认占2G,所以,一般在启动时需要指定固定的内存大小,这里我们设置为 128M。

启动之后,可以查看docker 的ES进程:

[root@localhost mydata]# docker ps

docker启动时加载出现了问题,使用 docker logs 查看启动日志:

然后通过浏览器访问ES:
在这里插入图片描述

Kibana

docker run --name kibana -e ELASTICSEARCH_URL=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.4.2

http://192.168.56.10:9200 一定要改为自己ES虚拟机的地址。

查看是否运行成功:

docker ps

运行kibana

注意写自己的虚拟机ip
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.4.2

docker命令回顾

#列出正在运行的容器
docker ps

#显示所有的容器,包括未运行的
docker ps -a

#列出本地镜像
docker images

#docker删除容器
docker rm containerId

#docker删除镜像
docker rmi IMAGE ID

#启动容器
docker start CONTAINER ID

docker启动容器

[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS                        PORTS                                                                                  NAMES
c628be051a39   kibana:7.4.2          "/usr/local/bin/dumb…"   15 hours ago   Exited (255) 45 minutes ago   0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
ff4f308525ca   elasticsearch:7.4.2   "/usr/local/bin/dock…"   16 hours ago   Exited (255) 45 minutes ago   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
e9687b99f262   redis                 "docker-entrypoint.s…"   2 weeks ago    Up 35 minutes                 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
799d0d600e70   mysql:5.7             "docker-entrypoint.s…"   2 weeks ago    Up 35 minutes                 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
[root@localhost /]# docker start ff4f308525ca
ff4f308525ca
[root@localhost /]# docker start c628be051a39
c628be051a39
[root@localhost /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS          PORTS                                                                                  NAMES
c628be051a39   kibana:7.4.2          "/usr/local/bin/dumb…"   15 hours ago   Up 6 seconds    0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                              kibana
ff4f308525ca   elasticsearch:7.4.2   "/usr/local/bin/dock…"   16 hours ago   Up 33 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
e9687b99f262   redis                 "docker-entrypoint.s…"   2 weeks ago    Up 36 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
799d0d600e70   mysql:5.7             "docker-entrypoint.s…"   2 weeks ago    Up 36 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql
[root@localhost /]#

因为每次启动虚拟机都需要重新启动es和kibana,所以做如下设置,开启虚拟机es和kibana自动启动

[root@localhost /]# docker update ff4f308525ca --restart=always
ff4f308525ca
[root@localhost /]# docker update c628be051a39 --restart=always
c628be051a39
[root@localhost /]#

ik分词器

官网下载

https://github.com/medcl/elasticsearch-analysis-ik/

(1)下载和ES对应的7.4.2版本。将文件解压后放到ES的插件挂载目录下

/mydata/elasticsearch/plugins/ik

(2)修改解压包权限:

chmod -R 777 ik/

(3)进入Es容器内部,查看安装好的插件

# 进入容器的bin目录
bin/

# 查看插件列表
[root@eba6d9092da5 bin]# elasticsearch-plugin list
ik

(4)重启es

(5)测试

POST _analyze
{
  "tokenizer": "ik_smart",
  "text": "天龙八部"
}

使用xshell连接vm

[root@localhost plugins]# vi /etc/ssh/sshd_config
[root@localhost plugins]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service

进入 /etc/ssh/sshd_config开启yes

#  “PasswordAuthentication”设置是否允许口令验证
PasswordAuthentication yes

再次用xshell连接vm即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值