目录

一、ELK是什么?

二、ES安装

1、下载ES

 2、安装

3、容器安装

三、head插件安装

1、head插件主要用途

2、安装

3、运行


一、ELK是什么?

ElasticStack(ELK)=elasticsearch+Logstash+kibana elasticsearch:后台分布式存储以及全文检索logstash:       日 志 加 工 、 “ 搬 运 工 ” kibana:数据可视化展示。

ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合,取长补短,共同完成分布式大数据处理工作。

ELK优化内存 elk 存储_ELK优化内存

二、ES安装

1、下载ES

下载:(文件比较大,建议手动下载)




ELK优化内存 elk 存储_elasticsearch_02



下载网址:


ELK优化内存 elk 存储_elk_03

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

ELK优化内存 elk 存储_elasticsearch_04

注意:es不能在root用户下启动,必须创建新的用户,用来启动es



切换用户: su es

再次启动,发现还是报错,原因:当前用户没有执行权限

ELK优化内存 elk 存储_v9_05

授权:chown -R es:es elasticsearch-6.2.4

ELK优化内存 elk 存储_elasticsearch_06

功,发现elasticsearch已经在es用户下面了,可以启动了,但是启动成功,浏览器不能访问,    因此还需要做如下配置:

配置修改:**

ELK优化内存 elk 存储_elk_07

再次启动:报如下错误

ELK优化内存 elk 存储_elk_08

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量

1. ulimit -Hn
2. ulimit -Sn


ELK优化内存 elk 存储_docker_09

 修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效

1

*               soft

nofile

65536

2

*               hard

nofile

65536

ELK优化内存 elk 存储_docker_10

  1. max number of threads [3818] for user [es] is too low, increase to at least [4096]

可通过命令查看

1. ulimit -Hu
2. ulimit -Su


ELK优化内存 elk 存储_elk_11

问题同上,最大线程个数太低。修改配置文件/etc/security/limits.conf,增加配置

ELK优化内存 elk 存储_elk_12

  1. 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



ELK优化内存 elk 存储_v9_13


误解决完毕:重新启动

ELK优化内存 elk 存储_elk_14


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:

ELK优化内存 elk 存储_ELK优化内存_15

后台


三、head插件安装

1、head插件主要用途

elasticsearch-head是一个用来浏览、与Elastic Search簇进行交互的web前端展示插件。elasticsearch-head是一个用来监控Elastic Search状态的客户端插件。

elasticsearch主要有以下三个主要操作——                                  1)簇浏览,显示簇的拓扑并允许你执行索引(index)和节点层面的操作。

  1. 查询接口,允许你查询簇并以原始json格式或表格的形式显示检索结果。
  2. 显示簇状态,有许多快速访问的tabs用来显示簇的状态。
  3. 支持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

ELK优化内存 elk 存储_elasticsearch_16

 访问:

ELK优化内存 elk 存储_elk_17

 

ELK优化内存 elk 存储_ELK优化内存_18

此时未连接,需要配置才能连接:

修改 Gruntfile.js文件:

ELK优化内存 elk 存储_v9_19

 修改如下:

ELK优化内存 elk 存储_ELK优化内存_20

 修改_site/app.js

修改IP地址,连接elasticsearch

ELK优化内存 elk 存储_elasticsearch_21

启用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 插件

ELK优化内存 elk 存储_docker_22