nginx 로 그 를 logstash 에 기록 합 니 다.

5181 단어 군집
1. nginx 로그 형식 vim / datas / soft / nginx / conf / nginx. conf 를 수정 하여 기본 로그 의 설명 을 json 형식 으로 변경 합 니 다.
log_format json '{"@timestamp":"$time_iso8601",'
'"host":"$server_addr",'
'"clientip":"$remote_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"url":"$uri",'
'"referer":"$http_referer",'
'"agent":"$http_user_agent",'
'"status":"$status"}';

access_log /var/log/nginx/access_json.log json;

nginx -s reload
테스트 파일:
[root@node1 logstash-6.4.0]# vim config/file.conf 

input {
    file {
         path => "/var/log/nginx/access.log"
         codec => json
         start_position => "beginning"
         }
}

output {
    stdout {
     codec  => rubydebug
   }
}
[root@node1 logstash-6.4.0]# ./bin/logstash -f config/file.conf 
...
....
{
    "upstreamtime" => "-",
         "referer" => "-",
        "clientip" => "192.168.10.1",
             "url" => "/index.html",
           "agent" => "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
      "@timestamp" => 2018-09-03T07:29:29.000Z,
            "path" => "/var/log/nginx/access.log",
    "upstreamhost" => "-",
        "@version" => "1",
    "responsetime" => 0.0,
       "http_host" => "192.168.10.14",
          "status" => "304",
            "host" => "192.168.10.14",
            "size" => 0
}
...
....

방문 로 그 를 살 펴 보 니 JSON 형식 으로 elasticsearch 에 기록 되 었 습 니 다.
input { 
  file {
    path => "/var/log/nginx/access.log"
    codec => json
    type  =>  "ngxin-log" 
    start_position  => "beginning"
  }

}

output {
if [type] == "nginx-log"{
 elasticsearch {
  hosts => ["192.168.56.11:9200"]
  index => "nginx-log-%{+YYYY.MM.dd}"
}  
} 

좋은 웹페이지 즐겨찾기