前言
Elk:filebeat搜集日志工具和logstash相同
Filebeat是一个轻量级的日志收集工具,所使用的资源比logstash部署和启动时使用的资源更小
Filebeat可以运行在非Java环境,他可以代理logstash在非Java环境上收集日志
Filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用
Filebeat收集的数据可以发往多个主机,远程收集
核心图:
本地采集:
实验环境:
在elk的基础上新加一台虚拟机,安装filebeat
安装filebeat
修改默认路径
做时间同步
yum install ntpdate -y
ntpdate ntp.aliyun.com
安装Nginx和httpd
验证
如何直接收集nginx日志
配置filebeat:
路径
注释(elasticsearch outputs)
取消注释(打开logsttash output)
创建目录
写一个脚本
为了实验效果,添加一个标准输出
开始收集,发送
Nohup表示在后台记录执行命令的过程
./filebeat运行文件
-e使用标准输出的同时进行syslog文件输出
-c指定配置文件
执行过程输出到filebeat.out这个文件当中。&表示后台运行
查看是否报错:successful表示成功
开启logstash收集,接收
访问测试(多刷几遍,以防收集不到,404也多刷几遍)访问呢错误日志,以便观察
Logstash收集日志的过程:
Input(从哪里收集)
Filebeat(过滤)
Output(发送ES实例)
远程收集,远程收集多个日志
打开数据库的日志功能
表中插入一些数据(便于实验效果查看)
安装一个nginx和一个http
添加一些访问内容,访问测试
开始收集日志准备
多余的注释信息全部删掉
Nginx模块
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
tags: ["nginx_54"]
fields:
service_name: 20.0.0.54_nginx
log_type: nginx
from: 20.0.0.54
http模块
- type: log
enabled: true
paths:
- /etc/httpd/logs/access_log
- /etc/httpd/logs/error_log
tags: ["httpd_54"]
fields:
service_name: 20.0.0.54_httpd
log_type: httpd
from: 20.0.0.54
Mysql模块
- type: log
enabled: true
paths:
- /usr/local/mysql/data/mysql_general.log
tags: ["mysql_54"]
fields:
service_name: 20.0.0.54_mysqld
log_type: mysql
from: 20.0.0.54
注意:把这个三个的tags改一下(tags做一下区分)
总览图:
格式要对齐,要一模一样,一个符号都不能差
取消注释
回到elk收日志,便于查看是否命中,可以加上方框那一行,可以不加
input {
beats { port => "5045" }
}
output {
if "nginx_54" in [tags] {
elasticsearch {
hosts => ["20.0.0.52:9200","20.0.0.53:9200"]
index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
if "httpd_54" in [tags] {
elasticsearch {
hosts => ["20.0.0.52:9200","20.0.0.53:9200"]
index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
if "mysql_54" in [tags] {
elasticsearch {
hosts => ["20.0.0.52:9200","20.0.0.53:9200"]
index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
}
stdout {
codec => rubydebug
}
}
启动,后台运行,开始传送
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
打开filebeat日志,便于观察
Logstash启动运行,收集日志
logstash -f nginx_54.conf --path.data /opt/test12&
涉及改端口问题
Logstash可以使用任意端口,只要没被在占用,都可以使用,推荐从1024之后开始使用
5044
5045
5046
改端口
ES查看
如何对logstash性能上的优化(小优化):
Logstash启动是在Jam虚拟机当中启动,启动一次至少要占500M内存
Pipeline.workers:2
Logstash的工作线程,默认就是CPU数,4 2 8 4给一半即可,2核,2个
一次性可以处理检索事件的大小125条数,200
查询更新的延时,50毫秒,也可以自行调整,生产中一般都是15 10毫秒