1个Cenos 7 虚拟机
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
java
ELK环境主要是依赖java,所以安装java即可。如下安装jdk
说明:可以根据自己系统的情况选择合适的jdk
yum install -y java-1.8.0-openjdk-devel.x86_64
参考:logstash download
下载安装包:logstash-[版本].tar.gz
解压:tar -zxf logstash-[版本].tar.gz
参考:elasticsearch download
下载安装包:elasticsearch-[版本].tar.gz
解压:tar -zxf elasticsearch-[版本].tar.gz
参考:kibana download
下载安装包: kibana-[版本].tar.gz
解压:tar -zxf kibana-[版本].tar.gz
由于需要进行网络通信,所以需要放通端口,或者直接将防火墙服务停掉
service firewalld stop
在同一个CentOS7 上同时开启elasticsearch、logstash、kibana。
ELK尽量按照顺讯启动elasticsearch
==> logstash
==> kibana
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_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
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页面的最上端