应用场景:ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用、易用的监控架构,

     很多公司利用它来搭建可视化的海量日志分析平台。

              官网下载地址:https://www.elastic.co/downloads

      Elasticsearch:

       是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

       Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。

       设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

     Logstash:

       用于管理日志和事件的工具,你可以用它去收集日志、转换日志、解析日志并将他们作为数据提供给其它模块调用,例如搜索、存储等。

     Kibana:

       是一个优秀的前端日志展示框架,它可以非常详细的将日志转化为各种图表,为用户提供强大的数据可视化支持。

       

     Filebeat:类似于 “agent” 装在被监控端上(数据源),用来实时收集日志文件数据。

 

     

centos7 定时任务每天一个日志文件_大数据

                              【最简单的架构图】

 

安装环境:

       

centos7 定时任务每天一个日志文件_elasticsearch_02

 

 

  

 安装步骤:

    前提:已经装好 Java 8(官方建议5.4版本最至少Java 8 或以上):

    

centos7 定时任务每天一个日志文件_java_03

 

  1. 导入官方PGP-Key

~]#rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 

  

  2. 建立下载rpm包的repo   

~]# vim /etc/yum.repos.d/elk.repo 

     [elasticsearch-5.x]

     name=Elasticsearch repository for 5.x packages

     baseurl=https://artifacts.elastic.co/packages/5.x/yum

     gpgcheck=1

     gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

     enabled=1

     autorefresh=1

     type=rpm-md

    保存后退出;

  3. 安装elasticsearch包

~]#yum install elasticsearch 

  

  4. 编辑配置文件

~]# vim /etc/elasticsearch/elasticsearch.yml 

     

centos7 定时任务每天一个日志文件_elasticsearch_04

     

centos7 定时任务每天一个日志文件_java_05

   保存,退出;

  

  5. 启动服务

~]# systemctl daemon-reload 

~]# systemctl start elasticsearch 

~]# systemctl status elasticsearch 

     

centos7 定时任务每天一个日志文件_大数据_06

~]#systemctl enable elasticsearch   //加入开机启动

 

  6. 查看端口状态

~]#ss -tnl 

     

centos7 定时任务每天一个日志文件_java_07

    至此,节点es-1配置完成。

 

  7.配置集群中的另外节点es-2 和 es-3

   配置同es-1,修改一下配置文件里的节点名和地址即可,不再赘述。   

 

  8. es集群的相关查询

    注意:Elasticsearch 5.x版本不再支持相关插件:如 “elasticsearch-head”...,解释可以访问官网,实在需要,可以独立运行(此处跳过)。

       Elasticseach 1.x  2.x仍可支持,请查看:http://mobz.github.io/elasticsearch-head/

   查询集群状态方法①

~]# curl -XGET 'http://192.168.1.21:9200/_cat/nodes'   //随意一台es中可执行,也可更换其中的 ip(这里可22或23)

     

centos7 定时任务每天一个日志文件_运维_08

 ~]# curl -XGET 'http://192.168.1.21:9200/_cat/nodes?v'   //同上在后面添加 ?v ,表示详细显示

     

centos7 定时任务每天一个日志文件_elasticsearch_09

   查询集群状态方法②

~]# curl -XGET 'http://192.168.1.21:9200/_cluster/state/nodes?pretty' 

     

centos7 定时任务每天一个日志文件_elasticsearch_10

   查询集群中的master

~]# curl -XGET 'http://192.168.1.21:9200/_cluster/state/master_node?pretty' 

    或

~]# curl -XGET 'http://192.168.1.21:9200/_cat/master?v' 

     

centos7 定时任务每天一个日志文件_elasticsearch_11

   查询集群的健康状态

~]# curl -XGET 'http://192.168.1.21:9200/_cat/health?v' 

    或

~]# curl -XGET 'http://192.168.1.21:9200/_cluster/health?pretty' 

     

centos7 定时任务每天一个日志文件_大数据_12

 

centos7搭建ELK Cluster集群日志分析平台(二):Logstash

 

续  centos7搭建ELK Cluster集群日志分析平台(一)

已经安装完Elasticsearch 5.4 集群.

 

centos7 定时任务每天一个日志文件_运维_13

 

 

安装Logstash步骤

  1. 安装Java 8 

    官方说明:需要安装Java 8 ,不支持Java 9...  //自行安装,略过

    

centos7 定时任务每天一个日志文件_大数据_14

  2. 安装Logstash

    可以同elasticsearch一样建立repo文件通过yum安装,也可以去官网直接下载rpm包进行本地安装:

 ~]# rpm -ivh logstash-5.4.0.rpm   //这里直接下载好进行本地安装

  3. 添加配置文件logstash.conf

~]# cd /etc/logstash/conf.d/   //切换目录

conf.d]# vim logstash.conf     //新增配置文件logstash.conf,文件名可自己定义     

