filebeat+logstash+ES+kibana收集nginx日志

  • 1. filebeat

    • filebeat安裝

        rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
      
      添加repo源
        cd /etc/yum.repos.d/
        vim elastic.repo
        '''
          [elastic-7.x]
          name=Elastic repository for 7.x packages
          baseurl=https://artifacts.elastic.co/packages/7.x/yum
          gpgcheck=1
          gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
          enabled=1
          autorefresh=1
          type=rpm-md
        '''
      
      yum 安裝
        yum install filebeat
        systemctl restart filebeat
      
    • filebeat配置

      /etc/filebeat/filebeat.yml
        # nginx input 開啟
        - type: log
      
          # Change to true to enable this input configuration.
          enabled: true
      
          # Paths that should be crawled and fetched. Glob based paths.
          paths:
              - /var/log/nginx/access_spark.log
              #- c:\programdata\elasticsearch\logs\*
        ......
        # logstatsh output開啟
        output.logstash:
          # The Logstash hosts
          hosts: ["172.17.1.65:5044"]
      
    • filebeat 調試技巧

      filebeat開啟后,不會主動輸出日志,需要手動運行filebeat,打開調試模式
        filebeat -e -d "*"
      
  • 2.nginx

    • 修改nginx配置

      /etc/nginx/
        log_format spark '$remote_addr $time_local $request_method $uri $status';
        access_log /var/log/nginx/access_spark.log spark;
      
  • 3.logstash + ES + Kibana

    • 安裝

      直接docker安裝,有elk的docker鏡像
        docker pull sebp/elk
        
        docker run -d -p 5044:5044 -p 5601:5601 -p 9200:9200 -p 9300:9300 -v /var/data/elk:/var/lib/elasticsearch --mount type=bind,source=/var/log/nginx,target=/var/log/nginx  --name=elk sebp/elk
      
        docker exec -it elk  /bin/bash
      
    • 修改配置

      修改logstash配置,接收filebeat的input, 輸出到ES。
      /etc/logstash/conf.d
        input {
          beats {
            port => 5044
            ssl => false
            #ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
            #ssl_key => "/etc/pki/tls/private/logstash-beats.key"
          }
        }
      
      filter {
        grok {
          match => {"message" => "%{IPORHOST:remote_addr} %{HTTPDATE:time_local} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:http_version}"}
        }
        if "/static" in [request] or "/favicon.ico" in [request] {
          drop{}
        }
        if !("/login" in [request] or "/admin/" in [request] or "/msp/" in [request] or "/company/" in [request] or "/sso_login" in [request]){
          drop {}
        }
      }
      
      output {
      elasticsearch {
          hosts => ["localhost:9200"]
          index => "logstash-nginx-%{+YYYY.MM.dd}"
        }
      }
      
      運行l(wèi)ogstash,貌似修改配置后service logstatsh restart 報錯,手動運行
        nohup /opt/logstash/bin/logstash -f /etc/logstash/conf.d/beats-access.conf &
      
  • 小結

    至此一套監(jiān)控系統就可以使用,可以登錄到kibana查看記錄,kibana的具體使用會在另外一篇文章介紹。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容