ELK---filebeat日志收集工具

elk---filebeat日志收集工具

filebeat是一个轻量级的日志收集工具,所使用的资源比logstash部署和启动时使用的资源小的多。
filebeat可以在非Java环境收集日志,它可以代替logstash在非Java环境上收集日志。
filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用。
filebeat收集的数据可以发往多个主机。远程收集
数据流程图:

ELK---filebeat日志收集工具_第1张图片

实验

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 .com

192.168.10.10

tar -xf /opt/filebeat-6.7.2-linux-x86_64.tar.gz
vim /opt/filebeat-6.7.2-linux-x86_64/filebeat.yml
*****************************************************************************************
21---行
- type: log
  enabled: true
  paths:
    - 文件的绝对路径
  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.conf

input {
        beats { port => "端口"}
}
output {
        elasticsearch {
                hosts => ["IP地址:9200","IP地址:9200"]
                index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
}


192.168.10.102

vim /opt/filebeat/filebeat.yml

****************************************httpd
- type: log
  enabled: true
  paths:
    - /etc/httpd/logs/access_log
    - /etc/httpd/logs/error_log
  tags: ["httpd_102"]
  fields:
    service_name: 192.168.10.102_httpd
    log_type: httpd
    from: 192.168.10.102

****************************************nginx
- type: log
  enabled: true
  paths:
    - /usr/local/nginx/logs/access.log
    - /usr/local/nginx/logs/error.log
  tags: ["nginx_102"]
  fields:
    service_name: 192.168.10.102_nginx
    log_type: nginx
    from: 192.168.10.102
****************************************mysql
- type: log
  enabled: true
  paths:
    - /usr/local/mysql/data/mysql_general.log
  tags: ["mysql_102"]
  fields:
    service_name: 192.168.10.102_mysql
    log_type: mysql
    from: 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 &

ELK---filebeat日志收集工具_第2张图片

ELK---filebeat日志收集工具_第3张图片

logstash的性能优化

vim /etc/logstash/logstash.yml

logstash启动是在jvm虚拟机当中其中,启动一次至少占500M
*******************************************************************************************

pipeline.workers: 2
#定义了logstash的工作线程,默认值就是cpu数,给一半即可如:8核4G 给 4核2G

pipeline.batch.size: 125
#一次性能够批量处理检索事件的大小 125条数。200

pipeline.batch.size: 125
#查询更新的延迟,50毫秒,也可以自行调整。具体要看机器性能

*******************************************************************************************

你可能感兴趣的:(elk)