美文网首页ES
第一章 ES简介与安装

第一章 ES简介与安装

作者: liaijuyyer | 来源:发表于2021-10-17 22:12 被阅读0次

    一 常用概念

    • Elastic Stack 四大金刚
      • ElasticSearch 基于json的分布式搜索和分析引擎
      • Logstash 动态数据收集管道,生态丰富 采集日志到es中 基于jvm
      • Kibana 提供数据可视化界面
      • Beats 轻量级的数据采集器 采集日志到es中 功能和 logstash类似 但比logstash轻量 基于go开发

    二 安装

    2.1 安装jdk

    es的安装依赖jdk 并且不同的es版本对jdk版本的要求是不一样的 es提供了一个jvm的兼容性列表 链接如下:https://www.elastic.co/cn/support/matrix 其最低要求是jdk1.8
    

    2.2 ES 安装

    单节点安装

    # 下载地址 下载对应系统的版本即可
    https://www.elastic.co/cn/downloads/past-releases#elasticsearch
    # 单节点启动 直接在 bin目录下执行 -d 表示后台启动 默认端口是9200
    ./elasticsearch -d 
    

    ES安装包文件夹说明

    #es安装包解压后包括如下几个文件夹
    bin #存放二进制文件 可执行脚本
    config #配置文件目录 如es的配置 jvm配置等
    lib #存放的是es的第三方依赖
    data #存放es数据的目录
    logs #默认的日志存储路径
    modules #包含es所有的模块
    plugins #已经安装的插件的目录
    jdk/jak.app #es7.0x以后 自带的jdk目录 在windows下是jdk 在mac下是jdk.app
    

    集群安装

    # 第一步将es安装包拷贝3份(本次集群只做3个节点)
    cp -r elasticsearch-7.10.0 es-node1
    cp -r elasticsearch-7.10.0 es-node2
    cp -r elasticsearch-7.10.0 es-node3
    
    # 第二步修改配置文件 主要修改 cluster.name、node.name、path.data、path.logs、
    # network.host、http.port、transport.tcp.port、discovery.seed_hosts、cluster.initial_master_nodes
    # 具体的配置见后面
    vim elasticsearch.yml
    
    # 第三步 拷贝es-node1的配置 并修改 node.name、path.data、path.logs、http.port、transport.tcp.port
    
    # 第四步 分别执行 ./elasticsearch -d 后台启动es 然后查看对应logs文件夹下的 ${cluster.name}.log文件 ${cluster.name}替换为真正的集群名称 如果看到started 即表名 es正常启动了
    
    # 第五步 网页验证 通过请求 http://localhost:9200 http://localhost:9201 http://localhost:9202 能看到正确的响应即可
    # 也可以执行 http://localhost:9202/_cat/health?v 去查看集群的状态 
    

    es集群配置

    # 集群名称 同一个集群名称要一样
    cluster.name: es-test
    # 节点的名称
    node.name: node-1
    # 是否有资格作为主节点 可以不配置
    #node.master: true
    # 是否存储数据 可以不配置
    # node.data: true
    # 最大的存储节点数 可以不配
    #node.max_local_storage_nodes: 3
    # 数据存储路径 如果是一台机器部署多节点 则要改es-node1 不同的节点的数据存不同的文件夹 日志也一样
    path.data: /usr/local/es-node1/data
    # 日志存储路径
    path.logs: /usr/local/es-node1/logs
    # 网关地址 改成0.0.0.0 如果配置特定ip就只能访问这个ip
    network.host: 0.0.0.0
    # web端口 一台机器部署多节点的话 不同的节点要不一样
    http.port: 9200
    #内部节点之间通信端口 一台机器部署多节点的话 不同的节点要不一样
    transport.tcp.port: 9300
    # 写入候选主节点的地址 端口为内部通信端口
    discovery.seed_hosts: ["localhost:9300", "localhost:9400", "localhost:9500"]
    # es7.x之后新增的配置,初始化一个新的集群时需要此配置来选举master
    cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
    bootstrap.system_call_filter: false
    # 开启允许跨域访问
    http.cors.allow-origin: "*"
    http.cors.enabled: true
    http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
    http.cors.allow-credentials: true
    

    安装博客地址

    #es集群安装也可以参考这篇博客
    https://www.cnblogs.com/chenyanbin/p/13493920.html
    

    2.3 安装ES Head

    • 安装nodejs

      es-head 是一个es插件 可以理解为kibana的简化版 安装es-head之前要先安装nodejs
      nodejs 的下载地址 https://nodejs.org/en/download/
      可以用 node -v 命令来查看nodejs 是否安装成功
      
    • 安装grunt

      可以通过 npm install -g grunt-cli 命令来安装grunt
      然后通过 grunt -version命令来检查是否安装成功
      
    • 安装es-head
      依赖安装完成后 在github上下载es-head插件 地址如下 https://github.com/mobz/elasticsearch-head
      1、下载es-head并解压
      2、修改Gruntfile.js文件 在connect节点下加入 hostname: '*' 下面是Gruntfile.js调整后的样子

      connect: {
        server: {
          options: {
            // 加入hostname
            hostname: '*',
            port: 9100,
            base: '.',
            keepalive: true
          }
        }
      }
      

      3、进入es-head目录 执行 sudo npm install 安装es-head 如果不用sudo 可能会报错
      4、然后再es-head的目录下 执行npm run start 来启动es-head
      5、如果发现无法连接es节点 可以尝试在es的配置文件(elasticsearch.yml)中设置允许跨域访问的配置

      http.cors.allow-origin: "*"
      http.cors.enabled: true
      

      6、也可以利用google浏览器安装的es-head的插件

    2.4 安装kibana

    #kibana官网下载地址
    https://www.elastic.co/cn/downloads/kibana
    #修改配置文件 config/kibana.yml 详细配置见下面
    #启动kibana ./bin/kibana 即可
    #访问http://localhost:5601 能够访问通即表明kibana已经启动成功了
    

    kibana配置 kibana的更详细的配置解释可以参考
    https://www.elastic.co/guide/cn/kibana/current/settings.html

    #默认值: 5601 Kibana 由后端服务器提供服务,该配置指定使用的端口号。
    server.port: 5601
    #默认值: "localhost" 指定后端服务器的主机地址。
    server.host: "localhost"
    #如果启用了代理,指定 Kibana 的路径,该配置项只影响 Kibana 生成的 URLs,转发请求到 Kibana 时代理会移除基础路径值,该配置项不能以斜杠 (/)结尾
    #server.basePath: ""
    #默认值: 1048576 服务器请求的最大负载,单位字节
    server.maxPayloadBytes: 1048576
    #默认值: "您的主机名" Kibana 实例对外展示的名称。
    server.name: "kibanae"
    #默认值: "/app/kibana" Kibana 的默认路径,该配置项可改变 Kibana 的登录页面
    #server.defaultRoute: "/app/kibana"
    #默认值: "http://localhost:9200" 用来处理所有查询的 Elasticsearch 实例的 URL 。
    elasticsearch.url: ["http://localhost:9200", "http://localhost:9201", "http://localhost:9202"]
    #默认值: ".kibana" Kibana 使用 Elasticsearch 中的索引来存储保存的检索,可视化控件以及仪表板。如果没有索引,Kibana 会创建一个新的索引
    kibana.index: ".kibana"
    #默认值: "home" 默认加载的应用
    kibana.defaultAppId: "home"
    #指定 Kibana 的进程 ID 文件的路径。
    pid.file: xx
    #默认值: stdout 指定 Kibana 日志输出的文件
    logging.dest: stdout
    #默认值: false 该值设为 true 时,禁止所有日志输出
    logging.silent: false
    

    Kibana安装过程中遇到的问题

    #错误信息: Kibana server is not ready yet 
    #可能的原因 # 1、Kibana与Es版本不一致
                    # 2、检查kibana配置文件的elasticsearch.hosts属性中配置的es地址是否正确
                    # 3、es的配置中elasticsearch.yaml是否开启了允许跨域访问
                    # 4、防火墙是否关闭
                    # 5、es所在磁盘空间不足百分之90%(切记是es所在服务器的磁盘空间)
    

    三 ES集群健康值检查

    如何判断ES集群是否正常?

    • (1) 利用es-head
      • 如果集群健康状态为绿色 则表示集群正常 所有的Primary分片 和 Replica分片都是active状态
      • 如果集群健康状态为黄色 则表示至少有一个Replica不可用 但是所有的主分片都是active的
      • 如果集群健康状态为红色 则表示至少有一个Primary分片不可用
      需要注意的是 es主节点(五角星标注的节点) 不负责具体的读写 只是负载调度 工作节点(圆圈标注的节点)才是干活的
      主分片 不一定在主节点上 主分片是可读可写的 在下面的截图中加粗的边框标注的分片为主分片 (Primary分片) 不加错的
      为备份分片(Replica分片) 备份分片只读不写
      
    • (2) 利用api
      • _cat/health
      这个api可以查看es的健康状况 具体的用法如下: 可以在kibana中使用 GET _cat/health?v 来查看 也可以直接在浏览器中输入
      http://localhost:9200/_cat/health?v 来查看 路径后面加v可以查看每个参数的含义
      
      • _cluster/health
      这个api与_cat/health一样 也可以查看集群的健康状况 显示也更加友好 同样也可以通过 http://localhost:9200/_cluster/health
      

    相关文章

      网友评论

        本文标题:第一章 ES简介与安装

        本文链接:https://www.haomeiwen.com/subject/agawoltx.html