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 調(diào)試技巧

      filebeat開啟后,不會(huì)主動(dòng)輸出日志,需要手動(dòng)運(yùn)行filebeat,打開調(diào)試模式
        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配置,接收f(shuō)ilebeat的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}"
        }
      }
      
      運(yùn)行l(wèi)ogstash,貌似修改配置后service logstatsh restart 報(bào)錯(cuò),手動(dòng)運(yùn)行
        nohup /opt/logstash/bin/logstash -f /etc/logstash/conf.d/beats-access.conf &
      
  • 小結(jié)

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

友情鏈接更多精彩內(nèi)容