Elasticsearch、Kibana、Logstash 安装
1、前言
最近想把ELK技术栈学习总结一番,包括安装、部署及使用,一切推倒重来,今天先来一篇ES的安装,后面的慢慢更新。之前也安装过ES,但是是直接使用tar包在虚拟机上安装,安装倒是不麻烦,就是各种参数调整配置比较头大,比如内核要求、文件权限、线程数、进程的虚拟内存等。Docker普及之后,也是尝到了甜头,所以今天尝试下ES的Docker安装,Docker对虚拟机内核是有要求的,建议使用CentOS7,我这里就是用的CentOS7。
2、Elasticsearch安装
2.1 获取镜像
其实这一步不用也可以,因为在安装镜像的时候本地没有对应的镜像包会自动去远程下载并安装的。
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0
如果拉取比较慢或者直接超时了,配置一下国内的镜像站(镜像站直达链接),
linux下直接将该命令运行即可。其他系统可以根据镜像站提供的方式配置。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
2.2 安装镜像
以守护进程方式安装,对比一下tar包方式,安装非常快,美滋滋。
docker run -id --name=es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.0
查看容器运行情况
docker ps -a
已经在运行了,验证一下,宿主机访问http://192.168.153.129:9200/,效果如下说明ok。
如果确认都没错,但是宿主机就是访问不到,这个时候就要检查下虚拟机的防火墙了,要不直接永久关闭防火墙,要么将9200这个端口开放,这个就不细说了,百度一大把。
2.3 安装IK分词器
ES自带的分词器对汉字支持很差,IK Analysis是一款专门针对汉字的ES分词插件,官网地址:https://github.com/medcl/elasticsearch-analysis-ik。
版本一定要和ES的版本保持一致,要不然就起不来了。
进入ES容器:
docker exec -it es /bin/bash
目录如下:
进入plugins目录,新建一个ik目录,使用下列命令下载:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip
下载完成之后unzip解压至ik目录下即可。
3、Kibana 安装
前面已经安装过了Elasticsearch,接下来就安装它的好基友Kibana,不多说,直接装。
3.1 拉取镜像
docker pull docker.elastic.co/kibana/kibana:7.2.0
3.2 安装镜像
这里先说一下,kibana是需要和你的ES进行通信的,所以安装的时候要link一下,命令如下,部分参数替换成你自己的。
docker run -id --name=kibana --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version}
我的ES容器ID是:7236ac7458b3,name是es
docker run -id --name=kibana --link 7236ac7458b3:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.2.0
安装完成,宿主机访问:http://IP:5601
这就搞定了,新版本界面挺好看,而且对中文完美支持,别忘记关闭防火墙或者开放5601端口。
3.3 测试IK分词
使用post或者get请求测试刚才安装的Ik分词器。
POST _analyze
{
"analyzer": "ik_max_word",
"text": "任何一个服务器随时可能故障或宕机"
}
分词结果:
{
"tokens": [
{
"token": "任何",
"start_offset": 0,
"end_offset": 2,
"type": "CN_WORD",
"position": 0
},
{
"token": "一个",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 1
},
{
"token": "一",
"start_offset": 2,
"end_offset": 3,
"type": "TYPE_CNUM",
"position": 2
},
{
"token": "个",
"start_offset": 3,
"end_offset": 4,
"type": "COUNT",
"position": 3
},
{
"token": "服务器",
"start_offset": 4,
"end_offset": 7,
"type": "CN_WORD",
"position": 4
},
{
"token": "服务",
"start_offset": 4,
"end_offset": 6,
"type": "CN_WORD",
"position": 5
},
{
"token": "器",
"start_offset": 6,
"end_offset": 7,
"type": "CN_CHAR",
"position": 6
},
{
"token": "随时",
"start_offset": 7,
"end_offset": 9,
"type": "CN_WORD",
"position": 7
},
{
"token": "可能",
"start_offset": 9,
"end_offset": 11,
"type": "CN_WORD",
"position": 8
},
{
"token": "故障",
"start_offset": 11,
"end_offset": 13,
"type": "CN_WORD",
"position": 9
},
{
"token": "或",
"start_offset": 13,
"end_offset": 14,
"type": "CN_CHAR",
"position": 10
},
{
"token": "宕机",
"start_offset": 14,
"end_offset": 16,
"type": "CN_WORD",
"position": 11
}
]
}
3、Logstash 安装
拉取镜像
docker pull docker.elastic.co/logstash/logstash:7.2.0