部署ES + Kibana 到生产环境的笔记

目前基于一个ES的应用开发接近完成,需要将App部署到线上进行测试。由于在本地开发是用的Docker,所以切换到线上还需要在Linux(ubuntu16LTS)中在安装一些必要到应用。为了日后方便,于是便有了这个笔记。

预备工作

因为众所周知的原因,直接实用原厂资源链接去下载应用程序,速度上面会比较慢,所以预先选择一个速度较快的国内镜像以减轻等待过程的痛苦。

以 ubuntu 16.04LTS 在阿里云的镜像,编辑 /etc/apt/sources.list 文件,注释掉原来的内容,更换为以下内容:

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
复制代码

保存后,更新缓存 sudo apt update

如果是在已经有的系统中安装ES,最好现将原系统盘备份。后面安装过程需要修改一些系统参数,万一改坏了,还能还原。(备份过程略)

安装 OpenJDK

java -version
复制代码

如果已经有了Java环境,跳过这一步。

sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
复制代码

下载 ElasticSearch 和 Kibana

以当前最新版本为例:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz

# 解压
tar -vxsf elasticsearch-6.6.0.tar.gz
tar -vxsf kibana-6.6.0-linux-x86_64.tar.gz

复制代码

配置/启动 ES和KB

在两个应用在config目录下,均有同名的yml配置文件。可以配置诸如:数据库、日志路径,服务绑定地址、端口号等信息。

如果Es服务的绑定地址是本机内部(127.0.0.1),那么直接可以启动了。如果是外部可访问地址(0.0.0.0),那么需要修改虚拟内存。否则会报告虚拟内存过小,并终止程序继续运行。

ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
复制代码

处理方法: 修改/etc/sysctl.conf文件,加入

vm.max_map_count=262144

不需要重启,运行:

sysctl -w vm.max_map_count=262144

ES不允许以root的身份去运行,这样一旦因配置问起造成安全漏洞,会导致整个服务器的安全隐患。所以,如果当前是root账户,需要建立一个别的账户以启动

# 创建组
groupadd elsearch
# 创建用户
useradd elsearch –g elsearch –p elsticsearch
# ES的权限修改,记得还要修改数据库和日志目录
chown –R elsearch:elsearch ./ElasticSearch
复制代码

在bin目录下的同名可执行文件,便是应用程序的启动文件。直接以后台方式运行即可。

最后,将es和kb的启动命令加入 rc.local 每次随服务器重启而自动启动服务。

安全建议

除了配置防火墙,将两者默认端口 9200和5601放行之外,还需要留意的是ES的API可以根据项目的运行环境制定一个合适的策略。当前项目的搜索都是通过程序内的业务逻辑,调用ES的搜索API进行,并不需要直接对外。所以绑定的9200端口不需要暴露在公网上。

而Kb服务并不是一直需要,只有在刚刚开始运行或者遇到问题的时候才需要。这个时候可以将KB配置为绑定外部IP,但是可以不启动这个服务。或者防火墙配置可访问的5601端口的请求IP为本公司网络IP。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值