實驗一:實現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日志文件信息。

