(一)filebeat
1、filebeat和logstash相同
(1)filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多
(2)filebeat可以运行在非Java环境、可以代理logstash在非Java环境上收集日志
(3)filebeat无法实现数据的过滤,一般结合logstash的数据过滤功能一块使用
(4)fileteat收集的数据可以发往多个主机,远程收集
(二)部署filebeat(要收集哪台服务器的日志就部署在哪台服务器上)
1、安装filebeat(解压即可)
2、编辑配置文件
指定工作目录:编辑.conf文件
3、所有服务器配置时间同步
yum install ntpdate -y
ntpdate ntp.aliyun.com
4、yum安装nginx
5、访问测试
(三)直接收集nginx的日志
1、赋权(让filebeat读取数据)
2、编辑filebeat的配置文件
3、编辑logstash日志文件
4、开启filebeat日志收集
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
nohup:表示在后台记录执行命令的过程
./filebeat:运行文件
-e:使用标准输出的同时进行syslog文件输出
-c:指定配置文件
执行过程输出到filebeat.out这个文件中,&后台运行
(1)检测是否报错:tail -f filebeat.out
(2)运行logstash:logstash -f nginx.conf --path.data /opt/test5 &
5、访问测试
6、logstash收集日志的过程
(1)input:从哪里收集
(2)output:发送es实例
(3)filter:过滤
以上还是本地收集
(四)远程收集多个日志
1、打开mysql的日志功能:
2、创建日志(创库、创表、添加数据)
(1)mysql服务器上安装nginx和http
3、访问测试
4、依赖filebeat收集日志
(1)安装filebeat
(2)编辑filebeat的配置文件
指定多个服务的模块:
(3)创建日志文件
5、运行filebeat和logstash
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
logstash -f nhm_21.conf --path.data /opt/test9 &
(1)logstash可以使用任意端口,只要没被占用都可以使用,推荐从1024之后开始
修改logstash的端口:
6、检测
以上实现多主机远程收集
(五)logstash性能上的优化
1、logstash启动是在jvm虚拟机当中,启动一次至少500M内存
pipeline:workers:2 | logstash的工作线程,默认值就是CPU数,给一半即可 |
pipeline.batch.size:125 | 一次性能够批量处理检索事件的大小125条数。默认200 |
pipeline.batch.delay:50 | 查询更新的延迟,50毫秒,也可以自行调整,生产中15、10(也要看机器的性能) |