ES: ES+Kibana 环境部署

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ES: ES+Kibana 环境部署

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


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
11月前
|
数据安全/隐私保护
ES、Kibana 8.0安装
ES、Kibana 8.0安装
183 0
|
4月前
|
SQL 缓存 Linux
干货 | Elasticsearch 8.11 ES|QL 初体验
干货 | Elasticsearch 8.11 ES|QL 初体验
61 0
|
4月前
|
JavaScript Java 开发工具
ElasticSearch实战 之 es的安装和使用
ElasticSearch实战 之 es的安装和使用
178 0
|
10月前
Kibana配置ES集群(6.x版本之前和7.x版本两种写法)
Kibana配置ES集群(6.x版本之前和7.x版本两种写法)
64 0
|
12月前
|
安全 前端开发 Java
Docker部署es和kibana
Docker部署es和kibana
276 1
|
存储 搜索推荐 数据可视化
|
Docker 容器
es应用笔记1-es部署
es应用笔记1-es部署
102 0
|
Java 应用服务中间件
Elasticsearch-Jest 配置ES集群&源码解读
Elasticsearch-Jest 配置ES集群&源码解读
157 0
|
存储 监控 数据可视化
windows安装es、kibana教程
windows安装es、kibana教程
322 0
windows安装es、kibana教程
|
存储 监控 数据安全/隐私保护
【ElasticSearch实战】——ES集群监控 之 Cerebro 0.8.3 安装及简单使用
【ElasticSearch实战】——ES集群监控 之 Cerebro 0.8.3 安装及简单使用
377 0
【ElasticSearch实战】——ES集群监控 之 Cerebro 0.8.3 安装及简单使用