從資料來源傳送或取得資料

如果您想要資料來源伺服器將日誌事件傳送至 Elastic Logstash(用於測試)或 Guardium 通用連接器,請配置 Elastic Filebeat 或 Syslog 來轉遞事件。如果您的資料來源只存在於雲端上,您可能需要尋找其他解決方案,將審核日誌事件或檔案傳送至 Logstash 或 Guardium 通用連接器。例如,CloudWatch 及 CloudTrail 服務在 Amazon AWS 上是另一個解決方案。

暫時停止配置資料來源,並根據您可以從日誌中複製的幾個日誌範例開始開發某些項目。畢竟這是您的主要焦點。當您準備好將剖析器安裝在 Logstash 或 Guardium 通用連接器上,並測試它時,請回到此步驟。

並非所有資料來源都可讓資料輕鬆地傳送至另一部伺服器,有時您需要開發一個 Logstash 過濾器外掛程式,以片段形式連接並提取日誌。例如,搭配 Amazon S3,您可以使用 Amazon CloudWatch,以容許 Guardium 通用連接器擷取日誌。其他資料來源(例如 Snowflake 及 Teradata)可能需要您使用 Logstash JDBC 輸入外掛程式來提取活動資料。

配置 Syslog

最簡單的入門方式就是使用 Syslog,因為它是預先安裝在 Linux 發行套件中。不過,稍後考量切換至 Filebeat,因為 Syslog 可能會截斷長日誌訊息。此外,Filebeat 還具有其他優點,例如負載平衡及更佳效能。

並非所有資料庫都容許將其日誌傳送至 Syslog,例如 MysQL,因此您可能需要使用 $InputFileName /...,以配置 Syslog 從檔案中讀取日誌。Syslog 配置檔通常位於 /etc/rsyslog.conf 中。

若要配置 Syslog 以將審核日誌傳送至「Guardium 通用連接器」,請執行下列動作:
  1. 在「模組」區段下,輸入一個規則,通知 Syslog 要將日誌傳送至何處。例如,在 MongoDB 中,規則看起來如下:
    programname, isequal, "mongod" @<Guardium-Collector-IP>:<port>
    使用字首 @<IP:port> 透過 UDP 傳送日誌,以及使用 @@<IP:port> 透過 TCP 傳送日誌。稍後,當配置 Guardium 通用連接器時,您需要驗證已在 Guardium 中設定相同的埠。
  2. 如果您想要暫時跳過將資料傳送至遠端測試 Logstash 或 Guardium 伺服器,請配置 Syslog 以將訊息寫入至本端日誌檔:
    :programname, isequal, "mongod" /var/log/syslog-messages-mongodb.log
    然後,當一般 Syslog「訊息」到達 Logstash 或「Guardium 通用連接器」時,您可以查看它看起來像什麼:
  3. 重新啟動 Syslog 以套用您的變更:service rsyslog restart

配置 Filebeat

當您想要正式作業備妥時,Filebeat 是偏好的選項。您可能需要在資料庫伺服器上安裝 Elastic Filebeat。Filebeat 配置檔通常位於 /etc/filebeat/filebeat.yml 中。

若要配置 Filebeat,以將審核日誌傳送至 Guardium 通用連接器,請執行下列動作:
  • filebeat.yaml 中配置 filebeat.input 區段。 設定 enabled: true,並確定路徑清單中至少有一個路徑。 與 Syslog 不同,在這裡您需要確定輸入與資料來源 auditLog 輸出產生關聯。
  • 如果您想要使用 Filebeat,在相同埠上從相同的伺服器傳送不同的資料來源,請將不同的標記附加至每一個輸入日誌。當您在「Guardium 通用連接器」中配置連線時,這些標記稍後可協助識別並過濾或只剖析符合該資料來源的正確事件(請參閱在 Guardium 中新增連接器及外掛程式)。例如,
    # ============================== Filebeat inputs ===============================
    filebeat.inputs:
    # Each -is an input. Most options can be set at the input level, so
    # you can use different inputs for various configurations.
    # Below are the input specific configurations.
    - type: log
    # Change to true to enable this input configuration.
    enabled: true
    # Paths that should be crawled and fetched. Glob based paths.paths:
    -/var/lib/mongo/auditLog.json
    tags: ["mongodb"]
  • 配置 output.logstash 區段。請確定此部分未註銷,並輸入您的測試 Logstash 或 Guardium 通用連接器作為主機。例如,
    output.logstash:
    # The Logstash hosts
    hosts: ["<Universal-Connector-IP>:<port>"]
    然後,重新啟動檔案以套用您的變更:
    service filebeat restart
需要考量的重點:
  • 並非所有送入事件都必須相關。您需要尋找一種方法,在資料來源伺服器中過濾出它們,若不可行,則在「過濾器」外掛程式中進行。如果您使用 Syslog 將資料傳送至 Logstash 或 Guardium 通用連接器,則其他事件可能來自使用 Syslog 服務的其他服務,例如:核心、Telnet。
  • 如果可能的話,請考慮資料的效能、失效接手及持續性。例如,Filebeat 支援負載平衡及持續性。但如果您無法使用它們,您要如何管理它們?如果將資料拉入 Guardium 且收集器超載,會怎麼樣?或關閉?您是否需要審核資料來源的所有事件,或可以過濾活動日誌以包含較少的事件嗎?
建議:
  • 如果可能的話,請準備 Script,以取得與原生審核、Syslog 或 Filebeat 相關的配置變更。這些 Script 稍後可以供其他人使用,以更快使用您的外掛程式。