文章目录

  • 一、ELKF介绍
  • 1.kibana简介
  • 2.elasicsearch简介
  • 3.logstash简介
  • 4.filebeat简介
  • 5.部署前注意事项
  • 二、部署logstash
  • 三、部署elasicsearch
  • 四、部署kibana
  • 五、部署filebeat


一、ELKF介绍

 
 
 

1.kibana简介

       Kibana是一个使用 Apache 开源协议, 基于浏览器的 Elasticsearch 分析和搜索仪表板。 Kibana 非常容易安装和使 用。 整个 项目都是用 HTML 和 Javascript 写的, 所以 Kibana 不需要任何服务器端组件, 一个纯文本发布服务器就够了。 Kibana 和 Elasticsearch 一样, 力争成为极易上手, 但同样灵活而强大的软件。
 
 
 

2.elasicsearch简介

 

        Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动。

 

 

 

 

日志实时监控 日志监控系统开源_日志实时监控


 

 

 

 

3.logstash简介

 

       Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。

 

 

 

 

日志实时监控 日志监控系统开源_日志实时监控_02


 

 

 

 

4.filebeat简介

 
         Filebeat是一个轻量级日志传输Agent,可以将指定日志转发到Logstash、Elasticsearch、Kafka、Redis等中。Filebeat占用资源少,而且安装配置也比较简单,支持目前各类主流OS及Docker平台,图示如下:

日志实时监控 日志监控系统开源_日志实时监控_03

 
 
 
 

5.部署前注意事项

1. filebest就是agent,它把采集的数据交给logstash,因此只需在需要收集日志的机器上安装filebeat即可。
 2. es的部署尽量独立安装,根据业务量及服务器配置调节es的jvm内存参数。
 3. kibana和logstash在一台机器部署即可,如果机器配置不太好建议分开装。
 4. ELKF机器最小配置建议4c,8G。服务版本需要一样。
 5. ELKF先后部署顺序尽量,1.logstash,2.es,3.kibana,4,filebeat。
 6. ELKF部署依赖jdk,且ELKF各组件版本如果大于等于7.0.0,jdk版本要在1.8.0_191或者以上版本才兼容。

 

二、部署logstash

      环境是Centos7,需要下载logstash安装包并上传服务器
      Logstash官方下载地址       本专栏是基于官网最新版本进行搭建的,Logstash版本是7.1.1,如图所示:

 

日志实时监控 日志监控系统开源_数据_04


1.将logstash包上传到服务器

2.解压:

tar -zxvf logstash-7.1.1.tar.gz

3.重定向到指定目录:

mv ./logstash-7.1.1 /opt/logstash

4.修改配置文件vim /opt/logstash/config/logstash-sample.conf修改以下内容:

日志实时监控 日志监控系统开源_安装包_05


   字段解释:

             beats.port #是logstash配置接收filebeat的数据端口

            Output.elasticsearch #是配置在es中生成的索引名的规则

             Host #是指定es的地址和端口

             Index #是索引名称

            Output#一般指定多个,一个output对应一个索引

 

 

5.配置完成后启动logstash:

cd  /opt/logstash
nohup ./bin/logstash -f ./config/logstash-sample.conf &

6.验证是否启动成功:

ps -aux|grep logstash

日志实时监控 日志监控系统开源_安装包_06

注意:一定使用nohup启动ELKF所有插件。不然可能即使监听,集群依然报错,无法访问。

三、部署elasicsearch

          需要搭建好前文中的Logstash,然后去官网下载ElasticSearch安装包
          ElasticSearch6.7.2官方下载地址           版本和logstash一样即可

 
 
1.上传es安装包到服务器
2.解压:

tar -zxvf elasticsearch-7.1.1.tar.gz

3.重定向到指定目录:

mv ./elasticsearch-7.1.1  /opt/elasticsearch

4.修改配置文件vim /opt/elasticsearch/config/elasticsearch.yml修改以下内容:

日志实时监控 日志监控系统开源_日志实时监控_07


日志实时监控 日志监控系统开源_安装包_08


