官网下载elk以及filebeat,解压到指定的目录下,官网为:https://www.elastic.co/
因为Elasticsearch 的安装须要在非root用户下安装,并且须要修改系统部分配置,须要给用户配置sudo权限。(也能够修改elasticsearch的执行文件在变量ES_JAVA_OPTS添加以下配置:)java
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
1.添加用户node
useradd elk
2.把解压下来的elasticsearch的目录权限给elk用户apache
chown -R elk /elk/elasticsearch-6.3.2/
3.切换到elk用户修改elasticsearch.yml配置文件json
vim elasticsearch.yml 修改的内容以下: path.data: /data/elastic/data path.logs: /data/elastic/logs network.host: 192.168.199.153 http.port: 9200 若是须要作集群的话就要修改以下,将host1和host2改成本身的主机的ip discovery.zen.ping.unicast.hosts: ["host1", "host2"] #注意须要新建/data/elastic/data和/data/elastic/logs目录,而且目录权限改成elk
4.另外还须要修改系统相关的配置ubuntu
一、修改系统文件句柄数 修改文件(这里须要root用户的权限才能够) vim /etc/security/limits.conf 在文件下面添加elastic 这里为系统用户 elastic - nofile 65536 这里表示只在这个用户下才起做用。 二、修改虚拟内存的大小 vim /etc/sysctl.conf 添加: vm.max_map_count = 262144 查看是否生效: sysctl vm.max_map_count 三、其余状况有: vim /etc/security/limits.conf 添加一行: elk - nproc 2048 其中"elk"为启动elasticsearch的用户
5.启动vim
$ ./bin/elasticsearch
6.查看安装以后的基本状况安全
$ curl -XGET '172.16.144.101:9200/_cat/health?v&pretty'
7.安装x-pack服务器
一、因为6.3.2版本已经集成了x-pack插件,因此能够不用去从新下载了,直接进去x-pack目录 cd /elk/elasticsearch-6.3.2/bin/x-pack 二、首先执行测试版本 curl -H "Content-Type:application/json" -XPOST http://es主机ip:9200/_xpack/license/start_trial?acknowledge=true 三、设置用户名和密码,初始开始会设置 elastic,kibana,logstash_system 用户密码 setup-passwords interactive 四、验证访问是否正常 curl -XGET -u elastic:elastic '172.16.144.101:9200/_cat/health?v&pretty’
8.破解x-pack
首先到官网去申请,下载x-pack的证书并重命名的凭证license.json(须要填写邮箱)app
而后开始破解echarts
一、将x-pack-core-6.3.2.jar备份, cd /elk/elasticsearch-6.3.2/modules/x-pack/x-pack-core cp x-pack-core-6.3.2.jar x-pack-core-6.3.2.jar.back 二、解压x-pack-core-6.3.2.jar的jar包,而后找到下面的两个class文件,使用luyten反编译 org/elasticsearch/xpack/core/XPackBuild.class org/elasticsearch/license/LicenseVerifier.class 三、LicenseVerifier 中有两个静态方法,这就是验证受权文件是否有效的方法,咱们把它修改成所有返回true
package org.elasticsearch.license; import java.nio.*; import java.util.*; import java.security.*; import org.elasticsearch.common.xcontent.*; import org.apache.lucene.util.*; import org.elasticsearch.common.io.*; import java.io.*; public class LicenseVerifier { public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) { return true; } public static boolean verifyLicense(final License license) { return true; } }
package org.elasticsearch.xpack.core; import org.elasticsearch.common.io.*; import java.net.*; import org.elasticsearch.common.*; import java.nio.file.*; import java.io.*; import java.util.jar.*; public class XPackBuild { public static final XPackBuild CURRENT; private String shortHash; private String date; @SuppressForbidden(reason = "looks up path of xpack.jar directly") static Path getElasticsearchCodebase() { final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation(); try { return PathUtils.get(url.toURI()); } catch (URISyntaxException bogus) { throw new RuntimeException(bogus); } } XPackBuild(final String shortHash, final String date) { this.shortHash = shortHash; this.date = date; } public String shortHash() { return this.shortHash; } public String date() { return this.date; } static { final Path path = getElasticsearchCodebase(); String shortHash = null; String date = null; Label_0157: { shortHash = "Unknown"; date = "Unknown"; } CURRENT = new XPackBuild(shortHash, date); } }
四、而后就开始从新编译压缩 javac -cp "$ES_HOME/lib/elasticsearch-6.2.3.jar:/opt/elasticsearch/lib/lucene-core-7.2.1.jar:$ES_HOME/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" LicenseVerifier.java javac -cp "$ES_HOME/lib/elasticsearch-6.2.3.jar:$ES_HOME/lib/lucene-core-7.2.1.jar:$ES_HOME/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar:$ES_HOME/plugins/x-pack/x-pack-core/netty-common-4.1.16.Final.jar:$ES_HOME/lib/elasticsearch-core-6.2.3.jar" XPackBuild.java 五、编译的org.elasticsearch.license.LicenseVerifier.class、org.elasticsearch.xpack.core.XPackBuild.class替换原来的class,从新压缩打包 jar -cvf x-pack-core-6.2.3.jar ./* 六、替换原来的x-pack-core-6.2.3.jar并重启elasticserach、kinaba 七、修改license.json为:
{ "license": { "uid": "1f742aa9-068b-48b6-8b36-c36ff3a39ed7", "type": "platinum", # 修改受权为白金版本 "issue_date_in_millis": 1526860800000, "expiry_date_in_millis": 2524579200999, #修改到期时间 "max_nodes": 100, # 修改最大节点数 "issued_to": "aa", "issuer": "Web Form", "signature": "AAAAAwAAAA2+OXa0Aq7HFDzGSxl1AAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQCi1V5EMmUXsTUKTeVHJugLj0daqCDI/eAALGG2FWAnE7p9F9ZcCNp2cybBmJ8okoxEIvsUVHUEv50eodAzsxR7qYra1j3pbjMY9BSl13DTVByhow+ZbsXojEpxtXPv18Fd88iP7NcQDs/ERI3xQePDl4O3vB1qkpTxZiY+BC/YlCHF4VTz/sGq6PWvT0G7T4oUb91KIB42oFYNvS4SRkv4gvHOQWRkwdthA2dwpf2QNeH/5vMw9VWFV8x7hw+8HTcqkf2De3TFq94VvhWw9ZpXPaO79fuQoj7vR79BHbBLYnlHxMNAEGnzgJwK13DGDnHdoz0mGsCHgUuswn7+nTEX", "start_date_in_millis": 1526860800000 } }
八、最后执行: curl -u elastic:elastic -XPUT 'http://es-ip:port/_xpack/license' -H "Content-Type: application/json" -d @/tmp/license.json
1.直接将下载的包解压到相应的目录便可
2.测试
$ bin / logstash -e'input {stdin {}} output {stdout {}}’ #每次启动都须要去写配置文件,就很少说了
filebeat是从logstash拆分出来的,如今不少logstah的插件的功能都已经移到 不一样的beats下面了 ,具体能够看官方文档 ,filebeat做为一个轻量级的收集日志的工具,效率很高,并且基本不消耗什么主机资源。
1.直接解压安装包到指定的目录下
2.修改filebeat.yml配置文件
vim filebeat.yml 修内容以下: filebeat.inputs: - type: log enabled: true paths: - /tmp/test.log #- c:\programdata\elasticsearch\logs\* fields: document_type: test-info output.logstash: hosts: ["192.168.199.153:5044"]
3.启动测试
$ ./filebeat -e -c filebeat.yml
kibanna是一个界面展现,依赖node.js运行 ,能够展现es的数据,而且能够画图,作数据展现,固然还能够本身作二次开发,利用百度的echarts来做为插件画图
1.直接解压安装包到指定的目录下
2.修改kibana.yml配置文件
server.port: 5601 server.host: "192.168.199.153" elasticsearch.url: "http://192.168.199.153:9200" kibana.index: ".kibana" elasticsearch.username: "kibana" elasticsearch.password: "test@123456"
3.安装x-pack
bin/kibana-plugin install x-pack
4.启动验证
$ ./bin/kibana
为了安全起见,filebeat做为收集日志的客户端,输出到logstash的时候必需要考虑到安全,所以必需要创建安全机制,官方提供了ssl证书来验证
1.filebeat主机和logstash的主机都建立ip san证书
$ vim /etc/pki/tls/openssl.cnf 查找 “[v3_ca]” 部分,在此字段下方添加logstash服务器的IP, subjectAltName = IP:192.168.199.153 mkdir -p pki/tls/certs mkdir -p pki/tls/private openssl req -subj '/CN=YOURIP/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout pki/tls/private/filebeat.key -out pki/tls/certs/filebeat.crt
2.将证书所在文件传到对方的主机上去
3.修改logstash的过滤启动的配置文件
vim /elk/logstash-6.3.2/config/test2.conf input { beats { port => 5044 ssl => true ssl_certificate_authorities => ["filebeat端传来的证书所在位置"](能够添加多个不一样的filebaet主机的证书) ssl_certificate => "本端生成的证书所在的位置" ssl_key => "/本端生成的密钥所在的位置" ssl_verify_mode => "force_peer" } }
4.修改filebeat.yml文件
ssl.certificate_authorities: ["logstash端传来的证书所在位置"] ssl.certificate: "本机生成的证书所在的位置" ssl.key: "本机生成的密钥所在的位置"