ELK集群部署 elaticsearch篇

ELK集群部署
ELK简介、下载

ELK 是 elastic 公司旗下三款产品ElasticSearch、Logstash、Kibana的首字母组合,也即Elastic Stack包含ElasticSearch、Logstash、Kibana、Beats。ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志系统。

ElasticSearch : 基于 JSON 的分布式的搜索和分析引擎,作为 ELK 的核心,它集中存储数据,
用来搜索、分析、存储日志。它是分布式的,可以横向扩容,可以自动发现,索引自动分片
Logstash : 动态数据收集管道,支持以 TCP/UDP/HTTP 多种方式收集数据(也可以接受 Beats 传输来的数据),
并对数据做进一步丰富或提取字段处理。用来采集日志,把日志解析为json格式交给ElasticSearch
Kibana : 数据可视化组件,将收集的数据进行可视化展示(各种报表、图形化数据),并提供配置、管理 ELK 的界面
Beats :轻量型日志采集器,单一用途的数据传输平台,可以将多台机器的数据发送到 Logstash 或 ElasticSearch

下载ELK组件 elaticsearch kibana logstash filebaet beat
https://www.elastic.co/cn/downloads/past-releases

三台服务器
系统centos7
es主节点/es数据节点/kibana/head 192.168.30.110
es主节点/es数据节点/logstash/ 192.168.30.111
es主节点/es数据节点/filebeat 192.168.30.112

修改个节点名
键入 hostnamectl set-hostname elk01 回车,键入bash 回车 即可及时成效修改

所有节点关闭防火墙
在这里插入图片描述
关闭selinux
vi /etc/selinux/config
在这里插入图片描述
全部配置系统环境
vim /etc/security/limits.conf 末尾追加

  • soft nofile 65536
  • hard nofile 131072
  • soft nproc 2048
  • hard nproc 4096

vim /etc/sysctl.conf 末尾追加
vm.max_map_count=655360
执行sysctl -p

全部安装java环境
tar zxvf jdk-11.0.15_linux-x64_bin.tar.gz -C /usr/local/
环境变量
vi /etc/profile 尾部追加
JAVA_HOME=/usr/local/jdk-11.0.15
PATH== P A T H : PATH: PATH:JAVA_HOME/bin: J A V A H O M E / j r e / b i n C L A S S P A T H = . : JAVA_HOME/jre/bin CLASSPATH=.: JAVAHOME/jre/binCLASSPATH=.:JAVA_HOME/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r : JAVA_HOME/lib/tools.jar: JAVAHOME/lib/tools.jar:JAVA_HOME/jre/lib
ES_JAVA_HOME=/usr/local/jdk-11.0.15
export JAVA_HOME PATH CLASSPATH
在这里插入图片描述
source !$ (!$ 特殊的 shell 参数,它扩展为上一个命令中最后一个参数的值。)
java -version 查看版本信息 安装完成

安装node.js
tar xvf node-v14.21.3-linux-x64.tar.xz -C /usr/local/
环境变量
vi /etc/profile 尾部追加
export NODE_HOME=/usr/local/node-v14.21.3-linux-x64
export PATH= N O D E H O M E / b i n : NODE_HOME/bin: NODEHOME/bin:PATH
export NODE_PATH= N O D E H O M E / l i b / n o d e m o d u l e s : NODE_HOME/lib/node_modules: NODEHOME/lib/nodemodules:PATH
在这里插入图片描述

在这里插入图片描述
安装完成
head插件安装
192.168.30.110
下载head wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip 解压head压缩包
报错找不到unzip 执行yum install -y unzip安装unzip
在这里插入图片描述
mv elasticsearch-head-master /opt/head 修改目录名称
cd /op/head目录
先执行下npm config set strict-ssl false 忽略SSL证书验证
再执行 npm install -g cnpm --registry=https://registry.npm.taobao.org 安装cnpm包
否则会报证书验证错误,接下来安装下面的环境
cnpm install -g grunt-cli
cnpm install -g grunt
cnpm install grunt-contrib-clean
cnpm install grunt-contrib-concat
cnpm install grunt-contrib-watch
cnpm install grunt-contrib-connect
cnpm install grunt-contrib-copy
cnpm install grunt-contrib-jasmine

编辑vi /opt/head/Gruntfile.js文件
vim /usr/local/elasticsearch-head/Gruntfile.js
找到connect属性,新增 hostname: ‘0.0.0.0’, 不要忽略尾部的 , 号
在这里插入图片描述
nohup /opt/head/grunt server & 后台启动

浏览器输入192.168.30.110:9100
可以看到下图的web界面,因为还没有部署elasticsearch,所有没有任何数据
在这里插入图片描述
head做个启动脚本

#!/bin/bash
#chkconfig: 2345 55 24
#description: elasticsearch-head service manager

