4、测试命令
[root@cansee-1 ~]# java -version
java version “1.8.0_91”
Java™ SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot™ 64-Bit Server VM (build 25.91-b14, mixed mode)
二、所有节点安装 ES
1、解压 es 软件包
[root@cansee-1 ~]# tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
[root@cansee-1 ~]# mv elasticsearch-7.8.0 /usr/local/es-cluster
2、创建用户
因为安全问题:Elasticsearch 不允许 root 用户直接运行,所以要创建新用户
[root@cansee-1 ~]# useradd es
[root@cansee-1 ~]# passwd es
3、修改属主属组
[root@cansee-1 ~]# chown -R es:es /usr/local/es-cluster
4、修改配置文件
[root@cansee-1 ~]# vim /usr/local/es-cluster/config/elasticsearch.yml
#集群名称(每个节点要一致)
cluster.name: cluster-es
#节点名称, 每个节点的名称不能重复(需要改)
node.name: es-1
#ip 地址, 每个节点的地址不能重复(当前节点的IP地址),也可以设置为 0.0.0.0(需要改)
network.host: 192.168.100.101
#是不是有资格主节点
node.master: true
#是否为数据节点
node.data: true
http.port: 9200
http.cors.allow-origin: “*”
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之后新增的配置,初始化主节点配置,(指定一个初始化master节点,尽量写一个!!!)
cluster.initial_master_nodes: [“es-1”]
#es7.x 之后新增的配置,节点发现, ES 集群节点列表(9300端口用于ES集群之间传输信息)
discovery.seed_hosts: [“192.168.100.101:9300”,“192.168.100.102:9300”,“192.168.100.103:9300”]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveries: 16
#初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primaries_recoveries: 16
5、修改文件和进程数最大数
[root@cansee-1 ~]# vim /etc/security/limits.conf
es soft nofile 65535
es hard nofile 65535
es soft nproc 65535
es hard nproc 65535
[root@cansee-1 ~]# vim /etc/security/limits.d/20-nproc.conf
es soft nofile 65535
es hard nofile 65535
es soft nproc 65535
es hard nproc 65535
6、修改 sysctl.conf 文件
[root@cansee-1 ~]# vim /etc/sysctl.conf
vm.max_map_count=655360
[root@cansee-1 ~]# sysctl -p
vm.max_map_count = 655360
三、启动 ES
分别在不同节点上启动 ES 软件
[root@cansee-1 ~]# su - es
[es@cansee-1 ~]$ /usr/local/es-cluster/bin/elasticsearch -d
查看 es 是否启动成功
[es@cansee-3 ~]$ ps aux | grep es
四、测试集群
以下可以看到有三个节点,node-1、node-2、node-3,其中 node-1 为master节点
[es@cansee-3 ~]$ curl http://192.168.100.101:9200/_cat/nodes
192.168.100.102 10 74 7 0.05 0.13 0.10 dilmrt - node-2
192.168.100.103 8 73 7 0.19 0.26 0.17 dilmrt - node-3
192.168.100.101 9 74 7 0.09 0.14 0.10 dilmrt * node-1
三、elasticsearch 集群 Xpack 认证
注意此处使用的是 es 用户
1、生成证书
[es@cansee-1 ~]$ /usr/local/es-cluster/bin/elasticsearch-certutil cert -out /usr/local/es-cluster/config/elastic-certificates.p12 -pass “”
[es@cansee-1 ~]$ echo $?
0
- :通过此命令生成签名文件
- :命令参数,表示生成证书
- :指定生成的证书文件的路径和文件名
- :指定证书文件的密码,这里是空密码
2、修改自签名证书权限
[es@cansee-1 ~]$ chmod 660 /usr/local/es-cluster/config/elastic-certificates.p12
3、拷贝 自签名证书 到 所有ES集群节点
[es@cansee-1 ~]$ scp -r /usr/local/es-cluster/config/elastic-certificates.p12 root@es-2:/usr/local/es-cluster/config/
[es@cansee-1 ~]$ scp -r /usr/local/es-cluster/config/elastic-certificates.p12 root@es-3:/usr/local/es-cluster/config/
4、切换为 root 用户,修改 es 属主属组
[root@cansee-1 ~]# chown -R es:es /usr/local/es-cluster/
5、切换为 es 用户,配置 Elasticsearch 集群中每个节点开启 Xpack 安全认证
注意!!!ES集群中每个节点都需要做!!!
[root@cansee-1 ~]# su - es
[es@cansee-1 ~]$ vim /usr/local/es-cluster/config/elasticsearch.yml
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
- :启用 Elasticsearch 的安全认证功能
- :启用Elasticsearch的传输层安全性(TLS/SSL)功能。
- 指定TLS/SSL连接的验证模式为证书验证模式。这意味着Elasticsearch将验证客户端和服务器之间的连接使用的证书。
- 指定 自签名证书 文件路径,我这里指定的是相对路径
- 指定 自签名证书 文件路径,我这里指定的是相对路径
6、重启 ES 中所有节点
[es@cansee-1 ~]$ ps aux | grep es
es 1370 9.7 33.2 3705040 1340356 pts/0 Sl 22:00 2:01 /usr/local/jdk//bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,JRE -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io.tmpdir=/tmp/elasticsearch-9050489305679869153 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -XX:MaxDirectMemorySize=536870912 -Des.path.home=/usr/local/es-cluster -Des.path.conf=/usr/local/es-cluster/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /usr/local/es-cluster/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
[es@cansee-1 ~]$ kill 1370
[es@cansee-1 ~]$ /usr/local/es-cluster/bin/elasticsearch -d
7、查看节点是否启动成功
[es@cansee-1 ~]$ ps aux | grep es
8、ES 集群中设置内置用户密码(ES集群任意节点操作)
注意,ES是个数据库,所以这些密码都是在 ES 数据库中进行存储的
[es@cansee-1 ~]$ /usr/local/es-cluster/bin/elasticsearch-setup-passwords auto
- :自动生成密码,为 elasticsearch、logstash、kibana 随机生成密码
- :手动自定义密码
Changed password for user apm_system
PASSWORD apm_system = phHlC6zwrd9xepxwC7EZ
Changed password for user kibana_system
PASSWORD kibana_system = AJ7UICRIS914Z33B2mnd
Changed password for user kibana
PASSWORD kibana = AJ7UICRIS914Z33B2mnd
Changed password for user logstash_system
PASSWORD logstash_system = P2laANEKVPbvvKyVrPua
Changed password for user beats_system
PASSWORD beats_system = lqbPqz4V9YuSbAOl7SpS
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 50UWcFKh7pGlRWIp1kpK
Changed password for user elastic
PASSWORD elastic = SAx6U2w5C0rebfnqV3pd
四、Cerebro 搭建监控 elasticsearch
1、给 java 名称做软连接
[root@cansee-1 ~]# ln -s /usr/local/jdk/bin/java /bin/
2、安装 cerebro
[root@cansee-1 ~]# rpm -ivh cerebro-0.9.4-1.noarch.rpm
[root@cansee-1 ~]# vim /etc/cerebro/application.conf
data.path = “/opt/cerebro.db” # 指定数据存放路径
[root@cansee-1 ~]# chmod -R 777 /opt/
3、启动 cerebro
[root@cansee-1 ~]# systemctl start cerebro
[root@cansee-1 ~]# systemctl enable cerebro
4、查看端口
[root@cansee-1 ~]# netstat -pantu | grep 9000
tcp6 0 0 :::9000 ::😗 LISTEN 16022/java
五、kibana 部署结合 elasticsearch
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
lAwaLqyz-1712516706686)]
[外链图片转存中…(img-sqOF5K5m-1712516706686)]
[外链图片转存中…(img-mkjC4Vfd-1712516706686)]
[外链图片转存中…(img-w9V3F7lN-1712516706686)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新