基础环境
hostnamectl set-hostname els01
hostnamectl set-hostname els02
hostnamectl set-hostname els03
hostnamectl set-hostname kba
systemctl stop firewalld & systemctl disable firewalld
# 安装jdk
cd /usr/local
tar -xvf jdk1.8.0_231.tar.gz
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
elasticsearch
安装
# 创建用户与组
groupadd -g 500 els
mkdir -p /opt/app/els
useradd -d /opt/app/els -u 2000 -g els els
echo "els#123" | passwd --stdin els
cp -r etc/skel/.bash* /opt/app/els
cd /opt/app
chown -R els:els /opt/app/els
chmod -R 755 /opt/app/els
su - els
tar -xvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /opt/app/els
chown -R els:els /opt/app/els
更改用户可创建的线程数
vi /etc/security/limits.d/20-nproc.conf
els soft nproc 4096
否则报错:max number of threads [1024] for user [elsearch] likely too low, increase to at least [4096]
更改打开文件数与线程数
vi /etc/security/limits.conf
els soft nofile 65536
els hard nofile 131072
els soft nproc 4096
els hard nproc 4096
否则报错:node validation exception bootstrap checks failed
更改系统控制文件
Elasticsearch 默认使用 mmapfs 目录存储索引,而 Linux 默认对 mmap 计数限制可能太低,会导致内存异常。系统控制文件是管理系统中的各种资源控制的配置文件,ES 需要开辟一个 65536 字节以上空间的虚拟内存,但 Linux 又不允许任何用户直接开辟虚拟内存,所以通过如下方式修改:
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
否则报错:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
环境变量
vi /opt/app/els/.bash_profile
export JAVA_HOME=/usr/local/jdk1.8.0_231
export ES_HOME=$HOME/elasticsearch-7.6.2
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$ES_HOME/lib
export PATH=$HOME/bin:$JAVA_HOME/bin:$ES_HOME/bin:$PATH
vi /opt/app/elsearch/.bashrc
ES_HOME=/opt/app/elsearch/elasticsearch-7.6.2
PATH=$PATH:$ES_HOME/bin
source ~/.bash_profile & source ~/.bashrc
su - els
mkdir -p /opt/app/elsearch/data /opt/app/elsearch/logs
vi elasticsearch-7.6.2/config/elasticsearch.yml
#集群名称
cluster.name: DR-ELK
#默认情况下,Elasticsearch 将使用随机生成的 UUID 的前七个字符作为节点 ID,该节点名称一经生成后,即使重启服务亦不会变更
node.name: els01
path.data: /opt/app/elsearch/data
path.logs: /opt/app/elsearch/logs
#默认情况下,此 elasticsearch 服务绑定到回环地址127.0.0.1。修改为节点ip在浏览器中访问不成功
network.host: 0.0.0.0
#集群中拥有被选举成 Master 节点资格的地址列表
discovery.seed_hosts: ["ip1:9400","ip2:9400","ip3:9400"]
#在一个新集群初始化时,符合 Master 节点资格的节点集
cluster.initial_master_nodes: ["ip1:9400","ip2:9400","ip3:9400"]
#为最多主节点个数
discovery.zen.minimum_master_nodes: 1
#为超时后生效节点数
gateway.recover_after_nodes: 1
#没有这两项配置7.6.2版本的kibana将无法调用ES
# 文本最后追加
http.cors.enabled: true
http.cors.allow-origin: "*"
注释掉判断是否存在 JAVA_HOME变量的流程分支,直接使用操作系统的JDK
cd /opt/app/elsearch/elasticsearch-7.6.2/bin/
cp elasticsearch-env elasticsearch-env.bak
vi /opt/app/elsearch/elasticsearch-7.6.2/bin/elasticsearch-env
su - els
cd /opt/app/elsearch/elasticsearch-7.6.2/bin
#以守护进程模式运行
./elasticsearch -d
#停止
ps -ef | grep Elasticsearch | grep -v grep | awk '{print $2}' | xargs kill -SIGTERM
#查看状态
cat /opt/app/elsearch/logs/集群名称.log
curl -X GET http://ip:9200
kibana
安装
groupadd -g 500 kbn
mkdir -p /opt/app/kbn
useradd -d /opt/app/kibana -u 2000 -g kba kba
/bin/echo "kba#123" | passwd --stdin kba
cp -r /etc/skel/.bash* /opt/app/kba
chown -R kbn:kbn /opt/app/kba
chmod -R 755 /opt/app/kba
su - kba
tar -xvf kibana-7.6.2-linux-x86_64.tar.gz -C /opt/app/kba
chown -R kba:kba /opt/app/kibana
环境变量
vi /opt/app/kba/.bashrc
# 注意jdk相关变量
export KIBANA_HOME=/opt/app/kibana/kibana-7.6.2-linux-x86_64
export PATH=$PATH:$KIBANA_HOME/bin
source ~/.bashrc
su - kba
vi kibana-7.6.2-linux-x86_64/config/kibana.yml
# 端口
server.port: 5601
# 服务主机名
server.host: "0.0.0.0"
# 指定ES服务,可以指定多个
elasticsearch.hosts: ["http://ip1:9200","http://ip2:9200","http://ip3:9200"]
# 进程文件
pid.file: /opt/app/kibana/kibana.pid
# 日志路径
logging.dest: /opt/app/kibana/logs/kibana.log
# 汉化
i18n.locale: "zh-CN"
mkdir -p /opt/app/kibana/logs/
su - kba
cd /opt/app/kibana/kibana-7.6.2-linux-x86_64/bin
#后台运行
./kibana &
#停止
ps -ef | grep kibana | grep -v grep | awk '{print $2}' | xargs kill -SIGTERM
#查看
cat /opt/app/kibana/logs/kibana.logs
#浏览器访问http://ip:5601/