日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

設置日志收集至Kafka

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

Serverless 應用引擎 SAE(Serverless App Engine)支持將應用實例的標準輸出(stdout),以及將應用實例指定路徑的日志采集到云消息隊列 Kafka 版中。在此基礎上,您可以結合自身的業務場景,將Kafka的數據投遞到例如Elasticsearch等其他持久化庫中,便于集中管理和分析日志。本文介紹在SAE控制臺設置日志收集到Kafka的使用場景、操作步驟與采集格式說明。

前提條件

  • SAE

    確保應用中每個實例至少預留0.25 Core CPU和250 MB內存的可用資源。

  • Kafka

    • 開通Kafka并創建Topic。SAE支持Kafka 2.x及以上版本的實例。

    • 如果Kafka的實例通過內網采集,無公網訪問能力,則Kafka集群需要和SAE的實例在同一個VPC內。

    • 配置Kafka白名單

      • 如果VPC一致,但vSwitch不一致,需要在Kafka實例頁面將SAE的vSwitch添加至白名單。

      • 如果需要設置為VPC內可訪問,設置為0.0.0.0/0即可。

背景信息

將微服務應用的日志導入Kafka的功能是對SLS日志采集功能的補充增強,適用于不便使用SLS采集、RAM用戶(子賬號)無法查看SLS日志等場景。

配置文件日志收集

在創建應用過程中配置文件日志收集

  1. 登錄SAE控制臺,在左側導航欄選擇應用管理 > 應用列表,然后選擇目標地域和目標命名空間,最后單擊創建應用。

    xxQdc1LHvq

  2. 應用基本信息配置向導,設置應用相關信息,并單擊下一步:高級設置。

  3. 展開日志配置區域,開啟Kafka日志服務的開關,然后根據下表說明設置相關參數。

    配置項

    說明

    Kafka實例

    選擇目標實例。

    采集日志類型

    選擇日志類型。

    • 文件日志(容器內日志路徑):可以設置多條,默認顯示。

    • 容器標準輸出日志:僅可以設置一條。當您的vSwitch屬于推薦可用區時,下拉列表才會顯示該選項。更多信息,請參見切換安全組和vSwitch。

    日志源

    輸入日志源存放的文件目錄。目錄須包含日志的文件名,例如/tmp0/cjsc.log。容器標準輸出無需設置此選項。文件名與路徑支持正則匹配,同一目錄下,如果日志文件數量多且文件格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。

    重要

    請勿在日志源的存放目錄中存放其他重要文件,避免目錄內的文件被覆蓋。

    Kafka Topic名稱

    選擇已創建的Kafka Topic。

  4. 單擊創建應用。

  5. 驗證結果。

    應用部署完成后,SAE依據所配的日志收集規則收集日志并存放到指定的文件內。

    您可以在應用詳情頁面左側導航欄中,選擇日志管理 > 持久化日志,在持久化日志頁面的日志采集到 Kafka頁簽查看所收集的日志信息。

    如果存在日志數據,則表示日志收集配置成功,您可以依據日志信息進行相關業務分析。

在部署應用過程中配置文件日志收集

警告

重新部署應用后,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

更新應用配置的路徑因實例數的不同而不同。本文以實例數大于等于1為例,介紹如何配置目標功能。當實例數等于0時的操作路徑,請參見更新應用。

  1. 登錄SAE控制臺,在左側導航欄選擇應用管理 > 應用列表,然后選擇目標地域和目標命名空間,最后單擊目標應用名稱。

    IXAcRBAUok

  2. 在目標應用的基礎信息頁面,單擊部署應用。

  3. 找到并展開日志配置區域,開啟Kafka日志服務的開關。

    配置項

    說明

    Kafka實例

    選擇目標實例。

    采集日志類型

    選擇日志類型。

    • 文件日志(容器內日志路徑):可以設置多條,默認顯示。

    • 容器標準輸出日志:僅可以設置一條。當您的vSwitch屬于推薦可用區時,下拉列表才會顯示該選項。更多信息,請參見切換安全組和vSwitch。

    日志源

    輸入日志源存放的文件目錄。目錄須包含日志的文件名,例如/tmp0/cjsc.log。容器標準輸出無需設置此選項。文件名與路徑支持正則匹配,同一目錄下,如果日志文件數量多且文件格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。

    重要

    請勿在日志源的存放目錄中存放其他重要文件,避免目錄內的文件被覆蓋。

    Kafka Topic名稱

    選擇已創建的Kafka Topic。

  4. 配置完成后,完成確定

    重要

    Kafka不支持同一個文件被同時采集到不同的Topic中。因此,如果您在應用部署時采用分批發布或者灰度發布策略,同時配置的日志源不變,只改變日志收集的Topic,那么在所有批次的部署流程成功完成之前,您的日志仍會收集到舊的Topic中。

  5. 驗證結果。

    應用部署完成后,SAE依據所配的日志收集規則收集日志并存放到指定的文件內。

    您可以在應用詳情頁面左側導航欄中,選擇日志管理 > 持久化日志,在持久化日志頁面的日志采集到 Kafka頁簽查看所收集的日志信息。

    如果存在日志數據,則表示日志收集配置成功,您可以依據日志信息進行相關業務分析。

格式說明

當您成功配置日志采集到Kafka后,得到的采集數據格式如下。

{
    "file":"/home/admin/apache-tomcat-8.5.42/logs/localhost.2022-03-01.log",
    "host":"test-kafka-9527eec8-b2c1-4f03-9178-5dac0fe16d07-*****",
    "message":"01-Mar-2022 15:09:36.016 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath",
    "topic":"test2"
}

參數說明如下。

  • file:采集的文件路徑。

  • host:采集的實例名稱。

  • message:采集的具體日志內容。

  • topic:發送的Kafka Topic。

多行采集說明

  • 目前Java應用出現的異常情況表現為日志會被自動合并到一行。Java異常日志示例如下:

    java.lang.RuntimeException: testLog
        at cn.niutong.controller.TestController.heathc(TestController.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
      at ...
  • 檢測到換行符\n的情況下,日志會被重新寫到新的一條里面。建議您在業務程序中,將日志包裝成一個JSON字符串,作為一行統一對外輸出。

如果您有更多需求,例如想要實現多行合并,請加入釘群(釘群號:32874633),聯系產品技術專家進行咨詢。

常見問題

  • SAE日志采集到Kafka是否支持通配符?

    支持。您可以通過設置星號(*)來表示某個文件夾下的所有文件,例如/tmp/logs/*.log。

  • 采集不到日志是什么原因導致的?

    可能跟網絡有關。您可以按照以下步驟進行排查:

    1. 登錄SAE的Webshell,使用telnet命令確認Kafka實例地址、查看網絡是否正常連接。關于Webshell的具體信息,請參見使用Webshell診斷應用

    2. 確認網絡狀態。

      • 網絡不同:確認SAE應用和Kafka實例是否在同一個VPC內,以及是否設置了白名單。

      • 網絡正常:加入釘群(釘群號:32874633),聯系產品技術專家進行咨詢。