
- Logstash 輸入階段
- Logstash - 收集日誌
- Logstash - 支援的輸入
- Logstash 解析和轉換
- Logstash - 解析日誌
- Logstash - 過濾器
- Logstash - 轉換日誌
- Logstash 輸出階段
- Logstash - 輸出階段
- Logstash - 支援的輸出
- Logstash 高階主題
- Logstash - 外掛
- Logstash - 監控 API
- Logstash - 安全性和監控
- Logstash 有用資源
- Logstash - 快速指南
- Logstash - 有用資源
- Logstash - 討論
Logstash - 支援的輸入
Logstash 支援來自不同來源的大量日誌。它與下面解釋的著名來源一起工作。
從指標收集日誌
系統事件和其他時間活動記錄在指標中。Logstash 可以訪問系統指標中的日誌並使用過濾器對其進行處理。這有助於以自定義方式向用戶顯示事件的即時饋送。指標根據指標過濾器的flush_interval 設定重新整理,預設情況下;它設定為 5 秒。
我們透過收集和分析透過 Logstash 執行的事件並在命令提示符下顯示即時饋送,來跟蹤 Logstash 生成的測試指標。
logstash.conf
此配置包含一個生成器外掛,該外掛由 Logstash 提供用於測試指標,並將型別設定設定為“generated”以進行解析。在過濾階段,我們僅使用“if”語句處理具有生成型別的行。然後,指標外掛計算“meter”設定中指定的欄位。指標外掛每隔 5 秒(在flush_interval中指定)重新整理一次計數。
最後,使用codec 外掛進行格式化,將過濾器事件輸出到標準輸出(如命令提示符)。Codec 外掛使用[events][rate_1m]值在 1 分鐘滑動視窗中輸出每秒事件。
input { generator { type => "generated" } } filter { if [type] == "generated" { metrics { meter => "events" add_tag => "metric" } } } output { # only emit events with the 'metric' tag if "metric" in [tags] { stdout { codec => line { format => "rate: %{[events][rate_1m]}" } } }
執行 Logstash
我們可以使用以下命令執行 Logstash。
>logsaths –f logstash.conf
標準輸出(命令提示符)
rate: 1308.4 rate: 1308.4 rate: 1368.654529135342 rate: 1416.4796003951449 rate: 1464.974293984808 rate: 1523.3119444107458 rate: 1564.1602979542715 rate: 1610.6496496890895 rate: 1645.2184750334154 rate: 1688.7768007612485 rate: 1714.652283095914 rate: 1752.5150680019278 rate: 1785.9432934744932 rate: 1806.912181962126 rate: 1836.0070454626025 rate: 1849.5669494173826 rate: 1871.3814756851832 rate: 1883.3443123790712 rate: 1906.4879113216743 rate: 1925.9420717997118 rate: 1934.166137658981 rate: 1954.3176526556897 rate: 1957.0107444542625
從 Web 伺服器收集日誌
Web 伺服器會生成大量關於使用者訪問和錯誤的日誌。Logstash 透過使用輸入外掛從不同的伺服器提取日誌,並將它們儲存在集中位置。
我們正在提取本地 Apache Tomcat 伺服器的stderr 日誌中的資料,並將其儲存在 output.log 中。
logstash.conf
此 Logstash 配置檔案指示 Logstash 讀取 apache 錯誤日誌並新增名為“apache-error”的標籤。我們可以使用檔案輸出外掛簡單地將其傳送到 output.log。
input { file { path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0 /logs/*stderr*" type => "apache-error" } } output { file { path => "C:/tpwork/logstash/bin/log/output.log" } }
執行 Logstash
我們可以使用以下命令執行 Logstash。
>Logstash –f Logstash.conf
輸入日誌示例
這是stderr 日誌的示例,當 Apache Tomcat 中發生伺服器事件時會生成該日誌。
C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\ tomcat7-stderr.2016-12-25.log
Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-9999"] Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 823 ms
output.log
{ "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start\r", "type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"INFO: Starting ProtocolHandler [ \"ajp-bio-8009\"]\r","type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start\r", "type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"INFO: Server startup in 823 ms\r","type":"apache-error","tags":[] }
從資料來源收集日誌
首先,讓我們瞭解如何配置 MySQL 進行日誌記錄。在 MySQL 資料庫伺服器的my.ini 檔案中 [mysqld] 下新增以下行。
在 Windows 中,它位於 MySQL 的安裝目錄中,即 -
C:\wamp\bin\mysql\mysql5.7.11
在 UNIX 中,您可以在 – /etc/mysql/my.cnf 中找到它
general_log_file = "C:/wamp/logs/queries.log" general_log = 1
logstash.conf
在此配置檔案中,檔案外掛用於讀取 MySQL 日誌並將其寫入 ouput.log。
input { file { path => "C:/wamp/logs/queries.log" } } output { file { path => "C:/tpwork/logstash/bin/log/output.log" } }
queries.log
這是在 MySQL 資料庫中執行的查詢生成的日誌。
2016-12-25T13:05:36.854619Z 2 Query select * from test1_users 2016-12-25T13:05:51.822475Z 2 Query select count(*) from users 2016-12-25T13:05:59.998942Z 2 Query select count(*) from test1_users
output.log
{ "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:37.905Z", "@version":"1","host":"Dell-PC", "message":"2016-12-25T13:05:36.854619Z 2 Query\tselect * from test1_users", "tags":[] } { "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:51.938Z", "@version":"1","host":"Dell-PC", "message":"2016-12-25T13:05:51.822475Z 2 Query\tselect count(*) from users", "tags":[] } { "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:06:00.950Z", "@version":"1","host":"Dell-PC", "message":"2016-12-25T13:05:59.998942Z 2 Query\tselect count(*) from test1_users", "tags":[] }