一、命令列輸入輸出操作
1、命令列輸出:
說明:a、stdin{}[標準輸入]
b、stdout{}[標準輸出]
2、以json格式展示,在logstash中等號用 => 表示
3、輸出到es
a、要使用按照自定義方式根據當前時間生成索引的方式來輸入到es必須開啟 manage_template => true此引數,如使用logstash預設的logstash-% 則可以不用開啟此引數,這個問題困擾了一下午。
如果不使用manage_template => true引數會報錯如下:
[406]
b、如果只是自己命名的index則不需要新增manage_template引數。
4、既輸出到es又輸出到螢幕:
5、要刪除後重新生成index收集需要刪除相應的記錄
6、nginx日誌格式設定:
log_format access_log_json '';
7、filter
a、grok:對我們收進來的事件進行過濾。
簡單的grok案例:
下面匹配的內容為:55.3.244.1get /index.html 158240.043
input如圖}filter % % % %"} #這一行的意思是,將訊息按照logstash提供的正則欄位匹配,然後將匹配的內容的欄位命名為冒號後面自定義的名字
}}

其中截圖中序號1的意思是引用序號2中的匹配欄位,然後又引用了兩次qs匹配欄位,qs匹配欄位在同目錄下的grok-patterns中
二、公司架構設計
1、每個es上面都啟動一個kibana
2、kibana都連自己的es
3、前端nginx負載均衡+ ip_hash + 驗證 +acl
三、rsyslog記錄
1、系統日誌配置檔案在/etc/rsyslog.conf中
2、配置檔案中路徑前面加 - 是為了不讓日誌立馬寫到檔案中而是先進行快取,在很多系統優化中都使用到。
3、要開啟系統日誌收集功能需要如下操作:
a、sed -i 's/#*.* @@remote-host:514/*.* @@192.168.30.42:514/g' /etc/rsyslog.conf
b、 systemctl restart rsyslog
4、手動產生系統日誌方法
logger hehe
四、tcp日誌收集
1、給tcp埠傳送訊息方法
yum install -y nc
a、方法1:
echo "wohaoshuai" | nc 192.168.56.12 6666
b、方法2:
nc 192.168.30.42 6666 < /etc/resolv.conf
c、方法3:偽裝置的方式
echo "wohaoshuai" > /dev/tcp/192.168.30.42/6666
五、收集http日誌架構
六、使用elk進行日誌收集需求與思路
4、如果使用redis list 作為elkstack的訊息佇列,那麼請對所有list key的長度進行監控 llen key_name
a、根據實際情況,例如超過10萬就報警。
七、相應logstash配置檔案
1、stdin除錯
input2、file外掛}filter
output"
manage_template => true
}stdout
}
input3、使用type判斷}filter
output"
manage_template => true
}stdout
}
input4、收集某個目錄下的所有日誌file
}filter
output"
manage_template => true}}
if [type] == "es-log"
"manage_template => true}}
stdout
}
input5、匹配與合併file
file
}filter
output"
manage_template => true}}
if [type] == "es-log"
"manage_template => true}}
if [type] == "docker-log"
"manage_template => true}}
stdout
}
input6、綜合後寫入es}}filter
output
}
input7、收集nginx日誌,並轉換成json格式輸出到es,nginx日誌格式見本章 一.6file
file}}
filter
output"
manage_template => true}}
if [type] == "es-log"
"manage_template => true}}
if [type] == "docker-log"
"manage_template => true}}
stdout
input8、收集系統日誌}filter
output"
manage_template => true}}
stdout
}
input9、收集tcp日誌}filter
output"
} stdout
}
input10、filter匹配與篩選欄位}filter
output
}
input11、使用logstash自帶的匹配規則匹配http日誌}filter % % % %" }
}}output
}
input12、獲取輸入資訊到redis}filter" }}}
output"
manage_template => true}}
stdout
}
input13、收集http日誌到redis}output
stdout
}
input14、獲取redis日誌到es}output
stdout
}
input}filter" }}}
output"
manage_template => true
}stdout
}
ELK學習實驗010 Logstash簡介
logstash是具有實時流水線功能的開源資料收集引擎。logstash可以動態統一來自不同 的資料,並將資料規範化為您選擇的目標。清除所有資料並使其民主化,以用於各種高階下游分析和視覺化用例。 雖然logstash最初推動了日誌收集方面的創新,但其功能遠遠超出了該用例。 任何型別的事件都可以通過各...
ELK安裝使用
安裝版本 elasticsearch 2 4 6 logstash2 4 0 kibana4 6 1 啟動前先關閉防火牆 systemctl...
Logstash安裝和使用
logstash是開源的伺服器端資料處理管道,能夠同時 從多個 採集資料 轉換資料,然後將資料傳送到您最喜歡的 儲存庫 中。 我們的儲存庫當...