zoukankan      html  css  js  c++  java
  • 日志系统升级之路(安装Elasticsearch和Kibana)

    一、现有情况  

    公司内部现有一套中心日志系统,供各个系统模块使用,该日志系统架构如下:

    1.1 存在的问题

    但是随着日益增长的数据量,该系统存在如下几个问题:

    1. 由于公司服务器在某机房托管,日志系统数据库所占空间巨大,拓容不便。

    2. 日志搜索困难,且响应很慢。

    1.2 优化方案

    1.2.1 日志数据库分库

    1.2.1 Solr

    1.2.3 Elasticsearch

    1.3 选型

    经过研究和分析,最终选型Elasticsearch(以下简称ES),原因如下:

    1. 分布式:横向扩展非常灵活。

    2. 全文检索:基于lucene的强大的全文检索能力。

    3. 近实时搜索和分析:数据进入ES,可达到近实时搜索,还可进行聚合分析。

    4. 高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据。

    5. 模式自由:ES的动态mapping机制可以自动检测数据的结构和类型,创建索引并使数据可搜索。

    6. 简单易用,ES集成了.net客户端,免去操作http接口的烦琐工作。

    7. 日志数据,都是静态数据。

    同时,由我们自己使用Nest和Elasticsearch.Net两个客户端,维护索引,故而省去Logstash


    二、Elasticsearch

    2.1 部署

    2.1.1 安装java运行环境

    ES由java开发,所以需先安装java jre(我这里是在本地虚拟机,所以直接安装jdk)

    yum  install  java-1.8.0-openjdk   java-1.8.0-openjdk-devel

    配置环境变量,修改/etc/profile,追加如下内容:

     #set java environment  
     JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64
     PATH=$PATH:$JAVA_HOME/bin  
     CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
     export JAVA_HOME  CLASSPATH  PATH

    (注意具体的文件夹jre-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64中的小版本号)

    使配置生效,并验证配置的路径是否正确。

    source  /etc/profile  
    echo $JAVA_HOME  
    echo $PATH  
    echo $CLASSPATH

    2.1.2 安装ES

    定位到指定目录 

    cd /home/es

    下载ES

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz

    解压到根目录的opt下

    tar -xvf elasticsearch-6.2.4.tar.gz -C /opt

    至此,ES已经下载好了。

    修改配置,/config/elasticsearch.yml

    network.host: 0.0.0.0

    表示允许所有ip访问(注意:如果不设置,则只有本机能访问

    cd /opt/es.6.2.4/bin

    启动es(注意:ES不能以root用户身份运行

    ./elasticsearch

    如果出现这个报错,关闭虚拟机,修改虚拟机中cpu为2核,开机后重试出现错误,如图:

    第一个问题的解决办法:

    修改文件/etc/security/limits.conf,在最后追加

    * hard nofile 65536
    * soft nofile 65536

    然后切换到root下,使用 sysctl -p 后,使用如下命令查看:

    sysctl -p
    ulimit -Hn

    出现65536则表示成功(注意,有时无变化,请检查格式并注销当前用户,重新登录)

     

    第二个问题的解决办法:

    修改文件/etc/sysctl.conf ,在最后追加

    vm.max_map_count=655360

    使用 sysctl -p 后如下图则表示配置成功

    切换回es用户,在 /opt/es.6.2.4/bin 目录下,使用  ./elasticsearch 重新启动

    至此,es启动成功,默认端口为9200,使用http://192.168.17.130:9200/ 即可访问 


    三、Kibana

    3.1 安装Kibana

    从www.elastic.co/cn/downloads/past-releases#kibana下载Kibana  6.2.4 后

    解压到/opt/kbn.6.2.4

    3.2 配置

    在config/kibana.yml中配置 修改如下配置:

    允许访问的ip和es地址

    server.host: "0.0.0.0"
    elasticsearch.url: "http://192.168.17.130:9200"

    3.3启动

    进入到目录 /opt/kbn.6.2.4,使用如下命令启动:

    ./kibana

    使用默认端口访问:http://192.168.17.130:5601  

    至此,ES和Kibana部署完成。

    (注意:上面示例是我在本机演示,所以运行方式都是前台运行)

  • 相关阅读:
    android5.1 修改音量键绑定多媒体声音
    如何使用Android Studio开发/调试Android源码
    git远程从入门到放弃
    java.lang.IllegalStateException: Restarter has not been initialized
    SpringBoot,Vue前后端分离开发首秀
    SpringBoot结合swagger2快速生成简单的接口文档
    SpringBoot整合SpringData JPA入门到入坟
    SpringBoot结合Swagger2自动生成api文档
    uni-app初体验及打包成apk
    Jave Web阿里云短信服务发送验证码
  • 原文地址:https://www.cnblogs.com/wugang/p/14232340.html
Copyright © 2011-2022 走看看