第一章 ES简介与安装

一 常用概念

  • 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
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容