美文网首页
ELK分布式日志系统实战-01

ELK分布式日志系统实战-01

作者: kf_0169 | 来源:发表于2019-01-07 17:23 被阅读0次

    1.版本问题

    因为 ElasticSearch 是 ELK 组合中的一部分,都是 Elastic 产品中的组成部分,在 ElasticSearch 2.x 以前,ELK 中的各个
    中间件的版本不一致,如:ElasticSearch2.3.4,而 Kibana 对应的版本是 4.5.3。2016 年秋季,为了方便各中间件方便配
    合使用,ElasticSearch 直接从 2.x 升级到了 5.x,保持了和各个中间件版本一致。
    因此,ElasticSearch 的版本历史是:1.x -> 2.x -> 5.x。
    ElasticSearch 5.5.x 相对以前的 2.x 版本,是基于 Lucene 6 来构建的,它增加了 36%的查询速度,增加了 71%的索引
    速度,并且减少了 66%的硬盘空间占用,还较少了 85%的内存使用,同时还新增 IP 字段,以支持 IP4 和 IP6,在各方面
    超越了以往的历史版本

    2.本文章选择版本 6.5.1

    3.简单介绍

    • 搭建环境centos7
    • 依赖JDK 1.8
    • ElasticSearch
      HTTP 默认 端口9200 提供可视化数据接口
      TCP 默认 端口9300 后台API操作的访问接口
    • ES 实现分布式,不需要依赖第三方
    • 创建ES账户

    -创建用户名为 es 的用户
    useradd es
    -设置 es 用户的密码
    passwd es
    -创建 es 的 data 和 logs 目录
    mkdir elasticsearch-6.5.1/data
    mkdir elasticsearch-6.5.1/logs
    -将 /opt/es/elasticsearch-6.5.1目录 的拥有者设置为 es
    chown -R es /opt/es/elasticsearch-6.5.1

    chown -R es:es /opt/es/elasticsearch-6.5.1
    -这个-d是后台启动,第一次不建议后台启动,前台启动可以直观的看到日志信息
    bin/elasticsearch -d
    -跨域
    //elasticsearch.yml 文件增加下面两项
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    知识点

    在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:
    Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)

    Relational DB -> Databases -> Tables -> Rows -> Columns
    Elasticsearch -> Indices   -> Types  -> Documents -> Fields
    
    开始

    1、ES环境配置

    在 CentOS 中,要做以下设置:

    • 系统参数修改脚本
      注意要以 root 身份执行下面的脚本,执行后要重新登录普通账户启动 ES
    #!/bin/bash
    echo "* soft nofile 65536" >> /etc/security/limits.conf
    echo "* hard nofile 65536" >> /etc/security/limits.conf
    echo "* soft memlock unlimited" >> /etc/security/limits.conf
    echo "* hard memlock unlimited" >> /etc/security/limits.conf
    echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
    sysctl -p
    ulimit -l unlimited
    
    • 配置文件修改
      在配置文件 elasticsearch.yml 追加
    bootstrap.system_call_filter: false
    

    不修改可能出现

    bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
    ERROR: [1] bootstrap checks failed...
    

    因为 CentOS 内核不支持 SecComp,而 ES 5.5.x 默认是要执行检测命令的,所以这
    里我们把这个环境检测禁掉

    • JVM 参数调整(默认2G)
      jvm.options 的文件在 config 目录
    -Xms8g
    -Xmx8g
    

    2、ES分布式安装

    • 修改配置文件
      修改主节点的配置,打开 elasticsearch\config 下的 elasticsearch.yml 文件,在底部追加

    cluster.name: my-es #集群名称
    node.name: master #节点 ID,保证唯一
    node.master: true #标记是否为主节点
    network.host: 192.168.2.120 #对外公开的 IP 地址,如果自动识别配置为 0.0.0.0

    修改从节点,打开 elasticsearch\config 下的 elasticsearch.yml 文件,在底部追加

    cluster.name: my-es #集群名称三个节点保持一致
    node.name: slave-1 #从节点 ID,保证唯一
    network.host: 192.168.2.121 #对外公开的 IP 地址,如果自动识别配置为 0.0.0.0
    。#http.port: 8200 #默认端口为 9200,环境是在同一台机器,配置指定服务端口号
    discovery.zen.ping.unicast.hosts: ["192.168.2.120"] #集群的 IP 组,配置主节点 IP 即可

    3、ES可视化插件安装

    推荐两个

    相关文章

      网友评论

          本文标题:ELK分布式日志系统实战-01

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