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]

螃蟹在晨跑
255 声望4 粉丝

Make it work, make it fast, make it best~!


引用和评论

0 条评论