elk(filebeat)日志收集工具

elk(filebeat)日志收集工具

elk:filebeat日志收集工具 和logstash相同

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多

filebeat可以运行在非Java环境。他可以代理logstash在非java环境上收集日志

filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用

filebeat收集的数据可以发往多个主机,即远程收集

logstash收集日志的过程:

input(从哪里收集)

filter(过滤)

output(发送es实例)

logstash可以使用任意端口,只要没被占用都可以使用,推荐1024之后开始

本机获取收集nginx的日志实验:

四台服务器

192.168.233.11

192.168.233.12

192.168.233.13

192.168.233.21

先关闭四个主机的防火墙和安全机制

cd 到opt目录下,把这个软件包拖到elk1(就是有logstash的主机)

解压软件包

tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz

改名文件以及改配置文件

在四台主机操作重启配置文件

四台主机一块安装时间同步软件

yum install ntpdate -y

四台主机同步操作时间同步

data查看一下

在elk1安装一台nginx

yum -y install nginx,如果报错改端口号

改完nginx的配置文件 记得重启服务

在elk1安装一台httpd

开启httpd的服务

一个设置this httpd 一个设置this nginx

做httpd的配置文件

做nginx的配置文件

在浏览器查看

直接输IP就是httpd 加上8080端口就是nginx,因为上面的步骤将nginx的端口号改掉了

找到nginx日志的位置

cd /var/log/nginx

看他是不是绿色 如果不是绿色就赋权

先cd到opt 再cd到这个目录

给文件做备份

打开这个配置文件

在148行左右注释elasticsearch outputs

在167行左右取消logstash output的注释

在24行左右把enabled后面改成true ,path后面插七行/var/log/nginx/access.log

/var/log/nginx/error.log

tags:["nginx"]

fields:

service_name:192.168.233.11_nginx

log_type:nginx

from:192.168.233.11

(以上操作没标注的就都是在elk1操作)

配置logstash

创建目录log 写一个配置文件

写配置文件

cd到/opt/filebeat目录下

启动filebeat

出现这个没问题

nohup是指在后台记录执行命令的过程

.filebeat 运行文件

-e 使用标准输出的同时syslog文件输出

-c 指定配置文件

执行过程输出到filebeat.out这个文件当中 &后台运行

再开启一台elk1的终端

cd到opt里面的filebeat

然后查看日志

cd 到opt目录下的log

执行nginx.conf文件

出现问题先杀进程,以下是查看系统进程

然后杀进程

最后出现这个算成功

刷新

然后命中就会自动出现

远程收集多个日志实验

(Nginx+Apache+Mysql日志)

实验组件

logstash节点:20.0.0.10

Node1节点:node1/20.0.0.20 Elasticsearch

Node2节点:node2/20.0.0.30 Elasticsearch

日志来源服务器:20.0.0.81 MYsql Nginx Apache Filebeat

实验步骤

1.安装Filebeat并配置

#81

cd /opt/

--上传filebeat-6.7.2-linux-x86_64.tar.gz--

tar -xf filebeat-6.7.2-linux-x86_64.tar.gz

mv filebeat-6.7.2-linux-x86_64 filebeat

cd filebeat/

vim filebeat.yml

filebeat.inputs:

  • type: log

enabled: true

paths:

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

tags: ["nginx_81"]

fields:

service_name: 20.0.0.81_nginx

log_type: nginx

from: 20.0.0.81

  • type: log

enabled: true

paths:

  • /etc/httpd/logs/access_log

  • /etc/httpd/logs/error_log

tags: ["httpd_81"]

fields:

service_name: 20.0.0.81_httpd

log_type: httpd

from: 20.0.0.81

  • type: log

enabled: true

paths:

  • /usr/local/mysql/data/mysql_general.log

tags: ["mysql_81"]

fields:

service_name: 20.0.0.81_mysql

log_type: mysql

from: 20.0.0.81

--------------Elasticsearch output-------------------

(全部注释掉)

----------------Logstash output---------------------

output.logstash:

hosts: ["20.0.0.10:5045"] #指定logstash的IP和端口

2.配置logstash

10:

cd /opt/log/

vim nhm_81.conf

input {

beats { port => "5045"}

}

output {

if "nginx_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"

}

}

if "httpd_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"

}

}

if "mysql_81" in [tags] {

elasticsearch {

hosts => ["20.0.0.20:9200","20.0.0.30:9200"]

index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"

}

}

stdout {

codec => rubydebug

}

}

3.启动filebeat

nohup ./filebeat -e -c filebeat.yml > filebeat.out &

logstash -f nhm_81.conf --path.data /opt/test2 &

4.结果

相关推荐
向往风的男子4 分钟前
【devops】devops-ansible之介绍和基础使用
运维·ansible·devops
安科瑞刘鸿鹏23 分钟前
分布式光伏发电系统如何确保电能质量达到并网要求?
服务器·网络·分布式·嵌入式硬件·能源
学习3人组39 分钟前
CentOS安装Hadoop系列
linux·hadoop·centos
xiaojiesec1 小时前
第159天:安全开发-Python-协议库爆破&FTP&SSH&Redis&SMTP&MYSQL等
运维·安全·ssh
Length-vision1 小时前
Linux入门学习:Linux调试器gdb使用
linux·学习
技术不支持1 小时前
WSL2+Ubuntu 22.04搭建Qt开发环境+中文输入法
linux·运维·服务器·qt·ubuntu
木人舟1 小时前
以root用户登陆ubuntu的桌面环境
linux·运维·ubuntu
几度热忱1 小时前
【Ubuntu】Ubuntu双网卡配置 实现内外网互不影响同时可用
linux·运维·ubuntu
打工人0071 小时前
ubuntu 执行定时任务crontab -e 无法输入的问题
linux·运维·ubuntu