1. 建议安装顺序
Elasticsearch->X-Pack for Elasticsearch->Kibana->X-Pack for Kibana->Logstash->Beats->Elasticsearch Hadoop
注意:我们将所有组件都安装在Centos7的/opt/bigdata目录中,集群环境的ip地址设置为:
192.168.88.201 cluster201
192.168.88.202 cluster202
192.168.88.203 cluster203
Elasticsearch在三台上都安装,构建成一个集群vm-cluster
Kibana安装在cluster201机器上
所有安装包下载地址:https://www.elastic.co/cn/downloads
2.Elasticsearch安装
Elasticsearch集群中的三种角色:
- master node:master节点主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等。
- data node:data 节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源.
- client node:client 节点起到路由请求的作用,实际上可以看做负载均衡器。
其对应的高性能集群拓扑结构模式为:
# 配置文件中给出了三种配置高性能集群拓扑结构的模式,如下:
# 1. 如果你想让节点从不选举为主节点,只用来存储数据,可作为负载器
# node.master: false
# node.data: true
# 2. 如果想让节点成为主节点,且不存储任何数据,并保有空闲资源,可作为协调器
# node.master: true
# node.data: false
# 3. 如果想让节点既不称为主节点,又不成为数据节点,那么可将他作为搜索器,从节点中获取数据,生成搜索结果等
# node.master: false
# node.data: false
config/elasticsearch.ymal中配置项说明:
cluster_name 集群名称,默认为elasticsearch
node.name配置节点名,用来区分节点
network.host 是配置可以访问本节点的路由地址
http.port 路由地址端口
transport.tcp.port TCP协议转发地址端口
node.master 是否作为集群的主结点 ,值为true或false
node.data 是否存储数据,值为true或false
discovery.zen.ping.unicast.hosts 用来配置所有用来组建集群的机器的IP地址,由于5.5.0新版本是不支持多播的,因此这个值需要提前设定好,当集群需要扩展的时候,该值都要做改变,增加新机器的IP地址,如果是在一个ip上,要把TCP协议转发端口写上
discovery.zen.minimum_master_nodes 用来配置主节点数量的最少值,如果主节点数量低于该值,闭包范围内的集群将会停止服务,之所以加粗体,是因为暂时尚未认证,下面配置为1方便集群更容易形成,即使只有一个主节点,也可以构建集群
gateway.* 网关的相关配置
script.* indices.* 根据需求添加的配置(可选)
下面进行集群搭建:
先在cluster201机器上下载解压,并修改好配置文件,然后复制到其他两台机器上
[hadoop@cluster201 bigdata]$ pwd
/opt/bigdata
[hadoop@cluster201 bigdata]$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
[hadoop@cluster201 bigdata]$ unzip elasticsearch-5.5.0.zip
[hadoop@cluster201 bigdata]$ cd elasticsearch-5.5.0
[hadoop@cluster201 elasticsearch-5.5.0]$ vim config/elasticsearch.yml
修改配置文件中以下配置项
cluster.name: vm-cluster
node.name: cluster-201
node.master: true
node.data: true
path.data: /opt/bigdata/elasticsearch-5.5.0/data
path.logs: /opt/bigdata/elasticsearch-5.5.0/logs
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.88.201:9300", "192.168.88.202:9300", "192.168.88.203:9300"]
discovery.zen.minimum_master_nodes: 1
然后将配置好的Elasticsearch包压缩拷贝到其他两台机器上
[hadoop@cluster201 elasticsearch-5.5.0]$ cd ..
[hadoop@cluster201 bigdata]$ pwd
/opt/bigdata
[hadoop@cluster201 bigdata]$ tar -zvcf elasticsearch-5.5.0.tar.gz elasticsearch-5.5.0
[hadoop@cluster201 bigdata]$ scp elasticsearch-5.5.0.tar.gz 192.168.88.202:/opt/bigdata
[hadoop@cluster201 bigdata]$ scp elasticsearch-5.5.0.tar.gz 192.168.88.203:/opt/bigdata
然后分别登录到其他两台机器上解压压缩包,并修改以下配置文件中的node.name配置,分别改为cluster-202、cluster-203
分别在三台机器上启动Elasticsearch,命令如下:
# -d选项表示在后台运行
[hadoop@cluster201 bigdata]$ ./elasticsearch-5.5.0/bin/elasticsearch -d
停止可以先用ps命令查看进程id然后用ps quit pid停止
注意:按上述方式安装后在启动时可能会遇到如下错误:
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方法如下:
对于问题[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改/etc/security/limits.conf文件,添加或修改如下行:
* hard nofile 65536
* soft nofile 65536
对于问题[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改 /etc/sysctl.conf 文件,添加 “vm.max_map_count”设置
vm.max_map_count = 262144
设置后使用如下命令使其生效:
[hadoop@cluster201 bigdata]$ sysctl -p
在线安装X-Pack for Elasticsearch:
[hadoop@cluster201 elasticsearch-5.5.0]$ cd bin/
[hadoop@cluster201 bin]$ ./elasticsearch-plugin install x-pack
-> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.
Continue with installation? [y/N]y
-> Installed x-pack
安装成功后默认为开启权限验证模块,默认会创建三个用户:elastic,kibana,logstash_system,默认密码均问changeme
3.安装Kibana
Kibana只需在cluster201机器上安装即可
下载并解压Kibana
[hadoop@cluster201 bigdata]$ pwd
/opt/bigdata
[hadoop@cluster201 bigdata]$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
[hadoop@cluster201 bigdata]$ tar -zvxf kibana-5.5.0-linux-x86_64.tar.gz
[hadoop@cluster201 bigdata]$ cd kibana-5.5.0-linux-x86_64
[hadoop@cluster201 bigdata]$ vim kibana-5.5.0-linux-x86_64/config/kibana.yml
config/kibana.yml中配置项说明:
server.port : 默认值 : 5601 Kibana 由后端服务器提供服务。此设置指定要使用的端口。
server.host : 默认值 : “localhost” 此设置指定后端服务器的主机。
server.basePath : 使您能够指定如果您在代理后运行的 Kibana 的路径。这只影响 Kibana 生成的 URL,您的代理应该在转发请求到 Kibana 之前删除 basePath 值。此设置不能以斜杠(/)结尾。
server.maxPayloadBytes : 默认值 : 1048576 传入服务器请求的最大有效负载大小(以字节为单位)。
server.name : 默认值 : “your-hostname” 用于标识此 Kibana 实例的可读的显示名称。
server.defaultRoute : 默认值 : “/app/kibana” 此设置指定打开 Kibana 时的默认路由。您可以使用此设置在打开 Kibana 时修改登录页。
elasticsearch.url : 默认值 : “http://localhost:9200” 要用于所有查询的 Elasticsearch 实例的 URL。
elasticsearch.preserveHost : 默认值 : true 当此设置的值为 true 时,Kibana 使用 server.host 设置中指定的主机名。当此设置的值为 false 时,Kibana 使用连接到此 Kibana 实例的主机的主机名。
kibana.index : 默认值 : “.kibana”Kibana 使用 Elasticsearch 中的索引来存储保存的搜索,可视化和仪表板。如果索引不存在,Kibana 将创建一个新索引。
kibana.defaultAppId : 默认值 : “discover” 要加载的默认应用程序。
tilemap.url : Kibana 用于在 tilemap 可视化中显示地图图块的图块服务的 URL。默认情况下,Kibana 从外部元数据服务读取此 URL,但用户仍可以覆盖此参数以使用自己的 Tile Map Service。例如 : "https : //tiles.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree&my_app_name=kibana"
tilemap.options.minZoom : 默认值 : 1 最小缩放级别。
tilemap.options.maxZoom : 默认值 : 10 最大缩放级别。
tilemap.options.attribution : 默认 : "© [Elastic Tile Service](https : //www.elastic.co/elastic-tile-service)" 地图属性字符串。
tilemap.options.subdomains : tile 服务使用的子域的数组。指定带有令牌的 URL 的子域的位置 {s}。
elasticsearch.username : 和 elasticsearch.password : 如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。
server.ssl.cert : 和 server.ssl.key : 分别指向 PEM 格式 SSL 证书和 SSL 密钥文件的路径。这些文件为从 Kibana 服务器到浏览器的传出请求启用 SSL。
elasticsearch.ssl.cert : 和 elasticsearch.ssl.key : 提供 PEM 格式 SSL 证书和密钥文件路径的可选设置。这些文件验证您的 Elasticsearch 后端使用相同的密钥文件。
elasticsearch.ssl.ca : 可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的 PEM 文件的路径。
elasticsearch.ssl.verify : 默认值 : true 要忽略 SSL 证书的有效性,请将此设置的值更改为 false。
elasticsearch.pingTimeout : 默认值 : 值 elasticsearch.requestTimeout 设置以毫秒为单位的时间等待 Elasticsearch 对 PING 作出响应。
elasticsearch.requestTimeout : 默认值 : 30000 等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。
elasticsearch.requestHeadersWhitelist : 默认值 : [ 'authorization' ] 要发送到 Elasticsearch 的 Kibana 客户端头标列表。要发送任何客户端头,请将此值设置为 [](一个空列表)。
elasticsearch.customHeaders : 默认值 : {} 要发送到 Elasticsearch 的(header name)标题名称和值。不管如何配置 elasticsearch.requestHeadersWhitelist,任何自定义的 header 都不能被客户端头覆盖
elasticsearch.shardTimeout : 默认值 : 0 Elasticsearch 等待来自分片的响应的时间(以毫秒为单位)。设置为 0 可禁用。
elasticsearch.startupTimeout : 默认值 : 5000 重试前在 Kibana 启动时等待 Elasticsearch 的时间(以毫秒为单位)。
pid.file : 指定 Kibana 创建进程标识文件的路径。
logging.dest : 默认值 : stdout 允许您指定 Kibana 存储日志输出的文件。
logging.silent : 默认值 : false 将此设置的值设置 true 为禁止所有日志记录输出。
logging.quiet : 默认值 : false 将此设置的值设置 true 为禁止除错误消息之外的所有日志记录输出。
logging.verbose : 默认值 : false 将此设置的值设置为 true 记录所有事件,包括系统使用信息和所有请求。
ops.interval : 默认值 : 5000 设置示例系统和过程性能指标的间隔(以毫秒为单位)。最小值为 100。
status.allowAnonymous : 默认值 : false 如果启用了验证,则将此设置为 true 允许未经身份验证的用户访问 Kibana 服务器状态 API 和状态页。
console.enabled : 默认值 : true 设置为 false 可禁用控制台。切换这将导致服务器在下次启动时重新生成资产,这可能会导致在开始投放网页之前出现延迟。
console.proxyFilter : 默认值 : .* 用于验证来自控制台的任何传出请求的正则表达式列表。如果没有匹配,请求将被拒绝。
console.proxyConfig : 基于代理目标的配置选项列表。使用此选项可以为特定主机设置自定义超时或 SSL 设置。这是通过 match 使用通配符 /globs 定义一组标准来完成的,这将根据每个请求进行检查。然后,来自所有匹配规则的配置将合并在一起,以配置用于该请求的代理。有效匹配关键字 match.protocol,match.host,match.port 和 match.path。所有这些键默认为 *,这意味着它们将匹配任何值。有关示例,请参阅配置控制台。
elasticsearch.tribe.url : 用于所有查询的 Elasticsearch 部落实例的可选 URL。
elasticsearch.tribe.username : 和 elasticsearch.tribe.password : 如果您的 Elasticsearch 受基本认证保护,这些设置提供 Kibana 服务器用于在启动时对 Kibana 索引执行维护的用户名和密码。您的 Kibana 用户仍需要使用通过 Kibana 服务器代理的 Elasticsearch 进行身份验证。
elasticsearch.tribe.ssl.cert : 和 elasticsearch.tribe.ssl.key : 提供 PEM 格式 SSL 证书和密钥文件路径的可选设置。这些文件验证您的 Elasticsearch 后端使用相同的密钥文件。
elasticsearch.tribe.ssl.ca : 可选设置,使您能够为 Elasticsearch 实例指定证书颁发机构的 PEM 文件的路径。
elasticsearch.tribe.ssl.verify : 默认值 : true 要忽略 SSL 证书的有效性,请将此设置的值更改为 false。
elasticsearch.tribe.pingTimeout : 默认值 : 值 elasticsearch.tribe.requestTimeout 设置以毫秒为单位的时间等待 Elasticsearch 对 PING 作出响应。
elasticsearch.tribe.requestTimeout : 默认值 : 30000 等待来自后端或 Elasticsearch 的响应的时间(以毫秒为单位)。此值必须为正整数。
elasticsearch.tribe.requestHeadersWhitelist : 默认值 : [ 'authorization' ] 要发送到 Elasticsearch 的 Kibana 客户端 header 列表。要发送任何客户 header,请将此值设置为[](一个空列表)。
elasticsearch.tribe.customHeaders : 默认值 : {} 要发送到 Elasticsearch 的 header name 和 value。不管如何配置 elasticsearch.tribe.requestHeadersWhitelist,任何自定义的 header 都不能被客户端的 header 覆盖。
修改配置文件中的如下项:
server.host: "0.0.0.0"
elasticsearch.url: "http://localhost:9200"
elasticsearch.username: "kibana"
elasticsearch.password: "changeme"
在线安装X-Pack for Kibana:
[hadoop@cluster201 bigdata]$ cd kibana-5.5.0-linux-x86_64/bin
[hadoop@cluster201 bin]$ ./kibana-plugin install x-pack
Attempting to transfer from x-pack
Attempting to transfer from https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-5.5.0.zip
Transferring 119276235 bytes....................
Transfer complete
Retrieving metadata from plugin archive
Extracting plugin archive
Extraction complete
Optimizing and caching browser bundles...
Plugin installation complete
然后启动Kibana:
[hadoop@cluster201 bigdata]$ cd kibana-5.5.0-linux-x86_64/
# 使用nohup让其后台运行
[hadoop@cluster201 kibana-5.5.0-linux-x86_64]$ nohup bin/kibana &
[1] 3205
[hadoop@cluster201 kibana-5.5.0-linux-x86_64]$ nohup: 忽略输入并把输出追加到"nohup.out"
然后在浏览器中访问http://192.168.88.201:5601即可查看Kibana界面
4.参考资料
http://blog.csdn.net/gamer_gyt/article/details/59077189
http://blog.csdn.net/kongxx/article/details/52993057
http://blog.csdn.net/jiankunking/article/details/65448030
http://cwiki.apachecn.org/pages/viewpage.action?pageId=8159438