2、ELK-部署-手动源码包部署
1、部署jdk
2、部署elasticsearch
-----------------------------------
[root@mes ~]# useradd elsearch #创建运行用户
[root@mes ~]# echo "123456" | passwd --stdin "elsearch" #设置密码
[root@mes ~]# tar xzf elasticsearch-6.5.4.tar.gz -C /usr/local/
[root@mes ~]# cd /usr/local/elasticsearch-6.5.4/config/
[root@mes config]# cp elasticsearch.yml elasticsearch.yml.bak #备份
[root@mes config]# vim elasticsearch.yml
# 在最后一行添加如下内容
cluster.name: elk
node.name: elkyjssjm
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
#discovery.zen.ping.unicast.hosts: ["192.168.246.234", "192.168.246.231","192.168.246.235"]
#discovery.zen.minimum_master_nodes: 2
#discovery.zen.ping_timeout: 150s
#discovery.zen.fd.ping_retries: 10
#client.transport.ping_timeout: 60s
-------------------------------------------------------------------------------------------------------------
参数详解:
------------------------------------------------------
cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.master 指示某个节点是否符合成为主节点的条件。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
path.data 数据存储目录。
path.logs 日志存储目录。
bootstrap.memory_lock 内存锁定,是否禁用交换。
bootstrap.system_call_filter 系统调用过滤器。
network.host 绑定节点IP。
http.port 端口。
discovery.zen.ping.unicast.hosts 提供其他 Elasticsearch 服务节点的单点广播发现功能。
discovery.zen.minimum_master_nodes 集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping_timeout 节点在发现过程中的等待时间。
discovery.zen.fd.ping_retries 节点发现重试次数。
http.cors.enabled 是否允许跨源 REST 请求,表示支持所有域名,用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。
-------------------------------------------------------------------------------------------------------
设置jvm堆栈大小
设置JVM堆大小,一般设置为内存的一半,但最少2G
[root@mes ~]# sed -i 's/-Xms1g/-Xms2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options
[root@mes ~]# sed -i 's/-Xmx1g/-Xmx2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options
创建ES数据及日志存储目录并修改属主和属组,与上面配置文件中的路径一一对应
[root@mes ~]# mkdir -p /data/elasticsearch/data
[root@mes ~]# mkdir -p /data/elasticsearch/logs
[root@mes ~]# chown -R elsearch:elsearch /data/elasticsearch #给刚刚创建的目录修改属主和属组
[root@mes ~]# chown -R elsearch:elsearch /usr/local/elasticsearch-6.5.4
配置进程数
系统优化:
1.增加最大进程数
[root@mes ~]# vim /etc/security/limits.conf
#在文件最后面添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
================================================================
解释:
soft xxx : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。
hard xxx : 代表严格的设定,不允许超过这个设定的值。
nofile : 是每个进程可以打开的文件数的限制
nproc : 是操作系统级别对每个用户创建的进程数的限制
================================================================
2.增加最大内存映射数
[root@mes ~]# vim /etc/sysctl.conf
#添加如下
vm.max_map_count=262144 #elasticsearch用户拥有的内存权限太小,至少需要262144;
vm.swappiness=0 #表示最大限度使用物理内存,在内存不足的情况下,然后才是swap空间
3、执行sysctl -p 使配置生效:
--------------------------------------
#提示错误:
[root@elsearch vm]# sysctl -p
sysctl: cannot stat /proc/sys/vm/max_map_conut: 没有那个文件或目录
#这时即使使用vim 去编辑这个文件/proc/sys/vm/max_map_conut是无法直接编辑的、直接echo把参数写进去
·echo "262144" > /proc/sys/vm/max_map_conut
再切换到elsearch用户再启动 elasticsearch
---------------------------------------------------------------------------------------------------
启动elasticsearch
[root@mes ~]# su - elsearch
Last login: Sat Aug 3 19:48:59 CST 2019 on pts/0
[root@mes ~]$ cd /usr/local/elasticsearch-6.5.4/
[root@mes elasticsearch-6.5.4]$ ./bin/elasticsearch #先启动看看报错不,需要多等一会
终止之后(等cpu降下来再终止)
[root@mes elasticsearch-6.5.4]$ nohup ./bin/elasticsearch & #放后台启动
[1] 11462
nohup: ignoring input and appending output to ‘nohup.out’
[root@mes elasticsearch-6.5.4]$ tail -f nohup.out #看一下是否启动
或者:
su - elsearch -c "cd /usr/local/elasticsearch-6.5.4 && nohup bin/elasticsearch &"
访问网页:http://192.168.177.10:9200/