示例内容如下: 
      input {
        beats {              //后面将用到:filebeat作为agent       port => 5044          //开启5044端口监听       }       }                          //注: 此处没有添加过滤“filter”段,只添加了input和output段       output {       elasticsearch {       hosts => "IP:9200"      //IP换成某台elasticsearch的地址       manage_template => false       index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"       document_type => "%{[@metadata][type]}"       }       }

 

    保存,退出;

  4. 启动logstash服务

conf.d]# systemctl start logstash 

    查看状态:

conf.d]# ss -tnl   //存在延迟可能,多等些时间

     

centos7 定时任务每天一个日志文件_java_15

 

 

至此,Logstash安装配置完成。     

 

centos7搭建ELK Cluster集群日志分析平台(三):Kibana

 

续  centos7搭建ELK Cluster集群日志分析平台(一) 

续  centos7搭建ELK Cluster集群日志分析平台(二)

已经安装好elasticsearch 5.4集群和logstash 5.4

 

centos7 定时任务每天一个日志文件_大数据_16

 

 

安装kibana步骤

  1.下载安装Kibana

~]#wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-x86_64.rpm 

    如果链接失效,官网下载:https://www.elastic.co/downloads

~]# rpm -ivh kibana-5.4.0-x86_64.rpm   //本地安装rpm包

 

  2. 编辑配置文件

~]#vim /etc/kibana/kibana.yml     //变更如下

     

centos7 定时任务每天一个日志文件_nginx_17

     

centos7 定时任务每天一个日志文件_大数据_18

    保存后,退出;

  

  3. 启动kibana

~]# systemctl start kibana     //启动

~]# systemctl enable kibana   //加入开机启动

 ~]# ss -tnl 

     

centos7 定时任务每天一个日志文件_elasticsearch_19

 

  4. 添加Nginx反向代理

~]# yum -y install epel-release   //安装epel源,从epel源中获取Nginx

~]# yum -y install nginx httpd-tools   //yum安装Nginx,和httpd用户认证工具

     

centos7 定时任务每天一个日志文件_运维_20

  5. 更该配置文件

    ①删除或注释掉文件/etc/nginx/nginx.conf中的一段server{}

~]#vim /etc/nginx/nginx.conf 

     

centos7 定时任务每天一个日志文件_elasticsearch_21

    保存,退出;

    ②新增kibana.conf文件

~]# cd /etc/nginx/conf.d/   //在该配置目录下新增

conf.d]# vim kibana.conf      //内容如下

server {
        listen 80;

        server_name kibana;

        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/kibana-user;  //注 :该认证文件后续马上创建

          location / {
            proxy_pass http://192.168.1.25:5601;    //代理的kibana地址
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }

    保存,退出;

  

  6. 生成页面登录用户认证文件

~]# htpasswd -cm /etc/nginx/kibana-user adrian    //生成文件kibana-user,并添加用户adrian

      

centos7 定时任务每天一个日志文件_java_22

 

  7. 启动Nginx

~]# nginx -t 

     

centos7 定时任务每天一个日志文件_java_23

~]# systemctl start nginx 

~]# systemctl enable nginx 

     

centos7 定时任务每天一个日志文件_elasticsearch_24

 

  8. 浏览器登录kibana

    

centos7 定时任务每天一个日志文件_大数据_25

    登录页面展示:

    

centos7 定时任务每天一个日志文件_nginx_26

 

 

至此,Kibana安装配置完成。

centos7搭建ELK Cluster集群日志分析平台(四):Fliebeat-简单测试

 

续之前安装好的ELK集群

 

  各主机:es-1 ~ es-3 :192.168.1.21/22/23

      logstash:  192.168.1.24

      kibana:   192.168.1.25

  测试机:client:   192.168.1.26

 

在测试机上安装并启动filebeat

  1. 下载filebeat

~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-linux-x86_64.tar.gz 

    这里下载测试使用的是tar包,也可以自行下载安装rpm包,原理一样:修改配置文件和启动服务即可。

  2. 修改配置文件

~]#tar zxvf filebeat-5.4.0-linux-x86_64.tar.gz    //解压tar包

~]# cd filebeat-5.4.0-linux-x86_64   //进入解压后的文件夹,如果是rpm包安装,寻找/etc/filebeat/目录

~]vim filebeat.yml   //编辑配置文件

     

centos7 定时任务每天一个日志文件_java_27

     

centos7 定时任务每天一个日志文件_nginx_28

    保存,退出;

  

  3. 启动filebeat服务

filebeat-5.4.0-linux-x86_64]# ./filebeat -e -c filebeat.yml     //继续在当前目录下执行启动命令

~]#systemctl start filebeat 启动即可。

  

  4. 浏览器登录Kibana

    ① 在

centos7 定时任务每天一个日志文件_nginx_29

栏如下操作:

 

    

centos7 定时任务每天一个日志文件_java_30

    

    ② 创建好之后,再点击左侧栏的

centos7 定时任务每天一个日志文件_大数据_31

     

centos7 定时任务每天一个日志文件_运维_32

    ③ 尝试搜索:

     

centos7 定时任务每天一个日志文件_大数据_33

 

 

     

 

  至此,ELK简单测试完成。