热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

日志系统升级之路(安装Elasticsearch和Kibana)

公司内部现有一套中心日志系统,供各个系统模块使用,该日志系统架构如下:  1.1存在的问题但是随着日益增长的数据量,该系统存在如下几个问题:由于公司服务器在某机房托管,日志系统数据

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

日志系统升级之路(安装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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

 

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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

第一个问题的解决办法:

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

* hard nofile 65536
* soft nofile 65536

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

sysctl -p
ulimit -Hn

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

 日志系统升级之路(安装Elasticsearch和Kibana)

 

 

第二个问题的解决办法:

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

vm.max_map_count=655360

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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

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

日志系统升级之路(安装Elasticsearch和Kibana)

 

 


三、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  

日志系统升级之路(安装Elasticsearch和Kibana)

 

 

 

 

至此,ES和Kibana部署完成。

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

 


推荐阅读
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
author-avatar
吴淑舜415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有