ELK-介绍及Elasticsearch集群搭建

  • 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:

        • 安装软件包(无需依赖包):
          • 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 #端口号
        • 创建数据目录,并修改权限:

          • 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

                • 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

              • 修改一下的配置:
              • 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"
              • }
              • }'
相关推荐
SelectDB4 分钟前
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
大数据·数据库·aigc
szxinmai主板定制专家9 分钟前
基于FPGA轨道交通6U机箱CPCI脉冲板板卡
大数据·运维·人工智能·fpga开发·边缘计算
踩踩踩从踩20 分钟前
Tengine:高性能Web 服务器与反向代理
运维·服务器·前端
v维焓25 分钟前
网络编程之客户端聊天(服务器加客户端共三种方式)
运维·服务器·网络
Code额33 分钟前
微服务的网关配置
网关·微服务·架构
水滴石轩34 分钟前
HarmonyOS Next 用户认证应用
架构
可观测性用观测云35 分钟前
ElasticSearch 可观测性最佳实践
elasticsearch
水滴石轩39 分钟前
HarmonyOS TEXT 语音搜索场景学习和总结
架构
r0ad42 分钟前
文生图架构设计原来如此简单之性能优化
架构·产品
国科安芯1 小时前
ASP3605同步降压调节器——高可靠工业电源芯片解决方案
嵌入式硬件·安全·fpga开发·架构·安全威胁分析