ES+Kibana 部署
机器信息
10.10.8.62 10.10.8.63 10.10.8.64
版本选择:6.8.1
基础环境优化
所有节点
# 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service # 查看selinux getenforce # 关闭selinux setenforce 0 # 永久关闭selinux sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config # 清除iptables 规则 iptables -F # 关闭NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager # 备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 配置源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # 清除缓存 yum clean all # 安装常用命令及依赖 yum install -y net-tools lrzsz vim libaio-devel unzip \ tree libaio-devel lsof sysstat lrzsz ntpdate bash-completion bash-completion-extras # 定时时间同步 cat >>/var/spool/cron/root<<'EOF' # ntp 时间同步 00 00 * * * /usr/sbin/ntpdate ntp.aliyun.com EOF # 时间同步 ntpdate ntp.aliyun.com
ES 优化
所有节点
# 增大文件句柄数 cat >/etc/security/limits.conf<<'EOF' # 所有用户文件打开数 * soft nofile 65536 * hard nofile 65536 # 增大线程池的大小 * soft nproc 9000 * hard nproc 9000 # 关闭内外存交换 * hard memlock unlimited * soft memlock unlimited EOF # 此文件控制上面的文件也要改 cat >/etc/security/limits.d/20-nproc.conf<<'EOF' * soft nproc 9000 root soft nproc unlimited EOF # 虚拟内存 cat >/etc/sysctl.conf<<'EOF' # 增大虚拟内存地址空间 vm.max_map_count=262144 # 系统文件最大打开数 fs.file-max = 2097152 # 减少交换空间的使用 0 - 100 vm.swappiness = 1 # 缓存回收速度 0-100 vm.vfs_cache_pressure = 50 EOF # 生效配置 sysctl -p
安装 jdk
所有节点
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y java -version
安装ES
下载
所有节点
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.1.tar.gz https://artifacts.elastic.co/downloads/kibana/kibana-6.8.1-linux-x86_64.tar.gz
安装
所有节点
# 解压 cd /home/zcsadmin tar xf elasticsearch-6.8.1.tar.gz -C /usr/local/ # 修改工作目录 mv /usr/local/elasticsearch-6.8.1 /usr/local/es6_9200/ # 创建数据目录 mkdir -p /data/es_9200/{data,logs,tmp} # 创建es账号 groupadd es_dkecde useradd es_dkecde -g es_dkecde # 配置环境变量 cat >/etc/profile.d/es_9200.sh<<'EOF' export ES_HOME=/usr/local/es6_9200 export PATH=$PATH:$ES_HOME/bin # 修改 tmp 目录 export ES_TMPDIR=/data/es_9200/tmp EOF # 生效环境变量 source /etc/profile.d/es_9200.sh
配置
创建证书
10.10.8.62 节点
mkdir /usr/local/es6_9200/config/certs/ cd /usr/local/es6_9200/config/certs/ elasticsearch-certutil ca # 一路回车 elasticsearch-certutil cert --ca elastic-stack-ca.p12 # 一路回车
拷贝至其他节点
10.10.8.62 节点
scp -r /usr/local/es6_9200/config/certs zcsadmin@10.10.8.63:/tmp/ scp -r /usr/local/es6_9200/config/certs zcsadmin@10.10.8.64:/tmp/
10.10.8.63/64 节点
mv /tmp/certs /usr/local/es6_9200/config
配置文件
所有节点 注意修改 node.name
# 编写配置文件 cat >/usr/local/es6_9200/config/elasticsearch.yml<<'EOF' cluster.name: test_es # 修改每个节点不同的名字 node.name: es_62 node.master: true node.data: true path.data: /data/es_9200/data path.logs: /data/es_9200/logs network.host: 0.0.0.0 http.port: 9200 transport.tcp.port: 9300 discovery.zen.ping.unicast.hosts: ["10.10.8.62:9300", "10.10.8.63:9300", "10.10.8.64:9300"] indices.fielddata.cache.size: 2% # 最小主节点数 discovery.zen.minimum_master_nodes: 2 # 系统必须设置 unlimited bootstrap.memory_lock: true # 开启集群之间加密 xpack.security.enabled: true xpack.monitoring.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /usr/local/es6_9200/config/certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /usr/local/es6_9200/config/certs/elastic-certificates.p12 EOF
所有节点
# 修改测试机最大使用内存 //三个节点都进行操作 # 生产环境设置可用内存的 50% 但最好不超过 32G sed -i 's#-Xms1g#-Xms512M#g' /usr/local/es6_9200/config/jvm.options sed -i 's#-Xmx1g#-Xmx512M#g' /usr/local/es6_9200/config/jvm.options
启动
systemd 管理
所有节点
# 使用 systemd 管理 cat >/usr/lib/systemd/system/es_9200.service<<'EOF' [Unit] Description=Elasticsearch 9200 Wants=network-online.target After=network-online.target [Service] User=es_dkecde Group=es_dkecde LimitNOFILE=100000 LimitNPROC=100000 Type=simple ExecStart=/usr/local/es6_9200/bin/elasticsearch Restart=on-failure RestartSec=10 StartLimitInterval=10 StartLimitBurst=3 # 设置重启次数 LimitMEMLOCK=infinity PrivateTmp=true [Install] WantedBy=multi-user.target EOF
启动
所有节点
# 授权工作及数据目录 chown -R es_dkecde:es_dkecde /data/es_9200/ chown -R es_dkecde:es_dkecde /usr/local/es6_9200 # 重载 systemd systemctl daemon-reload # 启动 systemctl start es_9200.service # 状态 systemctl status es_9200.service # 开机自启 systemctl enable es_9200.service
配置密码
所有节点
elasticsearch-setup-passwords interactive # 为方便记录设置为相同密码 mypassword
验证
# 查看实例状态 curl -u elastic:'mypassword' -XGET "http://127.0.0.1:9200" # 查看集群状态 curl -u elastic:'mypassword' -XGET "http://127.0.0.1:9200/_cluster/health"
安装 kibana
安装
10.10.8.62 节点
cd /home/zcsadmin tar xf kibana-6.8.1-linux-x86_64.tar.gz -C /usr/local/ mv /usr/local/kibana-6.8.1-linux-x86_64 /usr/local/kibana6
配置
配置证书
10.10.8.62 节点
mkdir /usr/local/kibana6/config/certs cd /usr/local/kibana6/config/certs # 编写证书生成文件 cat >instance.yml<<'EOF' instances: - name: 'kibana6' dns: [ '10.10.8.62' ] EOF # 生成CA证书 elasticsearch-certutil cert ca --pem --in instance.yml --out ./certs.zip # 解压 unzip certs.zip
配置文件
10.10.8.62 节点
cat >/usr/local/kibana6/config/kibana.yml<<'EOF' server.port: 5601 server.host: "0.0.0.0" # 集群地址列表 elasticsearch.hosts: ["http://10.10.8.62:9200", "http://10.10.8.63:9200", "http://10.10.8.64:9200"] elasticsearch.username: "elastic" elasticsearch.password: "mypassword" logging.dest: /var/log/kibana.log i18n.locale: "zh-CN" # 客户端开启 https server.ssl.enabled: true server.ssl.certificate: /usr/local/kibana6/config/certs/kibana6/kibana6.crt server.ssl.key: /usr/local/kibana6/config/certs/kibana6/kibana6.key elasticsearch.ssl.certificateAuthorities: /usr/local/kibana6/config/certs/ca/ca.crt elasticsearch.ssl.verificationMode: certificate EOF
授权
10.10.8.62 节点
touch /var/log/kibana.log chown -R es_dkecde:es_dkecde /var/log/kibana.log chown -R es_dkecde:es_dkecde /usr/local/kibana6
启动
systemd 管理
10.10.8.62 节点
# 使用 systemd 管理 cat >/usr/lib/systemd/system/kibana.service<<'EOF' [Unit] Description=kibana Wants=network-online.target After=network-online.target [Service] User=es_dkecde Group=es_dkecde LimitNOFILE=100000 LimitNPROC=100000 Type=simple ExecStart=/usr/local/kibana6/bin/kibana Restart=on-failure RestartSec=10 StartLimitInterval=10 # 设置重启次数 StartLimitBurst=3 LimitMEMLOCK=infinity PrivateTmp=true [Install] WantedBy=multi-user.target EOF
启动
10.10.8.62 节点
systemctl daemon-reload systemctl start kibana.service systemctl enable kibana.service systemctl status kibana.service