日志实时监控 日志监控系统开源_日志实时监控_09


    字段解释:

          cluster.name: #指定es集群名称

          cluster.initial_master_nodes: #指定es集群节点,我们目前只有一台

          network.host: #es监听地址

          http.port: #es监听端口

          其他的参数不太清楚,按着配置即可。欢迎大佬解读。。。

          这里如果配置集群,不同ElasticSearch节点的node.namehttp.port唯一就好。

 

5. 修改/opt/elasticSearch/config/jvm.options调整es分配最大内存限制为2G:

    修改参数值:

-Xms2g
  -Xmx2g

注意: 根据实际情况和服务器配置,修改这两个参数,这里我们限制最大内存为2G。

6.我们需要创建一个elk用户和组,因为ElasticSearch不能以root身份运行,否则将会报错,执行以下命令:

groupadd elk  ##创建组
useradd -g elk elk  ##创建用户,并把用户加入elk组

7.然后修改我们elasticsearch文件夹所属用户和组为elk

chown -R elk:elk /opt/elasticsearch

8.修改服务器sysctllimit进程数限制,否则会报错:

修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效

日志实时监控 日志监控系统开源_日志实时监控_10


                 修改为如上配置,然后exit,然后重新登录终端即可生效,命令查看:

日志实时监控 日志监控系统开源_日志实时监控_11

                 修改/etc/sysctl.conf文件,增加配置vm.max_map_count=262144                  执行命令sysctl -p生效

日志实时监控 日志监控系统开源_安装包_12


9.配置完成以上参数后,切换elk用户启动es:

su elk  #切换elk用户
cd /opt/elasticsearch/  #cd到es目录下
nohup /opt/elasticsearch/bin/elasticsearch -v &  #启动es,将详细信息输出至nohup.out

10.验证是否成功:ps出现以下信息并且netstat监听了9200和9300端口说明完成了。

ps -aux|grep elasticsearch

日志实时监控 日志监控系统开源_日志实时监控_13


 

 

 

 

四、部署kibana

         需要搭建好前文中的Logstash、ElasticSearch,然后去官网下载Kibana安装包
         Kibana官方下载地址          跟之前版本一致即可:7.1.1
 
 
         1.上传kibana安装包到服务器

1. tar -zxvf kibana-7.1.1-linux-x86_64.tar.gz ##解压
    2. mv ./kibana-7.1.1-linux-x86_64 /opt/kibana  ##重定向到指定目录

4.修改配置文件:vim /opt/kibana/config/kibana.yml修改为以下内容:

日志实时监控 日志监控系统开源_安装包_14


日志实时监控 日志监控系统开源_日志实时监控_15


字段解释:

      server.port #指定kibana对外端口

      server.host #指定访问的网段

      elasicsearch.hosts #指定es地址

5. /opt/kibana ##Cd到kibana目录
6.kibana:nohup ./bin/kibana & ## 启动

访问http://192.168.78.9:5601显示如下:

日志实时监控 日志监控系统开源_elasticsearch_16


 

 

 

 

五、部署filebeat

搭建好前文中的Logstash、ElasticSearch、kibana,然后去官网下载filebeat安装包
Filebeat官方下载地址 版本和logstash一致即可

1.将filebeat安装包上传到要采集日志的服务器上:

2.tar -zxvf filebeat-7.1.1-linux-x86_64.tar.gz  ##解压
3.mv ./filebeat-7.1.1-linux-x86_64 /opt/filebeat  ##重定向到指定目录

4.修改配置文件:vim /opt/filebeat/filebeat.yml因为本次监控了nginx的日志,所以修改如下:

日志实时监控 日志监控系统开源_安装包_17


日志实时监控 日志监控系统开源_日志实时监控_18


日志实时监控 日志监控系统开源_安装包_19


 

     字段解释:

            filebeat.inputs #指定要采集的日志路径

            type: #文件类型log

            paths: #指定nginx日志的路径

            fields: #要和logstash里的index的日志格式引用的key对上。

            app: #要和logstash的规则对上

           Logstash的index的日志规则是:logstash-%{[fields][app]}-%{+YYYY.MM.dd}             Output.logstash #指定logstash地址可指定多个path,用于采集不同的日志文件

     5.启动filebeat:

cd /opt/filebeat    ##cd到/opt/filebeat路径下
 nohup  ./filebeat -e -c filebeat.yml &   ##启动filebeat服务
 ps -ef |grep filebeat  ##查看进程

至此部署完成。