热门标签 | 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部署完成。

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

 


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
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社区 版权所有