CentOS 搭建ELK, Elasticsearch logstash kibana 7.6.0 最新版本 测试搭建

1 点击进入注册账号https://www.aliyun.com/

2 实名认证

一、下载并解压Elasticsearch

1 下载

地址https://www.elastic.co/cn/downloads/elasticsearch

cd /www/esdata
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.6.0-linux-x86_64.tar.gz

也可以化为云下载

https://mirrors.huaweicloud.com/elasticsearch/

https://mirrors.huaweicloud.com/kibana/

2 下载jdk,并将文件夹拷贝到外面(这里为了简便实用宝塔操作了)

3 修改jdk的路径

#newadd后面的为修改的代码

1 修改/master/bin/elasticsearch   多个节点都需要设置

#
#   ES_JAVA_OPTS="-Xms8g -Xmx8g" ./bin/elasticsearch



#newadd配置为elasticsearch自带jdk
export JAVA_HOME=/www/esdata/jdk
export PATH=$JAVA_HOME/bin:$PATH


source "`dirname "$0"`"/elasticsearch-env

if [ -z "$ES_TMPDIR" ]; then
  ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory`
fi

ES_JVM_OPTIONS="$ES_PATH_CONF"/jvm.options
ES_JAVA_OPTS=`export ES_TMPDIR; "$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JvmOptionsParser "$ES_JVM_OPTIONS"`

#newadd添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
   JAVA="/www/esdata/jdk/bin/java"
else
   JAVA=`which java`
fi



# manual parsing to find out, if process should be detached

2 修改bin/elasticsearch-cli

set -e -o pipefail

#newadd配置为elasticsearch自带jdk
export JAVA_HOME=/www/esdata/jdk
export PATH=$JAVA_HOME/bin:$PATH

source "`dirname "$0"`"/elasticsearch-env

IFS=';' read -r -a additional_sources <<< "$ES_ADDITIONAL_SOURCES"
for additional_source in "${additional_sources[@]}"
do
  source "$ES_HOME"/bin/$additional_source
done

IFS=';' read -r -a additional_classpath_directories <<< "$ES_ADDITIONAL_CLASSPATH_DIRECTORIES"
for additional_classpath_directory in "${additional_classpath_directories[@]}"
do
  ES_CLASSPATH="$ES_CLASSPATH:$ES_HOME/$additional_classpath_directory/*"
done

# use a small heap size for the CLI tools, and thus the serial collector to
# avoid stealing many CPU cycles; a user can override by setting ES_JAVA_OPTS
ES_JAVA_OPTS="-Xms4m -Xmx64m -XX:+UseSerialGC ${ES_JAVA_OPTS}"


#newadd添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
   JAVA="/www/esdata/jdk/bin/java"
else
   JAVA=`which java`
fi




exec \
  "$JAVA" \
  $ES_JAVA_OPTS \
  -Des.path.home="$ES_HOME" \

二 修改系统的参数

1 修改创建限制

/etc/security/limits.conf 最后

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

2 编辑/etc/sysctl.conf配置文件(解决最大虚拟内存太小)


vi /etc/sysctl.conf

添加如下配置:

vm.max_map_count=262144

保存后执行命令:

sysctl -p

3 创建启动ES账号


出于安全问题elasticsearch 不让用root用户直接运行,需要创建一个新用户。
创建组和用户:
groupadd es
useradd es -g es
授权:
chown -R es:es /www/esdata


切换用户:
su - es

三 配置参数

文件夹修改为修改为 master

1 修改 config/jvm.options配置启动内存

-Xms512m
-Xmx512m

这里是启动占用内存  根据自己的服务器内存配置, 每个节点都这么多, 我测试的是4g内存, 3个节点, 所以这里设置512.还有启动服务的预留. 这个自己根据情况设置, 默认是1g

2 修改config/elasticsearch.yml配置

http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elastic
node.name: master
node.master: true
#node.data: true
cluster.initial_master_nodes: ["master"]
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
#xpack.security.transport.ssl.verification_mode: certificate
#xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
#xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

3 启动

后台启动的结束进程方法

ps -aux|grep elasticsearch
查到端口后 kill

kill *****

启动

su - es

ps -aux|grep elasticsearch
kill ***

cd /www/esdata/master

./bin/elasticsearch -d

cd /www/esdata/node1

./bin/elasticsearch -d

调试启动

./bin/elasticsearch

后台启动

./bin/elasticsearch -d

4 测试启动

 http://***.**.**.**:9200/ 浏览器访问

 5 制作node

复制一份master  为node1 需要几个就修改几份

修改配置

