ELK之四-----logstash收集nginx日志及tcp日志


實驗一:實現Logstash收集nginx訪問日志(Json格式)

1、安裝並配置nginx服務

1、安裝nginx,生產中最好是源碼編譯nginx服務。

[root@logstash conf.d]# yum install nginx -y

2、將nginx的日志格式改為Json格式:/etc/nginx/.nginx.conf配置文件進行修改。

http {
    log_format access_json '{"@timestamp":"$time_iso8601",'  # 在http段改為json格式
        '"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",'
        '"domain":"$host",'
        '"xff":"$http_x_forwarded_for",'
        '"referer":"$http_referer",'
        '"status":"$status"}';

    access_log  /var/log/nginx/access.log  access_json;  #末尾和起始的名稱一致

3、啟動nginx服務:nginx

2、在logstash配置文件中創建收集nginx日志的文件

1、在logstash主機的/etc/logstash/conf.d/目錄下創建一個nginx.conf配置文件

input {
  file {
   path => "/var/log/nginx/access.log"  # 從nginx的日志目錄下提取日志文件
   start_position => "beginning"
   stat_interval => 3
   type => "nginx-access-log"  # log日志名稱
   codec => "json"  # 標准輸入是指定為json格式
  }

}

output {
  if [type] == "nginx-access-log" {
    elasticsearch {   # 標准輸出至elasticsearch主機上
    hosts => ["192.168.7.100:9200"]
    index => "nginx-access-log-7-100-%{+YYYY.MM.dd}"
  }}
}

2、重新啟動logstash服務

# systemctl restart logstash

3、在kibana網頁上創建nginx日志索引

1、創建索引模式

 2、在discover選項查看創建的nginx日志信息

 實驗二:基於Logstash服務收集TCP日志

官方文檔:https://www.elastic.co/guide/en/logstash/5.6/input-plugins.html

1、在logstash的/etc/logstash/conf.d/目錄下創建一個tcp.conf配置文件,用來監聽指定的TCP端口。

input {
  tcp {
   port => "5044"
   codec => "json"
  }
}

output {
  elasticsearch {
    hosts => ["192.168.7.100:9200"]
    index => "tcp-log-7-100-%{+YYYY.MM.dd}"
  }
} 

2、在kibana網頁上創建索引

3、在discover選項中可以看到此時添加的tcp日志文件信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM