关于shell:Centos7一键部署Kibana7161脚本

4次阅读

共计 3943 个字符,预计需要花费 10 分钟才能阅读完成。

#!/bin/bash
install_es(){

#配置信息
HOSTNAME=`hostname`
#所有节点
NODE_1=node-1
NODE_2=node-2
NODE_3=node-3
NODE_1_IP=10.0.0.21
NODE_2_IP=10.0.0.22
NODE_3_IP=10.0.0.23
#启动用户明码 es_user
ES_USER_PASSWORD=123

cd /etc
    cat > sysctl.conf <<EOF
vm.max_map_count=655350
EOF
sysctl -p

cd /usr/lib/sysctl.d/
    cat >> 00-system.conf <<EOF
net.ipv4.ip_forward=1
EOF
systemctl restart network

ulimit -n
cd /etc/security/
cat > limits.conf <<EOF
* hard nofile 65536
* soft nofile 65536
* hard nproc 65536
* soft nproc 65536
EOF
sysctl -p

#创立 es 用户(ELK 都用自建用户启动)useradd es_user
#批改 es 用户明码
echo "${ES_USER_PASSWORD}" | passwd --stdin es_user
#同一目录
mkdir -p {/data/software,/data/modules}

cd /data/software/
file="elasticsearch-7.16.1-linux-x86_64.tar.gz"
if [! -f $file]; then
    yum install -y wget && wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.1-linux-x86_64.tar.gz
    #exit 0
fi
#解压 elasticsearch 安装包
cd /data/software
tar -zxvf elasticsearch-7.16.1-linux-x86_64.tar.gz -C /data/modules/
cd /data/modules
mv elasticsearch-7.16.1 es

cd /data/modules/es/config
cat > elasticsearch.yml << EOF
#node- 1 配置文件
# 集群名称
cluster.name: my-application
# 集群节点名称
node.name: ${HOSTNAME}
# ES 默认 只容许本地 127.0.0.1 和 [::1] 拜访
# 也能够设置成 0.0.0.0 容许所有 IP 主机拜访
# 如果不配置就默认认为是开发者模式,如果配置不正确会写入正告然而能正确运行
# 如果配置了就会认为进入了生产环境, 如果配置不正确就会降级为异样,ES 无奈正确启动。network.host: 0.0.0.0
# 默认 ES 节点端口 9200,如果是伪集群(在一台服务器上搭建集群),须要批改。http.port: 9200
# 设置数据寄存门路, 倡议批改这个门路到 ES 的装置文件夹里面, 防止 ES 降级误删掉这个文件夹
path.data: /data/modules/es/data/
# 设置日志寄存门路, 倡议批改这个门路到 ES 的装置文件夹里面, 防止 ES 降级误删掉这个文件夹
path.logs: /data/modules/es/log/
# 发现其余节点主机配置 这里配置的是 ES 所在服务器的公网 IP 地址
discovery.seed_hosts: ["${NODE_1_IP}:9300","${NODE_2_IP}:9300","${NODE_3_IP}:9300"]
# 哪些节点能够被选举为主节点配置
cluster.initial_master_nodes: ["${NODE_1}", "${NODE_2}","${NODE_3}"]
EOF

#配置内置 JAVA
cd /data/modules/es/bin
cat >> elasticsearch << EOF
export JAVA_HOME=/data/modules/es/jdk
export PATH=$JAVA_HOME/bin:$PATH
EOF
sleep 1s
# 授予执行权限,modules 文件夹权限受权给 es_user 用户
chmod u+x  /data/modules/es/bin
chown -R es_user:es_user /data/modules/es
# 将 ES 数据存储文件夹权限受权给 es_user 用户
mkdir -p /data/modules/es/data
chown -R es_user /data/modules/es/data
# 将 ES 日志存储文件夹权限受权给 es_user 用户
mkdir -p /data/modules/es/log/
chown -R es_user /data/modules/es/log/

#端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent;
firewall-cmd --zone=public --add-port=9300/tcp --permanent;
firewall-cmd --zone=public --add-service=http --permanent;
firewall-cmd --zone=public --add-service=https --permanent;
firewall-cmd --reload;
firewall-cmd --list-all;

#注册服务项
cd /usr/lib/systemd/system/
cat > es.service << "EOF"
[Unit]
Description=es
After=network.target

[Service]
Type=simple
User=es_user
ExecStart=/data/modules/es/bin/elasticsearch
LimitMEMLOCK=infinity
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
systemctl enable es.service
systemctl start es.service
systemctl status es.service
#手动启动
#.bin/elasticsearch -d -p pid 
}
install_es



docker_kibana(){

#配置信息
HOSTNAME=`hostname`
#所有节点
sudo yum install net-tools -y
IP=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|grep "10."`
NODE_1=node-1
NODE_2=node-2
NODE_3=node-3
MASTER_1_IP=10.0.0.11
NODE_1_IP=10.0.0.21
NODE_2_IP=10.0.0.22
NODE_3_IP=10.0.0.23
#启动用户明码 es_user
ES_USER_PASSWORD=123

cat > docker-compose.yml << EOF
version: '3'
services:
  elasticsearch:                    # 服务名称
    image: elasticsearch:7.16.1      # 应用的镜像
    container_name: elasticsearch   # 容器名称
    restart: always                 # 失败主动重启策略
    environment:                                    
      - node.name=${HOSTNAME}                   # 节点名称,集群模式下每个节点名称惟一
      - network.publish_host=${IP}  # 用于集群内各机器间通信, 其余机器拜访本机器的 es 服务
      - network.host=0.0.0.0     # 设置绑定的 ip 地址,能够是 ipv4 或 ipv6 的,默认为 0.0.0.0
      # es7.x 之后新增的配置,写入候选主节点的设施地址,在开启服务后能够被选为主节点
      - discovery.seed_hosts=${NODE_1_IP},${NODE_2_IP},${NODE_3_IP}        
      # es7.x 之后新增的配置,初始化一个新的集群时须要此配置来选举 master
      - cluster.initial_master_nodes=${NODE_1_IP},${NODE_2_IP},${NODE_3_IP} 
      - cluster.name=es-cluster     # 集群名称,雷同名称为一个集群
      - bootstrap.memory_lock=true  # 内存替换的选项,官网倡议为 true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"    # 设置内存
    ulimits:             
      memlock:
        soft: -1      
        hard: -1
    volumes:
      - /data/modules/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml  # 将容器中 es 的配置文件映射到本地,设置跨域,否则 head 插件无奈连贯该节点
      - esdata:/usr/share/elasticsearch/data  # 存放数据的文件,留神:这里的 esdata 为 顶级 volumes 下的一项。ports:
      - 9200:9200    # http 端口
      - 9300:9300    # es 节点间接交互的端口,非 http
volumes:
  esdata:
    driver: local    # 会生成一个对应的目录和文件,如何查看,上面有阐明。EOF
}
docker_kibana
正文完
 0