http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: elastic
node.name: node1
node.master: false
node.data: true
#cluster.initial_master_nodes: ["master"]
network.host: 0.0.0.0
http.port: 9201
discovery.zen.ping.unicast.hosts: ["127.0.0.1"]
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
#xpack.security.transport.ssl.verification_mode: certificate
#xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
#xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

6 集群测试

之前测试

master和node1 索引创建为 1个分片 1个副本 

master和node1和node2  索引创建为 3个分片 1个副本 

cpu占用较高

master和node1和node2  索引创建为1个分片 2个副本 

正在测试这种配置

至此就完成了

如果是windows的 请参考 https://blog.csdn.net/liutietuo/article/details/104038691

四 安装kibana

1 下载

cd /www/esdata

wget https://mirrors.huaweicloud.com/kibana/7.6.0/kibana-7.6.0-linux-x86_64.tar.gz

tar -zxvf kibana-7.6.0-linux-x86_64.tar.gz

2 配置

.修改config/kibana.yml

启用以下配置:

server.host: 127.0.0.1
elasticsearch.hosts: ["http://*.*.*.*:9200"]
i18n.locale: "zh-CN"

3.后台启动kibana

 cd /www/esdata/kibana/bin

./kibana

4 访问

http://199.199.199.199:5601  外网ip

五 备份

1 备份路径参数yml里面添加

path.repo: ["/www/esdata/backups", "/www/esdata/longterm_backups"]

2 建立仓储

PUT http://*.*.*.*:9200/_snapshot/backups
{
  "type": "fs",
  "settings": {
    "location": "/www/esdata/backups/store",
    "max_snapshot_bytes_per_sec": "20mb",
    "max_restore_bytes_per_sec": "20mb",
    "compress": true
  }
}

解释
PUT会重新创建该仓库。 POST请求会更新已有的仓库配置,
type:仓库的类型为共享文件系统
location: 指定仓库的路径,store必须为path.repo 的子目录
max_snapshot_bytes_per_sec:快照数据进入仓库时,该参数可以控制过程的限流情况,默认为每秒20M
max_restore_bytes_per_sec:从仓库恢复数据时,该参数控制过程限流情况,默认值:每秒20M
注意:如果挂在的路径为远程目录时,应该合理配置该值,不至于网络流量被占满。
compress: 是否压缩

3 备份方法

put请求

http://*.*.*.*:9200/_snapshot/backups/{版本号,每次不一样}?wait_for_completion=true

//其他

二 生成证书

./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""cls

二、修改配置。

       配置文件在config/elasticsearch.yml。

master配置

#跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
#设置集群名称
cluster.name: elastic
#设置节点名称
node.name: master
#设置此节点是master节点
node.master: true
#节点
#cluster.initial_master_nodes: ["slave0", "slave1"] 
cluster.initial_master_nodes: ["node0"] 
#设置往外暴露ip,因为此时在windows下,所以直接暴露本地
network.host: 127.0.0.1
#配置数据存储地址,我这里没有配置使用默认地址
#path.data=""
#配置日志存储地址
#path.log=""
#xpack是个收费插件,功能强大.可自行百度
xpack.ml.enabled: false

上面的中文 我建议删除, 否则可能报错.如下:

AMLException[java.io.CharConversionException: Invalid UTF-8 start byte 0xbf (at char #2833, byte #2047)
 at [Source: sun.nio.ch.ChannelInputStream@47caedad; line: 1, column: 1]]; nested: YAMLException[java.io.CharConversionException: Invalid UTF-8 start byte 0xbf (at char #2833, byte #2047)]; nested: CharConversionException[Invalid UTF-8 start byte 0xbf (at char #2833, byte #2047)];
 

启用X-Pack

配置末尾新增如下配置项:
     xpack.security.enabled: true

bin/elasticsearch-certutil ca -out config/elastic-certificates.p12 -pass ""

这是证书

继续修改yml配置文件

xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
 

设置密码


       执行设置用户名和密码的命令,这里需要为4个用户分别设置密码,elastic, kibana, logstash_system,beats_system
       bin/elasticsearch-setup-passwords interactive   --手动配置每个用户密码模式
       bin/elasticsearch-setup-passwords auto            --自动配置每个用户密码模式
       用户elastic为超级管理员,其它用户暂未使用到。

这样要开启数据库 才能设置.

扩容硬盘后文件移动

移动节点文件到其他硬盘

rsync -avh /data/esdata/node1 /data2/esdata  这个拷贝100g文件,大约20分钟 ,可以开两个线程拷贝不同的节点

什么配置都不用修改

先启动没有移动的那个maser节点,

这是其他节点会显示Unassigned

等启动完成 40/120 之后

在逐一启动其他移动的节点

节点会慢慢恢复的 ,恢复时间大约30分钟

如果主要节点卡住 ,可以通过重启的方式重新组装集群

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值