logstash 性能太差了,而且极耗内存,一口就是一个g 的内存,穷人根本玩不起。开了两个实例,memory out,danm it ~!这促使我放弃了 logstash,直接使用 filebeat。我只是收集 nginx 的日志,没有过多 filter,filebeat 足够。
filebeat 性能甩开 logstash 几条街。logstash 一个实例空载要1G 内存,动不动 cpu 就跑得快死。反观 filebeat 工作内存 不超过%1,cpu 也不超过%1,不能再好了。
filebeat.yml
filebeat.config.modules:
enabled: true
path: ${path.config}/modules.d/*.yml
queue.mem:
events: 4096
flush.min_events: 512
flush.timeout: 5s
setup.template.name: "web-logs"
setup.template.pattern: "web-log-*"
setup.template.fields: "/etc/filebeat/fields.yml"
setup.template.overwrite: false
setup.template.settings:
index.number_of_shards: 3
index.number_of_replicas: 1
output.elasticsearch:
hosts: ["192.168.13.158:9200", "192.168.13.159:9200"]
index: "yupoo-logs-%{+yyyy.MM.dd}"
filebeat 内置了一些默认的魔板,一般情况下都不需要再自行建模板,当然你有自己的需求除外。如果要自定义模板可以通过:
filebeat setup template_name
查看当前可用:
filebeat export template
内置了很多模板,如 apache、nginx 、mysql、system...
如果 elasticsearch index 不使用默认的模板系列名,需要设置下面两项:
setup.template.name: "web-logs"
setup.template.pattern: "web-log-*"
匹配 web-logs-2017-12-02
setup.template.fields: 直接使用默认的 fields.yml 即可,无特助需要无需再建
测试模板:
filebeat test config
测试 output :
filebeat test output
这里需要注意,虽然 test 都通过了但是不一定就没问题了。先把 filebeat 服务开启:
service start filebeat
// 我是 rpm 包安装的
查看 filebeat 服务:
ps aux | grep filebeat
可知 filebeat 运行日志路径 -path.logs /var/log/filebeat
观察 filebeat 日志
tail -f /var/log/filebeat/filebeat
得到这么一条错误:
ERR Failed to connect: Connection marked as failed because the onConnect callback failed: Error loading pipeline for fileset nginx/access: This module requires the following Elasticsearch plugins: ingest-geoip. You can install them by running the following commands on all the Elasticsearch nodes:
sudo bin/elasticsearch-plugin install ingest-geoip
意思是nginx/access 模块需要 es 安装 ingest-geoip 插件。现在 es 安装插件已经灰常简单了无需修改配置直在 ES_HOME接执行:
bin/elasticsearch-plugin install ingest-geoip
modules.d/nginx.yml
- module: nginx
# Access logs
access:
enabled: true
var.paths: [/disk/ssd1/logs/nginx/x.yupoo.com.access.log]
# Error logs
error:
enabled: true
var.paths: [/disk/ssd1/logs/nginx/x.yupoo.com.error.log]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。