ELK:环境搭建&初体验

环境


1个Cenos 7 虚拟机

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

安装


概述

  • 目前安装都是在同一个测试Centos7中,另外一个暂时不使用(后面测试远程rsyslog的时候再使用)
  • 本文说的安装均不是通过包管理工具安装的(如yum、rpm),所以下载的时候选择的均是.tar.gz包
  • 其实不用安装,解压后就可以使用了

安装依赖

  • java
    ELK环境主要是依赖java,所以安装java即可。如下安装jdk

    说明:可以根据自己系统的情况选择合适的jdk

    yum install -y java-1.8.0-openjdk-devel.x86_64

安装logstash

参考:logstash download

  • 下载安装包:logstash-[版本].tar.gz

  • 解压:tar -zxf logstash-[版本].tar.gz

安装elasticsearch

参考:elasticsearch download

  • 下载安装包:elasticsearch-[版本].tar.gz

  • 解压:tar -zxf elasticsearch-[版本].tar.gz

安装kibana

参考:kibana download

  • 下载安装包: kibana-[版本].tar.gz

  • 解压:tar -zxf kibana-[版本].tar.gz

关闭防火墙

由于需要进行网络通信,所以需要放通端口,或者直接将防火墙服务停掉

service firewalld stop

测试


概述

在同一个CentOS7 上同时开启elasticsearch、logstash、kibana。

ELK尽量按照顺讯启动elasticsearch ==> logstash ==> kibana

运行elasticsearch

cd elasticsearch

bin/elasticsearch

查看到如下结果,即表示启动成功

./elasticsearch
[2014-03-13 13:42:17,218][INFO ][node           ] [New Goblin] version[2.3.1], pid[2085], build[5c03844/2014-02-25T15:52:53Z]
[2014-03-13 13:42:17,219][INFO ][node           ] [New Goblin] initializing ...
[2014-03-13 13:42:17,223][INFO ][plugins        ] [New Goblin] loaded [], sites []
[2014-03-13 13:42:19,831][INFO ][node           ] [New Goblin] initialized
[2014-03-13 13:42:19,832][INFO ][node           ] [New Goblin] starting ...
[2014-03-13 13:42:19,958][INFO ][transport      ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.8.112:9300]}
[2014-03-13 13:42:23,030][INFO ][cluster.service] [New Goblin] new_master [New Goblin][rWMtGj3dQouz2r6ZFL9v4g][mwubuntu1][inet[/192.168.8.112:9300]], reason: zen-disco-join (elected_as_master)
[2014-03-13 13:42:23,100][INFO ][discovery      ] [New Goblin] elasticsearch/rWMtGj3dQouz2r6ZFL9v4g
[2014-03-13 13:42:23,125][INFO ][http           ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.8.112:9200]}
[2014-03-13 13:42:23,629][INFO ][gateway        ] [New Goblin] recovered [1] indices into cluster_state
[2014-03-13 13:42:23,630][INFO ][node           ] [New Goblin] started

另外,可以看到elasticsearch使用了两个端口9200、9300

通过下面的校验elasticsearch服务正常,如果响应正常,则说明服务正常

curl -X GET http://localhost:9200/

运行logstash

logstash运行时需要使用配置文件,主要是用于定义内容的输入、输出、中间处理等。

  • 创建配置文件 logstash_start.conf,并且内容如下

    
    input {
    file {
      path => "/var/log/messages"
      start_position => "beginning"
    }
    }
    output {
      elasticsearch { hosts => ["localhost:9200"] }
    }

    上面的内容主要是定义了logstash实时读取/var/log/messages中的日志,并将日志输出到elasticsearch中。

  • 启动

cd logstash
bin/logstash -f [your_path]/logstash_start.conf

看到如下的内容,便表示成功了

Settings: Default pipeline workers: 4
Logstash startup completed

运行kibana

cd kibana
bin/kibana

如果看到类似如下输出,就代表成功了:

  log   [10:47:51.005] [info][status][plugin:kibana] Status changed from uninitialized to green - Ready
  log   [10:47:51.077] [info][status][plugin:elasticsearch] Status changed from uninitialized to yellow - Waiting for Elasticsearch
  log   [10:47:51.109] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready
  log   [10:47:51.128] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.140] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.148] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready
  log   [10:47:51.155] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready
  log   [10:47:51.180] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
  log   [10:47:51.194] [info][listening] Server running at http://0.0.0.0:5601
  log   [10:47:51.200] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready

通过浏览器访问http://[you_address]:5601就可以看到kibana界面了。

kibana第一次使用时,会要求创建index,只要按照默认值即可。

测试日志收集

此时,ELK环境已经搭建好了,现在要测试下ELK是否能实时监控/var/log/messages中的日志,并在kibana这显示。

通过如下的命令构造日志:

logger -p info "hello, test ELK"

这是可以在/var/log/messages中看到这个日志

在kibana的DISCOVER选项卡中也能搜索到该日志。

备注:关于kibana的搜索时间段问题:

通常在kibana中无法搜索到日志,这时候要注意搜索的时间段,在kibana->Discover页面的最上端

你可能感兴趣的:(运维,ELK)