elasticsearch-6.6.0 部署、
環境要求
系統版本 | ip地址規划 | 軟件包版本 |
CentOS Linux release 7.2.1511 (Core) | 192.168.192.100 | elasticsearch-6.6.0 |
CentOS Linux release 7.2.1511 (Core) | 192.168.192.101 | elasticsearch-6.6.0 |
CentOS Linux release 7.2.1511 (Core) | 192.168.192.102 | elasticsearch-6.6.0 |
CentOS Linux release 7.2.1511 (Core) | 192.168.192.112 | logstash-6.6.0.rpm |
CentOS Linux release 7.2.1511 (Core) | 192.168.192.112 | logstash-6.6.0.rpm |
安裝es步驟
系統參數調整
內核參數調整
[root@elk1 ~]# sysctl -p vm.max_map_count = 655360 vm.swappiness = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 360 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000
文件打開句柄參數調整
[root@elk1 ~]# cat /etc/security/limits.conf * soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 elastic soft nofile 65536 elastic hard nofile 65536 elastic - memlock unlimited elastic - nproc 4096
下載 elasticesrach wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz 創建用戶 useradd elastic
elasticsearch6.6.0默認內存需要1G,如果沒有1G內存可能會報錯,如果內存不夠則需要修改配置文件
[root@elk1 config]# egrep -v '^#|^$' jvm.options -Xms20g -Xmx20g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=${ES_TMPDIR} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log 8:-XX:+PrintGCDetails 8:-XX:+PrintGCDateStamps 8:-XX:+PrintTenuringDistribution 8:-XX:+PrintGCApplicationStoppedTime 8:-Xloggc:/var/log/elasticsearch/gc.log 8:-XX:+UseGCLogFileRotation 8:-XX:NumberOfGCLogFiles=32 8:-XX:GCLogFileSize=64m 9-:-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m 9-:-Djava.locale.providers=COMPAT 10-:-XX:UseAVX=2
[root@elk1 config]# cat elasticsearch.yml cluster.name: es6 node.name: node-100 path.data: /opt/data/es path.logs: /opt/logs/es network.host: 192.168.192.100 http.port: 9200 transport.tcp.port: 9300 node.master: true node.data: true discovery.zen.ping.unicast.hosts: ["192.168.192.100:9300", "192.168.192.101:9300", "192.168.192.102:9300"] discovery.zen.minimum_master_nodes: 2 http.cors.enabled: true http.cors.allow-origin: "*" gateway.recover_after_nodes: 2 gateway.recover_after_time: 5m gateway.expected_nodes: 1 #script.engine.groovy.inline.search: on #script.engine.groovy.inline.aggs: on indices.recovery.max_bytes_per_sec: 20mbs
使用elastic普通用戶啟動服務
su elastic 切換elastic用戶 cd /opt/elk/es/bin/ 切換到es目錄 ./elasticsearch -d 手動啟動 -d 后台運行
部署安裝 elasticsearch-head 插件
安裝nodejs
curl -sL https://rpm.nodesource.com/setup_10.x | bash - yum install gcc-c++ make&&sudo yum install -y nodejs git
克隆head插件
[root@elk1 ~]#git clone git://github.com/mobz/elasticsearch-head.git
[root@elk1 ~]#cd ~/elasticsearch-head
[root@elk1 elasticsearch-head]# npm install .
head 修改Gruntfile.js
[root@elk1 elasticsearch-head]# cat Gruntfile.js module.exports = function(grunt) { var fileSets = require("./grunt_fileSets.js"); // Project configuration. grunt.initConfig({ clean: { _site: { src: ['_site'] } }, concat: { vendorjs: { src: fileSets.vendorJs, dest: '_site/vendor.js' }, vendorcss: { src: fileSets.vendorCss, dest: '_site/vendor.css' }, appjs: { src: fileSets.srcJs, dest: '_site/app.js' }, appcss: { src: fileSets.srcCss, dest: '_site/app.css' } }, copy: { site_index: { src: 'index.html', dest: '_site/index.html', options: { process: function( src ) { return src.replace(/_site\//g, ""); } } }, base: { expand: true, cwd: 'src/app/base/', src: [ '*.gif', '*.png', '*.css' ], dest: '_site/base/' }, iconFonts: { expand: true, cwd: 'src/vendor/font-awesome/fonts/', src: '**', dest: '_site/fonts' }, i18n: { src: 'src/vendor/i18n/i18n.js', dest: '_site/i18n.js' }, lang: { expand: true, cwd: 'src/app/lang/', src: '**', dest: '_site/lang/' } }, jasmine: { task: { src: [ fileSets.vendorJs, 'src/vendor/i18n/i18n.js', 'src/app/lang/en_strings.js', fileSets.srcJs ], options: { specs: 'src/app/**/*Spec.js', helpers: 'test/spec/*Helper.js', display: "short", summary: true } } }, watch: { "scripts": { files: ['src/**/*', 'test/spec/*' ], tasks: ['default'], options: { spawn: false } }, "grunt": { files: [ 'Gruntfile.js' ] } }, connect: { server: { options: { hostname: '0.0.0.0', port: 9100, base: '.', keepalive: true } } } }); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-jasmine'); // Default task(s). grunt.registerTask('default', ['clean', 'concat', 'copy', 'jasmine']); grunt.registerTask('server', ['connect:server']); grunt.registerTask('dev', [ 'default', 'watch' ]); };
在 connect添加
server: { options: { hostname: '0.0.0.0', port: 9100, base: '.', }
修改app.js默認地址 鏈接集群配置
[root@elk1 _site]# pwd /root/elasticsearch-head/_site [root@elk1 _site]# cat app.js |grep localhost this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; [root@elk1 _site]# cat app.js |grep localhost -n 4360: this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200"; [root@elk1 _site]# `
/root/elasticsearch-head/_site/app.js里面localhost:9200修改成
[root@elk1 _site]# cat app.js |grep localhost -n 4360: this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.192.100:9200"; [root@elk1 _site]#
啟動head服務器
npm run start & 后台運行