data="cd /opt/head/ ; nohup npm run start >/dev/null 2>&1 & "
START() {
eval $data
}

STOP() {
ps -ef | grep grunt | grep -v “grep” | awk ‘{print $2}’ | xargs kill -s 9 >/dev/null
}

case “$1” in
start)
START
;;
stop)
STOP
;;
restart)
STOP
sleep 2
START
;;
*)
echo “Usage: elasticsearch-head (|start|stop|restart)”
;;
esac

在这里插入图片描述
三台全部创建用户elk:(elk不允许root用户启动)
useradd elk
创建组并加入
useradd elk -g elk
全部安装elasticsearch
tar -xvf elasticsearch-7.15.2-linux-x86_64.tar.gz -C /opt/ && mv /opt/elasticsearch-7.15.2 elasticsearch
mkdir /usr/local/elasticsearch/data
更改目录所有权
chown -R elk:elk /opt/elasticsearch/
配置三台elasticsearch配置

cluster.name: elk # 集群名称,同一集群必须相同
node.name: elastic-1 # 指定节点主机名
node.master: true # 允许成为主节点
node.data: true # 数据节点
path.data: /opt/elasticsearch/data # 数据存放路径
path.logs: /opt/elasticsearch/logs # 日志路径
bootstrap.memory_lock: false # 关闭锁定内存,设置true会报错
network.host: 192.168.30.110 # 监听ip
http.port: 9200 # http端口
transport.tcp.port: 9300 # 设置节点间交互的tcp监听端口,默认是9300
discovery.seed_hosts: [“192.168.30.110”, “192.168.30.111”,“192.168.30.1112”] # 集群地址
cluster.initial_master_nodes: [“192.168.30.110”, “192.168.30.111”,“192.168.30.1112”] #指定master主节点

indices.breaker.total.limit: 90% #设置总断路器限制为JVM堆内存的90%,用于防止内存溢出

其他节点修改节点主机名和监听IP即可
在这里插入图片描述设置初始堆内存
vi jvm.options编辑jvm.options文件,根据服务器实际内存灵活设置
在这里插入图片描述
su lke 切换用户,如果没有设置证书密钥,此刻就可以启动集群了
bin目录下 ./elasticsearch 启动 elasticsearch -d后台启动
建议首次以./elasticsearch 查看日志
在这里插入图片描述

为elasticsearch做systemd服务

[Unit]
Description=Elasticsearch
Wants=network-online.target
After=network-online.target

[Service]
RuntimeDirectory=elasticsearch
PrivateTmp=true
Environment=ES_HOME=/opt/elasticsearch
Environment=ES_PATH_CONF=/opt/elasticsearch/config
Environment=PID_DIR=/opt/elasticsearch/run
EnvironmentFile=-/etc/sysconfig/elasticsearch

WorkingDirectory=/opt/elasticsearch

User=elk
Group=elk

ExecStart=/opt/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet

StandardOutput=journal
StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65535

# Specifies the maximum number of processes
LimitNPROC=4096

# Specifies the maximum size of virtual memory
LimitAS=infinity

# Specifies the maximum file size
LimitFSIZE=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0

# SIGTERM signal is used to stop the Java process
KillSignal=SIGTERM

# Send the signal only to the JVM rather than its control group
KillMode=process

# Java process is never killed
SendSIGKILL=no

# When a JVM receives a SIGTERM signal it exits with code 143
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

设置密钥
在elasticsearch.yml文件添加,所有集群环境都添加

#开启xpack
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
#证书配置
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

#跨域访问
http.cors.enabled: true
http.cors.allow-origin: “"
http.cors.allow-headers: "

在这里插入图片描述
进入bin目录下
以下证书密钥都先不要设置密码,一直为空,回车。设置密码集群启动可能报错
生成CA证书
elasticsearch-certutil ca
在这里插入图片描述
生成p12秘钥 bin目录下执行
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
在这里插入图片描述
执行完成,在/opt/elasticsearch目录会有elastic-certificates.p12 elastic-stack-ca.p12两个文件
在这里插入图片描述
如果上面./elasticsearch-certutil cert --ca elastic-stack-ca.p12输入了密码,这里要执行下列操作
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
不然启动会失败并报错
failed to load SSL configuration xpack.security.transport.ssl,keystore password was incorrect

复制两个P12文件到config/certs目录下,没有则创建,
将两份P12文件分别复制到其他集群服务器config/certs目录下,注意权限。
重启es服务
在bin目录执行
elasticsearch-setup-passwords interactive
为每个用户添加密码,不能为空,需每个都设置

在这里插入图片描述

完成后打开192.168.30.110:9200测试,输入刚设置的elastic的密码,用户默认为elastic
显示下列信息
在这里插入图片描述
使用head登录,需要在后缀添加上用户和密码访问
http://192.168.30.110:9100/?auth_user=elastic&auth_password=123456

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值