环境
1个Cenos 7 虚拟机
[root@localhost ~]
CentOS Linux release 7.1.1503 (Core)
安装
概述
- 目前安装都是在同一个测试Centos7中,另外一个暂时不使用(后面测试远程rsyslog的时候再使用)
- 本文说的安装均不是通过包管理工具安装的(如yum、rpm),所以下载的时候选择的均是.tar.gz包
- 其实不用安装,解压后就可以使用了
安装依赖
安装logstash
参考:logstash download
安装elasticsearch
参考:elasticsearch download
安装kibana
参考:kibana download
关闭防火墙
由于需要进行网络通信,所以需要放通端口,或者直接将防火墙服务停掉
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:
运行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页面的最上端