一、ELK中日志数据采集器Filebeat的安装和使用
Beats是数据采集的得力工具,Beats 能够将数据转发至 Logstash 进行转换和解析。Filebeat是Beats中的一种,Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
服务器少的时候,登录服务器查看日志还算方便,但是如果服务器、虚拟机和容器生成日志多了的话,使用SSH难免力不从心。这时Filebeat 就派上用场了,FileBeat提供一种轻量型方法,用于转发和汇总日志与文件。
Filebeat的官网下载地址:Download Filebeat • Lightweight Log Analysis | Elastic 安装过程如下:
#安装过程
user@u007:/opt$ mkdir filebeat; cd filebeat/
user@u007:/opt/filebeat$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.7.1-linux-x86_64.tar.gz
user@u007:/opt/filebeat$ sudo tar zxvf filebeat-7.7.1-linux-x86_64.tar.gz
user@u007:/opt/filebeat$ cd filebeat-7.7.1-linux-x86_64
#添加配置文件test.yml,内容如下
user@u007:/opt/filebeat/filebeat-7.7.1-linux-x86_64$ cat test.yml
- type: log
enabled: true
paths:
- /opt/nginxlog/*.log
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
setup.kibana:
output.elasticsearch:
hosts: ["127.0.0.1:9200"]
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
#启动filebeat,将日志数据读取写入到es当中
user@u007:/opt/filebeat/filebeat-7.7.1-linux-x86_64$ ./filebeat -e -c test.yml
二、Filebeat结合logstash进行日志处理入elasticsearch
进入filebeat目录,增加nginxlog.yml配置文件,配置如下,主要修改paths下的log目录地址以及设置output为logstash的IP端口地址。
user@u007:/opt/filebeat/filebeat-7.7.1-linux-x86_64$ cat nginxlog.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/nginxlog/*.log
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
setup.template.settings:
index.number_of_shards: 6
output.logstash:
hosts: ["10.21.45.25:5044"]
#启动filebeat同时使用public输出日志
user@u007:/opt/filebeat/filebeat-7.7.1-linux-x86_64$ ./filebeat -e -c nginxlog.yml -d "publish"
进入logstash目录,增加config下nginxlog.conf配置文件,设置数据input来源的beats端口,以及output设置为elasticsearch的hosts列表,指定index名称。
user@u007:/opt/logstash/logstash-7.7.1$ cat config/nginxlog.conf
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://192.168.11.11:9200", "http://192.168.11.12:9200" ,"http://192.168.11.13:9200"]
index => "nginxlog-%{+YYYY.MM.dd}"
}
stdout {
codec=> rubydebug
}
}
#启动logstash
user@u007:/opt/logstash/logstash-7.7.1$ bin/logstash -f config/nginxlog.conf
启动filebeat和logstash之后,/opt/nginxlog/*.log类日志文件的数据就会从filebeat->logstash->elasticsearch进入索引库。nginxlog-%{+YYYY.MM.dd},示例如图:
三、报错Resource interpreted as Stylesheet but transferred with MIME type text/plain的解决
刚刚搭建好一套多服务器及lnmp,但是在安装一套开源产品的时候发现有点问题,从显示上看就是页面显示时感觉css都加载不正常。但是通过源代码查看后点击各css以及js链接文件又能正常访问,也是奇了怪了。忍者就这样把产品安装了,但是在安装完后进入管理页面没法看了。这是什么鬼,于是使用chrome进行了一些审核分析,其它的异常没有,就是有下面几行问题:
Resource interpreted as Stylesheet but transferred with MIME type text/plain: http://test.007.cn/static-dist/app/css/bootstrap.css?version=5.1.1.
login:35 Resource interpreted as Stylesheet but transferred with MIME type text/plain: http://test.007.cn/static-dist/app/css/main.css?version=5.1.1.
login:36 Resource interpreted as Stylesheet but transferred with MIME type text/plain: http://test.007.cn/static-dist/app/css/main-v2.css?version=5.1.1.
login:37 Resource interpreted as Stylesheet but transferred with MIME type text/plain: http://test.007.cn/static-dist/corporatetrainingbundle/css/main.css?version=5.1.1.
一看到这个问题我首先是怀疑服务器上的nginx配置,因为我在本地也安装了,一切显示都正常。而线上服务器是刚搭建的,使用docker搭建,nginx配置之类的东西我还没来得及处理,于是进到docker中的nginx配置,看到了以下两行是被注释的,感觉可疑,于是都打开了重启docker镜像,果真问题就在这里。
include /etc/nginx/mime.types;
default_type application/octet-stream;
之后再分别进行注释发现问题就是出在include /etc/nginx/mime.types这行被注释的问题上。问题也就因此解决了。publish:November 8, 2019 -Friday
标签:opt,Filebeat,u007,filebeat,采集器,nginxlog,日志,logstash From: https://blog.csdn.net/weixin_47792780/article/details/142382927