环境
系统:centOS6.8/7.0 jdk版本:1.8以上 ELK版本:6.0.1
一、创建部署用户
Elasticsearch 的安装需要在非root用户下安装,而且需要修改系统部分配置,需要给用户配置sudo权限。
- 添加用户
$ useradd elastic
$ passwd elastic
- 给elastic用户用户配置sudo权限
用root编辑 vi /etc/sudoers 在文件的如下位置,为elastic添加一行即可 root ALL=(ALL) ALL elastic ALL=(ALL) ALL
二、登录elastic用户部署
- 安装准备
- 安装jdk
- 安装elasticsearch
- 安装logstash
- 安装filebeat
- 安装Kibana
2.1 安装准备
登录elastic用户下面,创建安装目录,上传安装包。
$ mkdir elk
上传安装包:
- elasticsearch-6.0.1.zip
- logstash-6.0.1.tar.gz
- kibana-6.0.1-linux-x86_64.tar.gz
- filebeat-6.0.1-linux-x86_64.tar.gz
- jdk-8u151-linux-x64.tar.gz
2.2 安装jdk
jdk要求:java8以上,oracle’s和openJdk。
- 解压缩安装
$ tar -zxvf jdk-xxx-xxx-xxx.tar.gx -C /path
- 环境配置
$ vi .base_profile
JAVA_HOME=/path/xxx CLASSPAHT=.:$JAVA_HOME/lib.tools.jar ATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
- 验证
$ source .base_profile
$ java -version
2.3 安装elasticsearch
安装方式:解压缩安装
$ unzip Elasticsearch 6.1.0.zip
然后进入到安装目录 启动
$ cd bin $ ./bin/elasticsearch
注意:elasticsearch默认是不能在root用户下启动的。
另外需要修改系统相关配置。
1、修改系统文件句柄数 修改文件(这里需要root用户的权限才可以) /etc/security/limits.conf 在文件下面添加elastic 这里为系统用户 elastic - nofile 65536 这里表示只在这个用户下才起作用
2、修改虚拟内存的大小 修改文件/etc/sysctl.conf 添加: vm.max_map_count = 262144 查看是否生效: sysctl vm.max_map_count
3、其他情况有: /etc/security/limits.conf 添加一行: xxx - nproc 2048 其中"xxx"为启动elasticsearch的用户 /etc/security/limits.d/90-nproc.conf * soft nproc 4096 如果启动在出错,在centOS6以上不支持SecComp 修改修改elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面: bootstrap.memory_lock: false bootstrap.system_call_filter: false
配置config/elasticsearch.yml
基本配置说明
- cluster.name: zhzaEs //集群的名字
- node.name: es01//节点名字
- path.data: /data/es-date//数据存储目录(多个路径用逗号分隔)
- path.logs: /var/log/elasticsearch//日志目录
- network.host: 172.16.144.101 //本机的ip地址
- discovery.zen.ping.unicast.hosts: ["172.16.144.102","172.16.144.103"] //设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点.
- transport.tcp.port: 9300 //设置节点间交互的tcp端口(集群),(默认9300)
- http.port: 9200 //监听端口(默认)
启动:
$ ./bin/elasticsearch
后台启动:
$ ./bin/elasticsearch -d -p pid
查看基本情况
$ curl -XGET '172.16.144.101:9200/_cat/health?v&pretty'
我们也可以得到我们集群中的节点列表
curl -XGET '172.16.144.101:9200/_cat/nodes?v'
安装x-pack安装框架
x-pack是elasticsearch的安全框架、提供安全、监控等相关的插件。但是x-pack是收费项目,基础项目只能提供最基本的功能,如果安装后不付费,会限制使用,可以下载申请证书,试用一年时间,但是网上有破解方法,下面我根据网上破解的方法,将破解的功能安装上。点击破解方法,下面是我已经破解并且已经试用过的安装过程。
安装x-pack
- 上传安装包(最好找对应的版本号,这里对应的是6.0.1)
- 安装(这里file后面跟的是绝对路径,然后y就可以了)
$ bin/elasticsearch-plugin install file:///path/to/file/x-pack-6.1.0.zip
- 重启,设置用户名和密码
$ bin/x-pack/setup-passwords interactive
初始开始会设置 elastic,kibana,logstash_system 用户密码,我设置为: elastic:elastic kibana:kibana logstash_system:logstash_system
- 验证访问
当你安装好x-pack后查看es的健康情况会报错401或者403。而是需要加入用户名和密码。如下
curl -XGET -u elastic:elastic '172.16.144.101:9200/_cat/health?v&pretty’
破解x-pack
- 上传修改过的x-pack-6.0.1.jar和修改下载并重命名的凭证license.json。
- 替换x-pack-6.0.1.jar
$ mv x-pack-6.0.1.jar plugins/x-pack/
- 修改凭证
$ curl -XPUT -u elastic:elastic 'http://172.16.144.103:9200/_xpack/license' -H "Content-Type: application/json" -d @license.json
或者
$ curl -XPUT -u elastic:elastic 'http://172.16.144.103:9200/_xpack/license?acknowledge=true' -H "Content-Type: application/json" -d @license.json
- 测试
$ curl -XGET -u elastic:elastic 'http://172.16.144.103:9200/_xpack/license'
测试结果应该如: { "license" : { "status" : "active", "uid" : "348ddac9-398d-46fb-a0c0-13356e591c88", "type" : "platinum",
"issue_date" : "2017-12-12T00:00:00.000Z", "issue_date_in_millis" : 1513036800000, "expiry_date" : "2049-12-31T16:00:00.999Z", "expiry_date_in_millis" : 2524579200999, "max_nodes" : 100, "issued_to" : "yang kailan (AsiaInfo)", "issuer" : "Web Form", "start_date_in_millis" : 1513036800000 } } 这里的type和expiry_date分别是platinum和2049-12-31T16:00:00.999Z就是修改版本和失效时间。
配置x-pack
- 开启x-pack。config/elasticsearch.yml配置中添加配置: xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
- 关闭x-pack 注销上面配置,然后添加配置
xpack.security.enabled: false xpack.monitoring.enabled: false xpack.graph.enabled: false xpack.watcher.enabled: false
集群中所有节点都替换x-pack-xxx.jar包,然后重启更新签名。
可能出现的错误
{"error":{"root_cause":[{"type":"illegal_state_exception","reason":"Can not upgrade to a production license unless TLS is configured or security is disabled"}],"type":"illegal_state_exception","reason":"Can not upgrade to a production license unless TLS is configured or security is disabled"},"status":500}
解决方法
这个错误,是因为elasticsearch6.0.0,现在更新license文件时,要么配置SSL\TLS,要么就禁用security。
那就临时禁用,更新完了再启用就行了: vim config/elasticsearch.yml xpack.security.enabled: false #xpack.security.transport.ssl.enabled: true 更新完了license后,再改为:
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
2.4 安装logstash
官方提供了yum安装,具体看官方文档 这里是解压缩安装:
上传安装包logstash-6.1.0.tar.gz
解压缩安装
$ tar -zxvf logstash-6.1.0.tar.gz
- 测试
$ bin / logstash -e'input {stdin {}} output {stdout {}}’
配置文件需要写conf文件,这里就不说了。
- 安装x-pack (file 后面是绝对路径)
$ bin/logstash-plugin install file:///path/to/file/x-pack-6.0.1.zip 然后config/logstash.yml配置文件中添加 xpack.monitoring.elasticsearch.username: logstash_system xpack.monitoring.elasticsearch.password: logstashpassword 然后重启就可以了。
2.5 安装filebeat
filebeat是从logstash拆分出来的,现在很多logstah的插件的功能都已经移到 不同的beats下面了 官方也是提供的yum安装,具体可以看官方文档
解压缩安装
- 上传安装包filebeat-6.1.0-linux-x86_64.tar.gz
- 解压缩安装
$ tar -zxvf filebeat-6.1.0-linux-x86_64.tar.gz
- 修改配置文件filebeat.yml,具体配置这里就不说了。
- 启动测试
$ ./filebeat -e -c filebeat.yml
2.6 安装Kibana
kibanna是一个界面展示,依赖node.js运行。下面是解压缩安装过程。
- 上传安装包kibana-6.1.0-linux-x86_64.tar.gz
- 解压缩安装
$ tar -zxvf kibana-6.1.0-linux-x86_64.tar.gz
- 配置config/kibana.yml(默认只要修改下elasticsearch.url就可以了 )
elasticsearch.url: "http://172.16.144.101:9200" 如果需要认证的的话,还需要用户名和密码。 其他配置可以看官方文档。
- 启动验证
$ ./bin/kibana
- 安装x-pack
$ bin/kibana-plugin install file:///path/to/file/x-pack-6.0.1.zip
然后在配置文件kibana.yml添加以下配置: elasticsearch.username: "kibana" elasticsearch.password: "kibanapassword" 重起就可以了。