filebeat 6.4.3 採集 nginx日誌

filebeat 6.4.3 採集 nginx日誌

nginx 日誌格式規範:

將日誌配置組合添加至nginx主配置文件;

     log_format  eslog  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

ES集羣安裝插件

集羣收集nginx日誌需要安裝 ingest-user-agent ,ingest-geoip ,安裝完成之後需要重啓es 服務,否則數據無法正常錄入es集羣。

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-user-agent
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-geoip
/usr/share/elasticsearch/bin/elasticsearch-plugin list

升級java至1.8

yum install java-1.8 -y

安裝filebeat

導入key

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

創建repo 文件

more lostash.repo

[elastic-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安裝

yum install filebeat -y

修改filebeat主配置文件

more /etc/filebeat/filebeat.yml

filebeat.config:
prospectors:
path: ${path.config}/prospectors.d/.yml
reload.enabled: false
modules:
path: /etc/filebeat/modules.d/
.yml
reload.enabled: false

output.elasticsearch:
hosts: ['10.2.3.30:9200']

setup.kibana:
host: "10.2.3.13:5601"

配置filebeat nginx 模塊

Access 日誌:/data/nginxlog/eslog/es-access.*
Error 日誌:/data/nginxlog/eslog/es-error.*
more /etc/filebeat/modules.d/nginx.yml 
- module: nginx
  # Access logs
  access:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/data/nginxlog/eslog/es-access.*"]
  # Error logs
  error:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/data/nginxlog/eslog/es-error.*"]

添加啓動

systemctl enable filebeat

開啓nginx 模塊

cd /etc/filebeat

filebeat modules enable nginx

filebeat modules list

初始化環境

此操作會自動導入filebeat模板和nginx dashboard 到es 集羣:

Set up the initial environment:
Loaded index template
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded machine learning job configurations
./filebeat setup -e

啓動服務

systemctl start filebeat

啓動服務報錯

內容如下:

Exiting: Error importing Kibana dashboards: fail to import the dashboards in Kibana: Error importing directory /usr/share/filebeat/kibana: Failed to import index-pattern: Failed to load directory /usr/share/filebeat/kibana/6/index-pattern:
  error loading /usr/share/filebeat/kibana/6/index-pattern/filebeat.json: returned 400 to import file: <nil>. Response: {"statusCode":400,"error":"Bad Request","message":"Request Timeout after 30000ms"}

2018-10-31T16:35:45.659+0900    INFO    kibana/client.go:113    Kibana url: http://10.2.3.13:5601
2018-10-31T16:37:15.664+0900    ERROR   instance/beat.go:743    Exiting: Error importing Kibana dashboards: fail to import the dashboards in Kibana: Error importing directory /usr/share/filebeat/kibana: Failed to import index-pattern: Failed to load directory /usr/share/filebeat/kibana/6/index-pattern:
  error loading /usr/share/filebeat/kibana/6/index-pattern/filebeat.json: fail to execute the HTTP POST request: Post http://10.2.3.13:5601/api/kibana/dashboards/import?force=true: net/http: request canceled (Client.Timeout exceeded while awaiting headers). Response: 

處理辦法:

登陸kibana 進入Dev tools 刪除

刪除舊模板
    #DELETE _template/filebeat-6.X.X 
刪除舊數據
    #DELETE filebeat-6.4.2-*
重新導入模板:
cd /etc/filebeat/
filebeat setup
Loaded index template
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Loaded machine learning job configurations
重啓服務:
systemctl restart filebeat

Dashboard 效果:

filebeat 6.4.3 採集 nginx日誌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章