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

設置日志收集至Kafka

重要

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

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

前提條件

  • SAE

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

  • Kafka
    • 開通Kafka并創建TopicSAE支持Kafka 2.x及以上版本的實例。
    • 如果Kafka的實例通過內網采集,無公網訪問能力,則Kafka集群需要和SAE的實例在同一個VPC內。
    • 配置Kafka白名單
      • 如果VPC一致,但vSwitch不一致,需要在Kafka實例頁面將SAE的vSwitch添加至白名單。
      • 如果需要設置為VPC內可訪問,設置為0.0.0.0/0即可。

背景信息

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

配置文件日志收集

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

  1. 登錄SAE控制臺

  2. 在左側導航欄,選擇應用管理 > 應用列表,在頂部菜單欄選擇地域,然后單擊創建應用

  3. 應用基本信息配置向導,設置應用相關信息,并單擊下一步:應用部署配置

  4. 應用部署配置配置向導,選擇技術棧語言應用部署方式,設置部署信息。

  5. 展開日志收集服務區域,單擊日志采集到Kafka頁簽,打開開通日志收集到Kafka日志服務功能開關。
    配置項說明
    Kafka實例選擇目標實例。
    采集日志類型選擇日志類型。
    • 文件日志(容器內日志路徑):可以設置多條,默認顯示。
    • 容器標準輸出日志:僅可以設置一條。當您的vSwitch屬于推薦可用區時,下拉列表才會顯示該選項。更多信息,請參見切換安全組和vSwitch
    日志源輸入日志源存放的文件目錄。目錄須包含日志的文件名,例如/tmp0/cjsc.log。容器標準輸出無需設置此選項。文件名與路徑支持正則匹配,同一目錄下,如果日志文件數量多且文件格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。
    重要 請勿在日志源的存放目錄中存放其他重要文件,避免目錄內的文件被覆蓋。
    Kafka Topic名稱選擇已創建的Kafka Topic。
  6. 單擊下一步:確認規格

  7. 確認規格配置向導,查看您所創建應用的詳細信息以及配置費用情況,并單擊確認創建

    頁面會跳轉至創建完成配置向導,您可以單擊應用詳情頁進入基本信息頁面。

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

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

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

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

警告

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

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

  1. 登錄SAE控制臺

  2. 在左側導航欄,選擇應用管理 > 應用列表,在頂部菜單欄選擇地域,然后單擊具體應用名稱。

  3. 基本信息頁面右上角,單擊部署應用

  4. 部署應用頁面下方,展開日志收集服務區域,單擊日志采集到Kafka頁簽,打開開通日志收集到Kafka日志服務功能開關。
    配置項說明
    Kafka實例選擇目標實例。
    采集日志類型選擇日志類型。
    • 文件日志(容器內日志路徑):可以設置多條,默認顯示。
    • 容器標準輸出日志:僅可以設置一條。當您的vSwitch屬于推薦可用區時,下拉列表才會顯示該選項。更多信息,請參見切換安全組和vSwitch
    日志源輸入日志源存放的文件目錄。目錄須包含日志的文件名,例如/tmp0/cjsc.log。容器標準輸出無需設置此選項。文件名與路徑支持正則匹配,同一目錄下,如果日志文件數量多且文件格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。
    重要 請勿在日志源的存放目錄中存放其他重要文件,避免目錄內的文件被覆蓋。
    Kafka Topic名稱選擇已創建的Kafka Topic。
  5. 配置完成后,單擊確認
    重要 Kafka不支持同一個文件被同時采集到不同的Topic中。因此,如果您在應用部署時采用分批發布或者灰度發布策略,同時配置的日志源不變,只改變日志收集的Topic,那么在所有批次的部署流程成功完成之前,您的日志仍會收集到舊的Topic中。
  6. 驗證結果。
    應用部署完成后,SAE依據所配的日志收集規則收集日志并存放到指定的文件內。

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

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

格式說明

當您成功配置日志采集到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),聯系產品技術專家進行咨詢。