elk---filebeat日志收集工具
filebeat是一个轻量级的日志收集工具,所使用的资源比logstash部署和启动时使用的资源小的多。
filebeat可以在非Java环境收集日志,它可以代替logstash在非Java环境上收集日志。
filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用。
filebeat收集的数据可以发往多个主机。远程收集
数据流程图:
实验
192.168.10.30 es1
192.168.10.40 es2
192.168.10.50 logstash、kibana
192.168.10.102 nginx、mysql、httpd
同步阿里云时间
yum install ntpdate -y
ntpdate ntp.aliyun .com192.168.10.10tar -xf /opt/filebeat-6.7.2-linux-x86_64.tar.gz
vim /opt/filebeat-6.7.2-linux-x86_64/filebeat.yml
*****************************************************************************************
21---行
- type: logenabled: truepaths:- 文件的绝对路径tags: ["标签"]fields:service_name: 索引命名log_type: 日志类型from: 发送的IP---------------注释掉
134行
#output.elasticsearch:
136行
# hosts: ["localhost:9200"]---------------取消注释
----147行
output.logstash:
----149行
hosts: ["192.168.10.50:5055"]
发送给192.168.10.50的ip地址*****************************************************************************************192.168.10.50
vim nhm.confinput {beats { port => "端口"}
}
output {elasticsearch {hosts => ["IP地址:9200","IP地址:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}
}
192.168.10.102vim /opt/filebeat/filebeat.yml****************************************httpd
- type: logenabled: truepaths:- /etc/httpd/logs/access_log- /etc/httpd/logs/error_logtags: ["httpd_102"]fields:service_name: 192.168.10.102_httpdlog_type: httpdfrom: 192.168.10.102****************************************nginx
- type: logenabled: truepaths:- /usr/local/nginx/logs/access.log- /usr/local/nginx/logs/error.logtags: ["nginx_102"]fields:service_name: 192.168.10.102_nginxlog_type: nginxfrom: 192.168.10.102
****************************************mysql
- type: logenabled: truepaths:- /usr/local/mysql/data/mysql_general.logtags: ["mysql_102"]fields:service_name: 192.168.10.102_mysqllog_type: mysqlfrom: 192.168.10.102
192.168.10.50
vim /opt/log/nhm.conf
*****************************************************************************************input {beats { port => "5055"}
}
output {if "nginx_102" in [tags] {elasticsearch {hosts => ["192.168.10.30:9200","192.168.10.40:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}
}if "httpd_102" in [tags] {elasticsearch {hosts => ["192.168.10.30:9200","192.168.10.40:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}
}if "mysql_102" in [tags] {elasticsearch {hosts => ["192.168.10.30:9200","192.168.10.40:9200"]index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"}
}stdout {codec => rubydebug}
}
启动服务
按顺序启动
192.168.10.102
nohup ./filebeat -e -c filebeat.yml > filebeat.out &192.168.10.50
logstash -f nhm.conf --path.data /opt/test5 &
logstash的性能优化
vim /etc/logstash/logstash.ymllogstash启动是在jvm虚拟机当中其中,启动一次至少占500M
*******************************************************************************************pipeline.workers: 2
#定义了logstash的工作线程,默认值就是cpu数,给一半即可如:8核4G 给 4核2Gpipeline.batch.size: 125
#一次性能够批量处理检索事件的大小 125条数。200pipeline.batch.size: 125
#查询更新的延迟,50毫秒,也可以自行调整。具体要看机器性能*******************************************************************************************