日志系统升级之路(安装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部署完成。

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

原文地址:https://www.cnblogs.com/wugang/p/14232340.html