ELK日志收集系统-filbeat

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

vim filebeat.yml

filebeat 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_nginx
   log_type: nginx
   from: 20.0.0.12



mkdir 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.out

logstash -f file_nginx.conf --path.data /opt/test	
本地收集

远程收集,远程收集多个日志

mysql

vim /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,httpd

vim /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.yml

 enabled: true
 paths: 
  - /var/log/nginx/access.log
  - /var/log/nginx/error.log
  tags: ["nginx_50"]
  fileds:
     service_name: 20.0.0.50_nginx
     log_type: nginx
     from: 20.0.0.50
- type: log
  enabled: true
  paths:
    - /etc/httpd/logs/access.log
    - /etc/httpd/logs/error.log
  tags: ["httpd_50"]
  fileds: 
     service_name: 20.0.0.50_httpd
     log_type: httpd
     from: 20.0.0.50
- type: log
  enabled: true
  paths:
    - /usr/log/mysql/data/mysql_general.log
    tags: ["mysql_50"]
  fileds: 
     service_name: 20.0.0.50_mysql
     log_type: mysql
     from: 20.0.0.50
     
     
cd /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(毫秒)
相关推荐
必叫你大败而归16 小时前
ELK日志分析系统
elk
確定饿的猫16 小时前
ELK环境部署
elk
YCyjs17 小时前
ELK 企业级日志分析系统
elk
码农郁郁久居人下17 小时前
ELK 企业级日志分析系统
elk
史努比.3 天前
ELK 企业级日志分析系统
elk
檀越剑指大厂3 天前
【Elasticsearch系列四】ELK Stack
大数据·elk·elasticsearch
2401_840192273 天前
ELFK日志分析平台,架构和通信
elk·elasticsearch·架构
ygqygq26 天前
ElK 8 收集 Nginx 日志
nginx·elk
纪佰伦8 天前
ELK在Linux服务器下使用docker快速部署(超详细)
linux·服务器·elk
写....写个大西瓜8 天前
【Docker部署ELK】(7.15)
elk·docker