ElasticSearch 7.x 集群 + Kibana 部署完全指南(5节点)_kibana配置es集群
ElasticSearch 7.x 集群 + Kibana 部署完全指南(5节点)
一、基础环境准备
1. 系统要求
- CentOS 7+/Ubuntu 18.04+
- JDK 11+(Elasticsearch 7自带JDK)
- 内存:建议每个节点≥8GB
- 磁盘:≥50GB(根据数据量调整)
2. 用户与权限配置
# 创建专用用户useradd es# 创建数据/日志目录mkdir -p /app/eschown es:es /app/es# 设置密码passwd es# 切换用户su - es
二、Elasticsearch 集群部署
1. 软件包部署
# 下载地址(需提前上传)# 百度网盘: https://pan.baidu.com/s/1IFtK2ogPAWkQBK_FZlbz3A 提取码: 9gkf# 上传到/app/es目录# 解压安装cd /app/estar -zxvf elasticsearch-7.17.23-linux-x86_64.tar.gz
2. 关键配置文件
(1) jvm.options(内存配置)
# 建议设置为物理内存的50%,不超过32GB-Xms4g-Xmx4g
(2) elasticsearch.yml(集群配置)
#集群名称cluster.name: es-cluster#节点名称node.name: node1# 绑定IP地址network.host: 20.26.223.119# 数据目录path.data: /app/es/elasticsearch-7.17.23/data# 日志目录path.logs: /app/es/elasticsearch-7.17.23/logs# 指定服务访问端口http.port: 9200# 指定API端户端调用端口transport.tcp.port: 9300#集群通讯地址discovery.seed_hosts: [\"20.26.223.119:9300\", \"20.26.223.120:9300\",\"20.26.223.121:9300\",\"20.26.223.122:9300\",\"20.26.223.123:9300\"]#集群初始化能够参选的节点信息cluster.initial_master_nodes: [\"node1\", \"node2\",\"node3\",\"node4\",\"node5\"]#开启跨域访问支持,默认为falsehttp.cors.enabled: true##跨域访问允许的域名, 允许所有域名http.cors.allow-origin: \"*\"# 单机启动es实例的个数node.max_local_storage_nodes: 5xpack.security.enabled: false
3. 多节点配置差异
4. 启停管理脚本
▶️ 启动脚本 start_es.sh
#!/bin/bash # 定义脚本所在的目录SCRIPT_DIR=\"$(dirname \"$0\")\"# 切换到脚本所在的目录cd \"$SCRIPT_DIR\"# 启动 Elasticsearch 服务./bin/elasticsearch -d# 检查启动是否成功if [ $? -eq 0 ]; then echo \"Elasticsearch started successfully.\"else echo \"Failed to start Elasticsearch.\"fi
⏹️ 停止脚本 stop_es.sh
#!/bin/bash # 定义脚本所在的目录SCRIPT_DIR=\"$(dirname \"$0\")\"# 切换到脚本所在的目录cd \"$SCRIPT_DIR\"# 查找 Elasticsearch 进程ELASTICSEARCH_PROCESSES=$(pgrep -f \"elasticsearch\")# 如果找到了 Elasticsearch 进程if [ -n \"$ELASTICSEARCH_PROCESSES\" ]; then # 将进程 ID 分割成数组 IFS=\' \' read -r -a PROCESSES <<< \"$ELASTICSEARCH_PROCESSES\" # 遍历每个进程 ID 并终止 for PROCESS in \"${PROCESSES[@]}\"; do # 终止 Elasticsearch 进程 kill \"$PROCESS\" # 检查终止是否成功 if [ $? -eq 0 ]; then echo \"Elasticsearch process $PROCESS stopped successfully.\" else echo \"Failed to stop Elasticsearch process $PROCESS.\" fi doneelse echo \"No Elasticsearch processes found.\"fi
使用说明
chmod +x *.sh# 启动./start_es.sh# 停止./stop_es.sh
三、系统配置(root执行)
1. 内核参数调整
vim /etc/security/limits.conf# End of file* hard core 0* soft core 0* hard nofile 102400* soft nofile 102400* soft nproc 65534* hard nproc 65534vim /etc/sysctl.confvm.max_map_count=655360重新加载配置sudo sysctl -p
四、集群验证与管理
其余4个节点依次按照这个进行配置
1. 健康状态检查
curl -XGET \'http://20.26.223.119:9200/_cat/health?v&pretty\'
2. 节点状态查看
五、Kibana 监控部署
1. Kibana 安装
链接: https://pan.baidu.com/s/1jLnZRYG7HUCjaH7869oqQQ 提取码: 1x7k
tar -zxvf kibana-7.17.23-linux-x86_64.tar.gz -C /app/es/
2. 配置文件 kibana.yml
server.host: \"0.0.0.0\"elasticsearch.hosts: [\"http://20.26.223.119:9200\",\"http://20.26.223.120:9200\",\"http://20.26.223.121:9200\",\"http://20.26.223.122:9200\",\"http://20.26.223.123:9200\"]i18n.locale: \"zh-CN\"
3. 服务管理脚本
kibana.sh
#!/bin/bashKIBANA_HOME=/app/es/kibana-7.17.23-linux-x86_64case $1 in start) nohup $KIBANA_HOME/bin/kibana >> $KIBANA_HOME/logs/kibana.log 2>&1 & echo \"kibana start\" ;; stop) # 这里主要是通过网络端口5601寻找kibana进程的pid kibana_pid_str=`netstat -tlnp |grep 5601 | awk \'{print $7}\'` kibana_pid=`echo ${kibana_pid_str%%/*}` kill -9 $kibana_pid echo \"kibana stopped\" ;; restart) kibana_pid_str=`netstat -tlnp |grep 5601 | awk \'{print $7}\'` kibana_pid=${kibana_pid_str%%/*} kibana_pid=`echo ${kibana_pid_str%%/*}` kill -9 $kibana_pid echo \"kibana stopped\" nohup $KIBANA_HOME/bin/kibana >>/dev/null 2>&1 & echo \"kibana start\" ;; status) kibana_pid_str=`netstat -tlnp |grep 5601 | awk \'{print $7}\'` if test -z $kibana_pid_str; then echo \"kibana is stopped\" else pid=`echo ${kibana_pid_str%%/*}` echo \"kibana is started,pid:\"${pid} fi ;;*) echo \"start|stop|restart|status\" ;;esac