- ELK是三个开源软件的缩写,分别为Elasticsearch、Logstash、kibana它们都是开源软件。后来新增了一个FileBeat,它是一个轻量及的日志收集处理工具,因为Logstash由java程序开发,比较消耗内存资源,后来将Logstash使用go语言重新编译,升级为了FileBeat。
- Elasticsearch是一个基于Lucene搜索引擎的NoSql数据库,用于存储Logstash(日志管道工具)收集来的数据,最后由Kibana图形化界面工具来呈现出来,它工作在Elasticsearch之上。
- Es集群中没有中心节点,从外部来看ES集群在逻辑上是一个整体,你与任何一个节点的通信和与整个es集群通信都是等价的。
- Elasticsearch集群:
- 1)节点(node):一个节点是集群中的一台服务器,是集群的一部分。它存储数据,参与集群的索引和搜索功能。集群中有一个主节点,主节点通过ES集群内部选举产生。
- 2)集群(cluster):一组节点组织在一起称为一个集群,它们共同持有整个的数据,并一起提供索引和搜索功能。
- 3)分片(shards):ES可以把完整的索引分成多个分片,分别存储在不同的节点上。
- 4)副本(replicas):ES可以为每个分片创建副本,提高查询效率,保证在分片数据丢失后的恢复。
- 分片数量只能在索引创建时指定,索引创建后不能再更改分片数量,但可以改变副本的数量。
- 本章实验环境介绍:
- 三台服务器:
- 192.168.8.5、192.168.8.6、192.168.8.7
- elasticsearch 软件版本:6.6.0
- 开始部署:
-
三台主机分别安装es:
- 软件包下载路径:wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/elasticsearch-6.6.0.rpm
- 安装软件包(无需依赖包):
- rpm -ivh elasticsearch-6.6.0.rpm
-
elasticsearch目录和文件讲解:
- /etc/elasticsearch/elasticsearch.yml #配置文件
- /etc/elasticsearch/jvm.options #java虚拟机
- /etc/init.d/elasticsearch #服务启动脚本
- /etc/sysconfig/elasticsearch #elasticsearch服务变量
- /usr/lib/sysctl.d/elasticsearch.conf #设置elasticsearch用户使用的内存大小
- /usr/lib/systemd/system/elasticsearch.service #添加系统服务文件
- /var/log/elasticsearch/elasticsearch.log #日志文件路径
- 修改配置文件:
- vim /etc/elasticsearch/elasticsearch.yml
-
去掉以下几行前边的注释:
- node.name: node-1 #群集中本机节点名
- path.data: /data/elasticsearch #数据目录
- path.logs: /var/log/elasticsearch #日志目录
- bootstrap.memory_lock: true #锁定内存,需要和/etc/elasticsearch/jvm.options关联
- network.host: 192.168.8.10,127.0.0.1 #监听的ip地址
- http.port: 9200 #端口号
-
- vim /etc/elasticsearch/elasticsearch.yml
-
创建数据目录,并修改权限:
- mkdir -p /data/elasticsearch
- chown -R elasticsearch.elasticsearch /data/elasticsearch/
-
加载重启服务:
- systemctl daemon-reload
- systemctl restart elasticsearch
- 查看9200端口是否开启:
- netstat -anput | grep 9200
-
第一台部署成功后,使用浏览器下载插件访问8.5主机:
- 直接访问可以看到它的状态信息
-
谷歌浏览器示范:
- 谷歌-扩展程序-管理扩展程序
- 此页面代表es1 服务部署成功,现在创建索引在es1服务器上
- curl -XPUT '192.168.8.5:9200/vipinfo/users/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"name": "guofucheng","age": "45","job": "mingxing"}'
-
在浏览器上查看是否有了刚才创建的索引:
- 右上方黄色代表副本不完整
- elasticsearch群集:
-
状态颜色:
- 灰色:未连接
- 绿色:数据完整态
- 黄色:副本不完整
- 红色:数据分片不完整
- 紫色:数据分片复制过程
- 群集主机角色:
- 主节点master:负责管理调度
- 工作节点: 负责处理数据
- 默认情况,所有节点都是工作节点,即主节点也处理数据
-
- 向集群中添加第二台主机:192.168.8.6
-
安装步骤与es1一样,配置文件需要修改:
-
vim /etc/elasticsearch/elasticsearch.yml
- node.name: node-2
- path.data: /data/elasticsearch
- path.logs: /var/log/elasticsearch
- network.host: 192.168.8.20,127.0.0.1
- http.port: 9200
- discovery.zen.ping.unicast.hosts: ["192.168.8.6", "192.168.8.20"]
- discovery.zen.minimum_master_nodes: 2 #添加的值=节点数/2 + 1
-
创建数据目录。并修改权限:
- mkdir -p /data/elasticsearch
- chown -R elasticsearch.elasticsearch /data/elasticsearch/
-
启动服务:
- systemctl daemon-reload
- systemctl restart elasticsearch
- 查看端口:
- netstat -anput | grep 9200
-
-
-
向集群中添加第三台主机:192.168.8.7
- 安装与es1一样,修改配置文件
-
vim /etc/elasticsearch/elasticsearch.yml
- 修改一下的配置:
- node.name: es3
- path.data: /data/elasticsearch
- path.logs: /var/log/elasticsearch
- bootstrap.memory_lock: true
- network.host: 192.168.8.7,127.0.0.1
- http.port: 9200
- discovery.zen.ping.unicast.hosts: ["192.168.8.5", "192.168.8.7"]
- discovery.zen.minimum_master_nodes: 2
-
创建数据目录,并修改权限
- mkdir -p /data/elasticsearch
- chown -R elasticsearch.elasticsearch /data/elasticsearch/
-
重启服务:
- systemctl daemon-reload
- systemctl restart elasticsearch
- 查看端口是否存在
- netstat -anpt | grep 9200
- 再次访问8.5群集,查看是否发生了变化
- 常见群集管理监控命令
- (1)查看索引信息
- curl -XGET '192.168.8.5:9200/_cat/indices?pretty'
- (2)查看群集健康状态
- curl -XGET '192.168.8.5:9200/_cluster/health?pretty'
- (3)统计群集节点
- curl -XGET '192.168.8.5:9200/_cat/nodes?human&pretty'
- (4)查看群集所有节点详细信息
- curl -XGET '192.168.8.5:9200/_nodes/_all/info/jvm.process?human&pretty'
- 注意:企业环境使用脚本监控群集健康状态是否为green 或 节点数不匹配 就邮件报警
-
(5)创建索引index1时,修改分片为3和副本数为2
- curl -X PUT 192.168.8.5:9200/index1 -H 'Content-Type: application/json' -d '{
- "settings" : {
- "index" : {
- "number_of_shards" : 3,
- "number_of_replicas" : 2
- }
- }
- }'
-
(6)针对已有索引,可修改副本数,不可改分片数。下面语句把index1的副本数由2改为1
- curl -X PUT '192.168.8.5:9200/index1/_settings?pretty' -H 'Content-Type: application/json' -d '{
- "settings": {
- "number_of_replicas": "1"
- }
- }'
-
- 三台服务器:
ELK-介绍及Elasticsearch集群搭建
努力转型的IT小王2024-03-12 19:05
相关推荐
vip45124 分钟前
Linux 经典面试八股文大霞上仙26 分钟前
Ubuntu系统电脑没有WiFi适配器Karoku0661 小时前
【企业级分布式系统】Zabbix监控系统与部署安装为什么这亚子1 小时前
九、Go语言快速入门之map拓端研究室TRL1 小时前
【梯度提升专题】XGBoost、Adaboost、CatBoost预测合集:抗乳腺癌药物优化、信贷风控、比特币应用|附数据代码...黄焖鸡能干四碗1 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)想进大厂的小王1 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识布值倒区什么name1 小时前
bug日常记录responded with a status of 413 (Request Entity Too Large)编码小袁1 小时前
探索数据科学与大数据技术专业本科生的广阔就业前景孤客网络科技工作室2 小时前
VMware 虚拟机使用教程及 Kali Linux 安装指南