美文网首页
2019-07-09 《Kibana》安装 -《Elastic

2019-07-09 《Kibana》安装 -《Elastic

作者: Ffvc | 来源:发表于2019-07-09 21:27 被阅读0次

    精彩回顾

    mongo

    1. sql和nosql区别
    2. 应用常见

    • 用户评论
    • 游戏装备
    • 问卷调查
    • 日志

    3. mongo特点
    4. 安装部署
    5. 配置文件
    6. CURD增删改查
    7. 用户授权

    • agmin root 角色
    • 自定义 read write 角色

    8. 副本集

    • 创建目录
    • 修改配置
    • 启动所有节点
    • 初始化副本集配置参数
    • 测试主从复制是否正常
    • 模拟故障转移
    • 扩容和收缩
    • 权重调整和主库降级
    • 仲裁节点

    9. 备份恢复

    • 全备
    • oplog备份
    • mysql导出csv,导入到mongo

    10. 模拟误删除操作

    • 全备
    • 模拟误删除
    • 备份oplog
    • 切换到local下,查找误删除语句的时间点
    • 处理备份文件
    • 恢复到误操作时间点以前
    • 检验数据是否恢复成功

    《Elasticsearch》

    1. 什么是搜索
    • 百度
    • 淘宝、京东
    2. 如果用数据库做搜索会怎么样
    • 天气
    • 关键词
    • 全表扫描(扫描) 例:老男孩教育 ---> 老%%教育 、 老教育%
    3. 什么是全文检索,倒排索引和Lucene
    • 根据匹配的优先级顺序推送搜索的数据信息
    4. 什么是Elasticsearch
    • 分布式搜索分析引擎,它被用作全文检索、结构化搜索、分析以及这三个功能的组合
    • Java 开发语言
    • 底层是 Lucene 引擎
    5. Elasticsearch 功能

    (1)分布式的搜索引擎和数据分析引擎
    搜索:站内搜索,商城商品的检索
    数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些;新闻网站:最近1个月访问量排名前3的新闻板块

    (2)全文检索,结构化检索,数据分析
    全文检索:


    image.png

    (3)对海量数据进行实时的处理

    6. Elasticsearch应用场景
    • 网页搜索
    • 新闻搜索
    • 商品标签
    • 日志收集分析展示

    高亮、推荐搜索

    Stack Overflow(国外的程序员常讨论论坛),IT问题,程序的报错,提交上去,有人会给你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案

    GitHub(开源代码管理),搜索上千亿行代码

    7. Elasticsearch特点
    image.png
    • 适合搜索
    • 全文检索
    • 分析数据
    • 处理海量数据PB
    • 高可用性能分布式搜索引擎数据库
    8. Elasticsearch数据格式
    image.png

    9. 安装部署

    image.png
    9.1 下载安装软件
    # mkdir  -p /data/es_soft/
    # cd /data/es_soft/
    # wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm
    yum install elasticsearch-6.6.0.rpm -y
    # rpm -ivh elasticsearch-6.6.0.rpm
    
    
    9.2 配置启动
    [root@db01 /data/soft]# systemctl daemon-reload
    
    [root@db01 /data/soft]# systemctl enable elasticsearch.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
    
    [root@db01 /data/soft]# systemctl start elasticsearch.service
    
    [root@db01 /data/soft]# systemctl status elasticsearch.service
    ● elasticsearch.service - Elasticsearch
       Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2019-07-09 10:07:45 CST; 6s ago
         Docs: http://www.elastic.co
     Main PID: 2172 (java)
       CGroup: /system.slice/elasticsearch.service
               ├─2172 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSIn...
               └─2227 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux...
    
    Jul 09 10:07:45 db01 systemd[1]: Started Elasticsearch.
    Jul 09 10:07:45 db01 systemd[1]: Starting Elasticsearch...
    Jul 09 10:07:45 db01 elasticsearch[2172]: OpenJDK 64-Bit Server VM warning...N
    Hint: Some lines were ellipsized, use -l to show in full.
    
    [root@db01 /data/soft]# systemctl is-active elasticsearch.service
    active
    
    
    9.3 检查是否启动成功
    ps -ef|grep elastic
    
    [root@db01 /data/soft]# lsof -i:9200
    COMMAND  PID          USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    java    2172 elasticsearch  190u  IPv6  32647      0t0  TCP localhost:wap-wsp (LISTEN)
    java    2172 elasticsearch  191u  IPv6  32648      0t0  TCP localhost:wap-wsp (LISTEN)
    
    [root@db01 /data/soft]# curl localhost:9200
    {
      "name" : "Hb7dC06",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "G-HeEmHjTw6i--lH_qPJhA",
      "version" : {
        "number" : "6.6.0",
        "build_flavor" : "default",
        "build_type" : "rpm",
        "build_hash" : "a9861f4",
        "build_date" : "2019-01-24T11:27:09.439740Z",
        "build_snapshot" : false,
        "lucene_version" : "7.6.0",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    
    
    9.4 查看配置文件位置
    [root@db01 /data/soft]# rpm -qc elasticsearch
    /etc/elasticsearch/elasticsearch.yml      # 主配置文件
    /etc/elasticsearch/jvm.options            # java虚拟机配置
    /etc/init.d/elasticsearch                 # init.d启动脚本
    /etc/sysconfig/elasticsearch              # 环境变量相关信息,不需要动
    /usr/lib/sysctl.d/elasticsearch.conf      # 环境变量相关
    /usr/lib/systemd/system/elasticsearch.service    # systemd启动脚本
    
    
    9.5 调整配置
    [root@db01 ~]# vim /etc/elasticsearch/jvm.options
    
    -Xms1g
    -Xmx1g
    
    
    1.不要超过30G
    官网  https://www.elastic.co/cn/
    
    
    9.6 调整elasticsearch 配置
    > 配置文件调整后参数信息
    [root@db01 ~]# grep "^[a-z]" /etc/elasticsearch/elasticsearch.yml
    node.name: node-1
    path.data: /data/elasticsearch
    path.logs: /var/log/elasticsearch
    bootstrap.memory_lock: true
    network.host: 10.0.0.51 
    http.port: 9200
    
    > 创建目录并授权
    mkdir /data/elasticsearch/ -p 
    chown -R elasticsearch:elasticsearch /data/elasticsearch/
    
    > 重新启动
    systemctl stop elasticsearch
    systemctl start elasticsearch
    
    > 连接报错
    [root@db01 ~]# curl 10.0.0.51:9200
    curl: (7) Failed connect to 10.0.0.51:9200; Connection refused
    
    > 查看日志报错信息:(内存锁定)
    [root@db01 ~]# tail -f /var//log/elasticsearch/elasticsearch.log
    [2019-07-09T11:26:31,187][ERROR][o.e.b.Bootstrap          ] [node-1] node validation exception
    [1] bootstrap checks failed
    [1]: memory locking requested for elasticsearch process but memory is not locked
    
    > 解决办法:(参考 https://www.elastic.co/guide/en/elasticsearch/reference/6.6/setting-system-settings.html#systemd)
    systemctl edit elasticsearch
    [Service]
    LimitMEMLOCK=infinity
    
    systemctl daemon-reload
    systemctl stop elasticsearch
    systemctl start elasticsearch
    
    > 重新检查:OK
    [root@db01 ~]# curl 10.0.0.51:9200
    {
      "name" : "node-1",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "jH94pzHNTSqbFdOYFSDvgw",
      "version" : {
        "number" : "6.6.0",
        "build_flavor" : "default",
        "build_type" : "rpm",
        "build_hash" : "a9861f4",
        "build_date" : "2019-01-24T11:27:09.439740Z",
        "build_snapshot" : false,
        "lucene_version" : "7.6.0",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }
    
    
    ============= 启动报错总结:============= 
    
    1.配置文件没有任何修改
    2.配置文件没有修改IP地址
    3.系统内存只有1个G,启动失败
    4.配置文件参数拼写错误,启动失败
    5.忘记修改内存锁定,启动失败
    
    
    9.7 es-head安装部署
    [root@db01 ~]# yum install nodejs npm openssl screen -y
    
    [root@db01 ~]# node -v
    v6.17.1
    
    [root@db01 ~]# npm -v
    3.10.10
    
    # npm install -g cnpm --registry=https://registry.npm.taobao.org
    [root@db01 ~]# tar zxvf elasticsearch-head.tar.gz -C /opt/
    cd /opt/elasticsearch-head
    npm run start & 
    
    
    修改es配置文件
    vim /etc/elasticsearch/elasticsearch.yml
    http.cors.enabled: true 
    http.cors.allow-origin: "*"
    
    重启es
    systemctl stop elasticsearch
    systemctl start elasticsearch
    
    网页打开
    10.0.0.51:9100
    输入
    http://10.0.0.51:9200
    
    
    image.png image.png image.png

    ![Q51M@S$7)LPPK8[([QCN.png

    副本 补齐
    
    分片 补齐
    
    

    《Kibana 安装》

    1. 配置启动文件
    [root@db01 ~]# grep "^[a-Z]" /etc/kibana/kibana.yml 
    server.port: 5601
    server.host: "10.0.0.51"
    server.name: "db01"
    elasticsearch.hosts: ["http://localhost:9200"]
    
    
    2.启动
    [root@db01 ~]# systemctl start kibana
    
    检查端口
    [root@db01 ~]# netstat -lnp|grep 5601
    tcp        0      0 10.0.0.51:5601          0.0.0.0:*               LISTEN      2362/node
    
    
    3. 连接
    image.png

    《中文分词器安装》

    1.版本要对应
    2.所有的ES节点都需要安装
    3.所有es节点都需要重启

    安装(有几个els节点安装几个)
    [root@db01 ~]# cd /usr/share/elasticsearch/bin
    
    [root@db01 /usr/share/elasticsearch/bin]# ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
    -> Downloading https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
    [=================================================] 100%   
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @     WARNING: plugin requires additional permissions     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    * java.net.SocketPermission * connect,resolve
    See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
    for descriptions of what these permissions allow and the associated risks.
    
    Continue with installation? [y/N]y    #按 y 确认
    -> Installed analysis-ik
    
    重启 elasticsearch
    [root@db01 ~]# systemctl restart elasticsearch
    
    
    image.png
    分词器测试
    创建索引:
    curl -XPUT http://localhost:9200/index
    
    创建映射:
    curl -XPOST http://localhost:9200/index/fulltext/_mapping -H 'Content-Type:application/json' -d'
    {
            "properties": {
                "content": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                }
            }
    }'
    
    创建一些文档:
    curl -XPOST http://localhost:9200/index/fulltext/1 -H 'Content-Type:application/json' -d'
    {"content":"美国留给伊拉克的是个烂摊子吗"}
    '
    curl -XPOST http://localhost:9200/index/fulltext/2 -H 'Content-Type:application/json' -d'
    {"content":"公安部:各地校车将享最高路权"}
    '
    curl -XPOST http://localhost:9200/index/fulltext/3 -H 'Content-Type:application/json' -d'
    {"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
    '
    curl -XPOST http://localhost:9200/index/fulltext/4 -H 'Content-Type:application/json' -d'
    {"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
    '
    
    查询:
    curl -XPOST http://localhost:9200/index/fulltext/_search?pretty  -H 'Content-Type:application/json' -d'
    {
        "query" : { "match" : { "content" : "中国" }},
        "highlight" : {
            "pre_tags" : ["<tag1>", "<tag2>"],
            "post_tags" : ["</tag1>", "</tag2>"],
            "fields" : {
                "content" : {}
            }
        }
    }
    '
    

    《elasticsearch》学习回顾

    1. 什么叫搜索

    2. 为什么mysql不适合全文检索

    3. 什么是全文检索倒排索引打分

    4. es的应用场景

    5. es特点

    • 分布式、高可用、搜索分析

    6. es安装部署

    • java环境
    • 内存不能小于1G
    • 磁盘空间充足
    • 配置文件开启内存锁定
    • jvm虚拟机最大最小内存都一样
    • 绑定内网IP和本地IP(工作场景只需要绑定内网IP)

    7. 解决内存锁定

    • 配置文件增加允许内存锁定参数
    • 重启es

    8. 测试

    • ps -ef | grep elasticearch
    • ss -lnp | grep 9200
    • netstat -lnp | grep 9200

    9. 开放防火墙端口

    • 9200
    • 9300(通信端口)

    10. 安装 es-head 插件

    • 安装包 npm
    • chrome 浏览器插件
    • 先压缩,再解压

    11. 概念

    • index ---> 库
    • type ---> 表
    • doc ---> 行数据
    • fields ---> 字段
    • shards ---> 分片,分库分表

    12. 操作命令 CRUD

    • put get post delete

    13. 集群配置(生产环境的标配)

    cluster.name: linux58           / 集群模式,必须打开,同一个进群要全部一样
    node.name: node-1               / 节点名称,每个节点都不一样
    path.data: /data/elasticsearch          / 如果你更换了目录,要授权给es用户和组
    path.logs: /var/log/elasticsearch       / 如果是集群模式,日志名为{集群名.log}
    bootstrap.memory_lock: true             / 内存锁定,一定要打开,然后修改system配置
    network.host: 10.0.0.51,127.0.0.1       / 绑定内网IP,本地IP可以选择不做
    http.port: 9200                 / 默认9200,还有一个隐藏的通信端口 9300
    discovery.zen.ping.unicast.hosts: ["10.0.0.51", "10.0.0.52","10.0.0.53"]         / 集群发现地址,只要包含自己和集群内任意一个节点就可以
    discovery.zen.minimum_master_nodes: 1         / 选举相关参数,多数节点数量 node/2 + 1
    http.cors.enabled: true         / 为了让es-head 可以访问es,同下
    http.cors.allow-origin: "*"     / 为了让es-head 可以访问es,同上
    
    

    14. 介绍集群的相关重要信息

    • 分片数和副本数
    • 默认创建索引为5分片,1副本
    • 分片一旦创建好就不能更改了
    • 副本数可以随时动态调整
    • 集群健康状态
      -- red ---> 有数据不完整了
      -- yellow ---> 数据都完整,但是有索引的副本或者分片状态不正常
      -- green ---> 数据都完整,副本也符合条件
    • 监控节点数量

    15.模拟故障现象

    • 停掉服务器,观察集群状态
    • 要注意,不能短时间内连续坏多台
    • 要注意,不饿能短时间关闭重启多个回合
    • 如果是0副本,数据所在的哪台机器,不能坏掉,不然数据会丢失

    16. kibana 管理 es 集群

    • 打开监控功能
    • DevTools 可以方便执行命令

    17. 中文分词器

    • 所有es节点都安装
    • 所有es节点安装完成后要重启才能生效
    • 先创建索引
    • 在创建映射关系(类似于mysql建表语句)
    • 然后指定使用中文分词器
    • 搜索测试
    错误记录1
    [2019-07-10T11:03:08,175][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node
    [2019-07-10T11:03:38,181][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node
    [2019-07-10T11:04:08,192][INFO ][o.e.c.r.a.DiskThresholdMonitor] [node-2] low disk watermark [85%] exceeded on [ctv1Dy7oTNybMQKL3DLiGQ][node-1][/data/elasticsearchdes/0] free: 709mb[13.8%], replicas will not be assigned to this node
    
    解决方法:
    磁盘空间不足,删除一部分数据
    
    

    相关文章

      网友评论

          本文标题:2019-07-09 《Kibana》安装 -《Elastic

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