软件外包产业东莞网站seo优化托管
filebeat日志收集工具
elk:filebeat日志收集工具和logstash相同
filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多
filebeat可以运行在非Java环境,它可以代理logstash在非java环境上收集日志
logstash不足
filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一起使用
filebeat工作流程
1、filebeat收集服务日志发送给logstash
2、logstash过滤,形成标准输出,发送到es主机上
3、es主机在发送给kibana
4、kiabana图形化界面
5、用户通过kiabana查看收集的日志
filebeat实验部署
安装filebeat
准备四台主机
把filebeat源码包拖到opt目录下vim /etc/logstash/logstash.yml
64行重启服务做时间同步
yum install ntpdate -y
ntpdate ntp.aliyun.com 安装nginx
并重启服务
给nginx的日志文件给权限
chmod 777 access.log error.log给filebeat的配置文件做个备份
cp filebeat.yml filebeat.yml.bakvim filebeat.ymlfilebeat inputs模块enabled:true
paths:- /usr/local/nginx/logs/access.log- /usr/local/nginx/logs/error.log
tags: ["nginx"]
fileds:service_name: 20.0.0.12_nginxlog_type: nginxfrom: 20.0.0.12mkdir log
vim file_nginx.conf
input {beats { port => "5044"}
}
output {if "nginx" in [tags]{elasticsearch {hosts => ["20.0.0.10:9200","20.0.0.11:9200"]index => "%{[fields][service_name]}-%{YYYY.MM.dd}"}}stdout{codec => rubydebug}
}nohup ./filebaet -e -c filebeat.yml > filebeat.out &
nohup 表示在后台纪录执行命令的过程
./filebeat 运行文件
-e 使用标准输出的同时进行syslog文件输出
-c 配置文件
执行过程输出到filebeat.out,&后台运行
:查看是否报错
tail -f /opt/filebeat/filebeat.outlogstash -f file_nginx.conf --path.data /opt/test
本地收集
远程收集,远程收集多个日志
mysqlvim /etc/my.cnf
general_log=ON
generl_log_file=/usr/local/mysql/data/mysql_general.log重启服务
查看日志文件是否创建成功在MySQL上创建表
create table xiaobu (id int(2),name varchar(20));mysql上安装nginx,httpdvim /etc/nginx/nginx.conf
改变端口
重启服务http
vim /var/www/html/index.html
vim /usr/share/nginx/html/index.html浏览器访问
20.0.0.50:8080把filebeat拖到opt目录下
压缩
cd /filebeat
vim filebeat.ymlenabled: truepaths: - /var/log/nginx/access.log- /var/log/nginx/error.logtags: ["nginx_50"]fileds:service_name: 20.0.0.50_nginxlog_type: nginxfrom: 20.0.0.50
- type: logenabled: truepaths:- /etc/httpd/logs/access.log- /etc/httpd/logs/error.logtags: ["httpd_50"]fileds: service_name: 20.0.0.50_httpdlog_type: httpdfrom: 20.0.0.50
- type: logenabled: truepaths:- /usr/log/mysql/data/mysql_general.logtags: ["mysql_50"]fileds: service_name: 20.0.0.50_mysqllog_type: mysqlfrom: 20.0.0.50cd /opt/log
vim file_mysql.log
input {beats { port => "5045"}}
output {if "nginx_50" in [tags] {elasticsearch {hosts => ["20.0.0.10:9200","20.0.0.10:9200"]index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"}}if "httpd_50" in [tags] {elasticsearch {hosts => ["20.0.0.10:9200","20.0.0.10:9200"]index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"}}if "mysql_50" in [tags] {elasticsearch {hosts => ["20.0.0.10:9200","20.0.0.10:9200"]index => "%{[fileds][service_name]}-%{+YYYY.MM.dd}"}}stdout {codec => rubydebug}
}nohup ./filebeat -e -c filebeat.yml > filbeat.out &kibana
logstash -f file_mysql.conf --path.data /opt/test1
logstash 可以使用任意端口,只要没被占用都可以使用,推荐从1024使用
logstash 性能上的优化
logstash启动时在JVM虚拟机当中启动,启动一次至少500MB的内存
找到logstash的配置文件
vim /etc/logstash/logstash.yml
pipeline.workers:2
定义了,logstash的工作线程,默认就是CPU数,4 1 4 8给一半即可,2核,2个
pipeline.batch.size: 125
一次性能够批量处理检索事件的大小 125条数
pipeline.batch.delay: 50
查询更新的延迟 50(毫秒),也可以自行调整 15(毫秒)