##(ELK7.9.0生产部署 elasticsearch7.9)
1. 软件下载
百度网盘下载,官方下载太慢了
链接: https://pan.baidu.com/s/1LGFJnIYghJDLAh1TWaKjJg
提取码: ca3b
包含:elasticsearch、kibana、logstash、filebeat、ik、jdk13
如果资源失效请告知我,谢谢,tel/wx:15000227329
2. 系统环境配置
# 内网环境:直接关闭防火墙,减少防火墙规则的维护工作
systemctl stop firewalld
systemctl disable firewalld
# 关闭SElinux安全模组,临时生效
setenforce 0
# 永久生效
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
# 临时生效
swapoff -a
ulimit -n 655360
ulimit -u 40960
s1=`grep -o "DefaultLimitMEMLOCK=infinity" /etc/systemd/system.conf |wc -l`
if [ $s1 -eq 0 ] ; then
cat >> /etc/systemd/system.conf << EOF
# 开启内存锁定设定
DefaultLimitNOFILE=655360
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
EOF
fi
echo "============= 交换区缓存关闭 ==================="
s2=`grep -o "vm.max_map_count=262144" /etc/sysctl.conf |wc -l`
if [ $s2 -eq 0 ] ; then
cat >> /etc/sysctl.conf << EOF
fs.file-max=655360
vm.max_map_count=262144
# 生产部建议设置成0,0是达到临界点,会触发OMM宕机,设置成1,不会宕机,使用最小交换区继续工作,有利于集群安全、稳定
vm.swappiness=1
EOF
fi
source /etc/profile
# 解锁文件限制,655360这里我设置的比较大,65536也可以启动,
当数据量足够大的时候,就会报错,我每小时近100GB的流量,设置大点比较安全
s3=`grep -o "hard memlock unlimited" /etc/security/limits.conf |wc -l`
if [ $s3 -eq 0 ] ; then
cat >> /etc/security/limits.conf << EOF
* soft nofile 655360
* hard nofile 655360
* soft nproc 40960
* hard nproc 40960
* hard memlock unlimited
* soft memlock unlimited
EOF
fi
sysctl -w vm.max_map_count=262144
sysctl -p
正常情况,系统参数设置完这些就足够了
3. es节点配置
3.1 master 节点配置
# 集群名称
cluster.name: sys-log
# 节点名称,要唯一
node.name: es-node-1
# 单一角色配置 master
node.master: true
node.data: false
node.ingest: false
# 服务端口号
http.port: 9200
# 集群通信端口
transport.port: 9300
# 数据存放目录
path.data: /data/node
# 日志存放位置
path.logs: /data/logs
# es绑定的ip地址,根据自己机器ip进行修改
network.host: 192.168.1.1
# 启动初始化,有很多帖子说这里要配置成当前主机,后果是通过初始化多台主机,会让他们形成多个es集群而不是组成一个。
正确的配置:候选节点数组,初始化时就只有一个集群了
cluster.initial_master_nodes: ["es-node-1","es-node-2","es-node-3","es-node-4"]
discovery.seed_hosts: ["192.168.1.1","192.168.1.2","192.168.1.3","192.168.1.4"]
# 生产必须为true,内存锁定检查,目的是内存地址直接映射,减少一次copy时间
bootstrap.memory_lock: true
# 系统过滤检查,防止数据损坏,考虑集群安全,生产设置成false
bootstrap.system_call_filter: false
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
#discovery.zen.minimum_master_nodes: 2
#discovery.zen.fd.ping_timeout: 1m
#discovery.zen.fd.ping_retries: 5
# 自动创建内置安全账户索引,后续做监控,配置下
action.destructive_requires_name: true
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*
xpack.monitoring.enabled: true
xpack.graph.enabled: false
xpack.watcher.enabled: false
xpack.ml.enabled: false
# 是否支持跨域
http.cors.enabled:</