[喵咪BELK实战(3)] logstash+filebeat搭建

[喵咪BELK实战(3)] logstash+filebeat搭建

前言

在上节咱们已经把elasticsearch+kibana已经搭建起来了,能够正常的进行数据的索引查询了,可是直接对elasticsearch进行操做也很是不方便, elasticsearch很难对接其余的数据源,这是使用就须要logstash和filebeat出场了...linux

附上:vim

喵了个咪的博客:w-blog.cn服务器

官网地址:https://www.elastic.co/cn/elasticsearch

1. logstash

logstash主要的做用就是输入输出进行数据的处理,官方声称支持十几种数据输入源和输出源,而且能够多点分发是一个很强大的工具,咱们主要使用的是它的数据处理功能(好比解析日志提取关键字索引,数据过滤等)工具

1.1 安装

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.3.0.tar.gz
tar -zxvf logstash-5.3.0.tar.gz
mv logstash-5.3.0 /usr/local/

1.2 第一条管道

从以前的介绍有了解到logstash它的主要功能是处理数据进行输入输出,因此咱们就要搭建一条输入输出的数据通道来进行数据传输,建立这条管道的配置文件:性能

vim /usr/local/logstash-5.3.0/config/first-pipeline.conf3d

# 制定输入源为beats 而且开发9011端口接受数据
input {
	beats { 
		port => 9011
	}
}
# 制定数据输出源为elasticsearch 而且指定index名称
output {
	elasticsearch {
		hosts => [ "localhost:9200" ]
		index => "first-pipeline-%{+YYYY.MM.dd}"
	}
}

试着启动logstash: /usr/local/logstash-5.3.0/bin/logstash -f /usr/local/logstash-5.3.0/config/first-pipeline.conf 看到以下输出证实以及成功启动logstashrest

[2017-05-04T09:55:59,951][INFO ][logstash.inputs.beats    ] Beats inputs: Starting input listener {:address=>"0.0.0.0:9011"}
[2017-05-04T09:56:00,007][INFO ][logstash.pipeline        ] Pipeline main started
[2017-05-04T09:56:00,104][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

使用Supervisor运行

使用Supervisor常驻启动修改配置文件加入以下语句在重启Supervisor就能够在后台运行日志

;你须要启动的进程给个名字
[program:logstash]
;你须要执行的语句
command=/usr/local/logstash-5.3.0/bin/logstash -f /usr/local/logstash-5.3.0/config/first-pipeline.conf
;是否自动启动
autostart=true
autorestart=true
;运行程序的用户
user=root

2. filebeat

虽然logstash也能够直接监听文件的数据,为何还须要filebeat呢? 应为通常咱们须要采集不少台服务器上的日志时须要作到尽可能少的占用资源以及尽量的简单,logstash使用JAVA编写可想而知对于资源消耗也不可小视,filebeat使用GO编写几乎作到不影响机器性能,而且filebeat还能够进行最基础的分类这就是选择filebeat的缘由(以前beats是整合在logstash后面应为种种缘由被分离了出来)code

注意1:beats由不少程序组成filebeat只是其中对文件进行采集的一种 注意2:不必定要使用beats, logstash也能够直接接受各类组件上传的日志beats只是其中一种

2.1 安装

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.3.1-linux-x86_64.tar.gz
tar -zxvf filebeat-5.3.1-linux-x86_64.tar.gz
mv filebeat-5.3.1-linux-x86_64 /usr/local/filebeat-5.3.1

2.2 配置采集数据源

既然是采集文件数据固然少不了对采集数据源的配置

vim /usr/local/filebeat-5.3.1/filebeat.yml

默认filebeat输出源是elasticsearch咱们须要替换成logstash

# 修改以下语句
 output.elasticsearch:        ->   output.logstash:
  hosts: ["localhost:9200"]   ->   hosts: ["localhost:9011"]

配置文件默认采集/var/log下以.log结尾的文件

- input_type: log
  paths:
    - /var/log/*.log

使用以下命令运行 :/usr/local/filebeat-5.3.1/filebeat -c /usr/local/filebeat-5.3.1/filebeat.yml

2.3 使用Supervisor运行

使用Supervisor常驻启动修改配置文件加入以下语句在重启Supervisor就能够在后台运行

;你须要启动的进程给个名字                                                                                                            
[program:filebeat]
;你须要执行的语句
command=/usr/local/filebeat-5.3.1/filebeat -c /usr/local/filebeat-5.3.1/filebeat.yml
;是否自动启动
autostart=true
autorestart=true
;运行程序的用户
user=root

3 在kibana中查看采集的日志

正常采集起来以后就能够在kibana中添加一个查看的索引了

这个时候就把/var/log中全部以.log结尾的日志所有采集上来了而且能够经过source来进行文件的选择 这是选择了只看yum.log以后的效果

4. 总结

到这里咱们基本上吧BELK已经完整的搭建起来而且对日志开始采集了,可是BELK不单单如此,还有对于kibana的使用,对于各种日志的处理,对于时间的处理,对于索引字段的增长等还有不少细节,继续关注喵了个咪的博客会为你们带来更多的关于BELK的使用技巧

注:笔者能力有限有说的不对的地方但愿你们可以指出,也但愿多多交流!

相关文章
相关标签/搜索