目录
一、ELK是什么?
二、ES安装
1、下载ES
2、安装
3、容器安装
三、head插件安装
1、head插件主要用途
2、安装
3、运行
一、ELK是什么?
ElasticStack(ELK)=elasticsearch+Logstash+kibana elasticsearch:后台分布式存储以及全文检索logstash: 日 志 加 工 、 “ 搬 运 工 ” kibana:数据可视化展示。
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合,取长补短,共同完成分布式大数据处理工作。
二、ES安装
1、下载ES
下载:(文件比较大,建议手动下载)
下载网址:
2、安装
解压:
1 tar -zxvf elasticsearch-6.2.4.tar.gz
注意:把elasticsearch软件必须放入/home/es(es是新建用户)的目录下,并把elasticsearch设置为
es用户所属
创建日志、数据存储目录:(留作备用,初次先创建)
1. mkdir -p /data/logs/es
2. mkdir -p /data/es/{data,work,plugins,scripts}
创建用户
useradd es -s /bin/bash #es不能在root用户下启动,必须创建新的用户,用来启动es
启动:./elasticsearch
注意:es不能在root用户下启动,必须创建新的用户,用来启动es
切换用户: su es
再次启动,发现还是报错,原因:当前用户没有执行权限
授权:chown -R es:es elasticsearch-6.2.4
功,发现elasticsearch已经在es用户下面了,可以启动了,但是启动成功,浏览器不能访问, 因此还需要做如下配置:
配置修改:**
再次启动:报如下错误
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
1. ulimit -Hn
2. ulimit -Sn
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
1 | * soft | nofile | 65536 |
2 | * hard | nofile | 65536 |
- max number of threads [3818] for user [es] is too low, increase to at least [4096]
可通过命令查看
1. ulimit -Hu
2. ulimit -Su
问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置
- max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改/etc/sysctl.conf文件
1. vi /etc/sysctl.conf
2. sysctl -p #执行命令sysctl -p生效
3. #增加配置vm.max_map_count=262144
误解决完毕:重新启动
1 ./elasticsearch -d
3、容器安装
1. #搜索镜像
2. docker search elasticsearch
3. #拉取镜像
4. docker pull elasticsearch:6.2.4
5. #创建容器
6. docker create --name elasticsearch --net host -e "discovery.type=single- node" -e
7. "network.host=192.168.66.66" elasticsearch:6.2.4
8. #启动
9. docker start elasticsearch
10. #查看日志
11. docker logs elasticsearch
访问容器elasticsearch:
后台
三、head插件安装
1、head插件主要用途
elasticsearch-head是一个用来浏览、与Elastic Search簇进行交互的web前端展示插件。elasticsearch-head是一个用来监控Elastic Search状态的客户端插件。
elasticsearch主要有以下三个主要操作—— 1)簇浏览,显示簇的拓扑并允许你执行索引(index)和节点层面的操作。
- 查询接口,允许你查询簇并以原始json格式或表格的形式显示检索结果。
- 显示簇状态,有许多快速访问的tabs用来显示簇的状态。
- 支持Restful API接口,包含了许多选项产生感兴趣的结果,包括:
第一,请求方式:get,put,post,delete; json请求数据,节点node, 路径path。第二,JSON验证器。
第三,定时请求的能力。
第四,用javascript表达式传输结果的能力。
第五,统计一段时间的结果或该段时间结果比对的能力。
第六,以简单图标的形式绘制传输结果
2、安装
安装步骤:
1. #下载nodejs,head插件运行依赖node
2. wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz
3. #解压
4. tar -xf node-v9.9.0-linux-x64.tar.xz
5. #重命名
6. mv node-v9.9.0-linux-x64 nodeJs
7. #配置文件
8. vim /etc/profile
9. #刷新配置
10. source /etc/profile
11. #查询node版本,同时查看是否安装成功
12. node -v
13. #下载head插件
14. wget https://github.com/mobz/elasticsearch-head/archive/master.zip
15. #解压
16. unzip master.zip
17. #使用淘宝的镜像库进行下载,速度很快
18. npm install -g cnpm --registry=https://registry.npm.taobao.org
19. #进入head插件解压目录,执行安装命令
20. cnpm install
3、运行
1 npm start #启动head插件
启动运行端口为:
9100
访问:
此时未连接,需要配置才能连接:
修改 Gruntfile.js文件:
修改如下:
修改_site/app.js
修改IP地址,连接elasticsearch
启用CORS:
当head插件访问es时,您必须在elasticsearch中启用CORS,否则您的浏览器将拒绝跨域。在elasticsearch配置中:
1 http.cors.enabled: true
您还必须设置,http.cors.allow-origin因为默认情况下不允许跨域。http.cors.allow-origin: "*" 是允许配置的,但由于这样配置的任何地方都可以访问,所以有安全风险。
我在集群安装的时候已经配好了、如果你刚配置、需要重启ElasticSearch服务
1. http.cors.enabled: true
2. http.cors.allow-origin: "*"
访问 head 插件