目录
一、ELFK(Filebeat+ELK)
1. Filebeat的作用
2. ELFK工作流程
3. ELFK的部署
3.1 服务器配置
3.2 服务器环境
3.3 安装filebeat
3.4 修改filebeat主配置文件
3.5 在logstash组件所在节点(apache节点)上新建一个logstash配置文件
3.6 浏览器验证
一、ELFK(Filebeat+ELK)
1. Filebeat的作用
由于logstash会大量占用系统的内存资源,一般我们会使用filebeat替换logstash收集日志的功能,组成ELFK架构。 或用fluentd替代logstash组成EFK(elasticsearch/fluentd/kibana),由于fluentd是由Go语言开发的,一般在K8S环境中使用较多。
2. ELFK工作流程
(1)filebeat将日志收集后交由logstash处理
(2)logstash进行过滤、格式化等操作,满足过滤条件的数据将发送给ES
(3)ES对数据进行分片存储,并提供索引功能
(4)kibana对数据进行图形化的web展示,并提供索引接口
3. ELFK的部署
3.1 服务器配置
务器 | 配置 | 主机名 | ip地址 | 主要软件部署 |
---|---|---|---|---|
node1节点 | 2C/4G | node1 | 192.168.80.111 | ElasticSearch、Kibana |
node2节点 | 2C/4G | node2 | 192.168.80.112 | ElasticSearch |
apache节点 | - | apache | 192.168.80.113 | Logstash、Apache |
filebeat节点 | - | filebeat | 192.168.80.114 | Filebeat |
在ELK的基础上,增加一台filebeat服务器,因此只需再前述ELK部署的前提下进一步操作。 ELK的部署过程 |
3.2 服务器环境
filebeat节点
[root@localhost ~]# hostnamectl set-hostname filebeat
[root@localhost ~]# su
[root@filebeat ~]# systemctl stop firewalld
[root@filebeat ~]# systemctl disable firewalld
[root@filebeat ~]# setenforce 0
3.3 安装filebeat
filebeat节点
[root@filebeat ~]# cd /opt
[root@filebeat opt]# rz -E
rz waiting to receive.
[root@filebeat opt]# ls
[root@filebeat opt]# rpm -ivh filebeat-6.6.1-x86_64.rpm
3.4 修改filebeat主配置文件
filebeat节点
[root@filebeat opt]# cd /usr/local/filebeat/
[root@filebeat filebeat]# cp filebeat.yml filebeat.yml.bak
[root@filebeat filebeat]# vim filebeat.yml
filebeat.prospectors:
##21行,指定log类型,从日志文件中读取消息
- type: log
##24行,开启日志收集功能,默认为false
enabled: true
##28行,指定监控的日志文件
- /var/log/*.log
##29行,添加收集/var/log/messages
- /var/log/messages
##31行,添加以下内容,注意格式
fields:
service_name: filebeat
log_type: log
service_id: 192.168.80.115
#-------------------------- Elasticsearch output ------------------------------
该区域内容全部注释
#----------------------------- Logstash output --------------------------------
##157行,取消注释
output.logstash:
##159行,取消注释,指定logstash的IP和端口号
hosts: ["192.168.80.113:5044"]
[root@filebeat filebeat]# /usr/bin/filebeat -e -c filebeat.yml
#启动filebeat,-e记录到stderr并禁用syslog /文件输出,-c指定配置文件
3.5 在logstash组件所在节点(apache节点)上新建一个logstash配置文件
[root@apache ~]# cd /etc/logstash/conf.d/
[root@apache conf.d]# vim logstash.conf
input {
beats {
port => "5044"
}
}
output {
elasticsearch {
hosts => ["192.168.80.111:9200", "192.168.80.112:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf
3.6 浏览器验证
浏览器访问http://192.168.80.111看是否生成filebeat索引
浏览器访问http://192.168.80.111:5601登录kibana, 添加“filebeat-*”索引后在“Discover”中查看filebeat日志收集情况。
总结:
这是一种更加完善和灵活的架构,适合处理复杂的日志数据
在这种模式下,filebeat (beats)负贵收日志文件,并将其发送到ogstash进行处理。logtash可以对日志数据进行更多的过滤、转换和增强的操作 ,并将其发送到Elasticsearch进行索引。kibana则可以用来查看和分析日志数据