0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何通過阿里云日志服務搭建一套通過Python上傳日志的監(jiān)控服務

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-21 14:43 ? 次閱讀

在我們的日常生活工作中,經(jīng)常會遇到需要上傳日志的場景,比如多臺機器運行同一個程序,并且需要記錄每臺機器程序產(chǎn)生的日志,根據(jù)相關關鍵詞告警,或者進行無數(shù)據(jù)告警,如果自己搭建這套系統(tǒng)需要耗費不少時間,因此如果能使用市面上現(xiàn)成的系統(tǒng)會很方便。

本文將教你如何通過阿里云日志服務搭建一套通過Python上傳日志、配置日志告警的監(jiān)控服務。

1.準備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install aliyun-log-python-sdk

接下來,登陸阿里云控制臺,進入日志應用,通過下面的步驟創(chuàng)建日志Project和Logstore:

圖片

點擊Python - SDK 寫入,再根據(jù)你的需要創(chuàng)建Project和Logstore:

圖片

圖片

隨后會進入這個頁面,直接點擊確定即可:

圖片

2.使用阿里云SDK上傳Python日志

為了使用阿里云SDK上傳日志,我們需要先獲取Access Token, 將鼠標移動到右上角頭像上點擊AccessKey管理:

圖片

然后點擊創(chuàng)建AccessKey,輸入相關驗證信息就能獲取 accessKeyId 和 accessKey:

圖片

編寫Python代碼,配置AccessKey和你在第一步驟創(chuàng)建的Project及l(fā)ogstore名稱:

from aliyun.log import LogClient, PutLogsRequest, LogItem, GetLogsRequest, IndexConfig
import time

# 配置AccessKey、服務入口、Project名稱、Logstore名稱等相關信息。
# 阿里云訪問密鑰AccessKey。更多信息,請參見訪問密鑰。
# 阿里云賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創(chuàng)建并使用RAM用戶進行API訪問或日常運維。
accessKeyId = "你的AccessKey ID"
accessKey = "你的AccessKey"
# 日志服務的域名。更多信息,請參見服務入口。此處以廣州為例,其它地域請根據(jù)實際情況填寫。
endpoint = "cn-guangzhou.log.aliyuncs.com"

# 創(chuàng)建日志服務Client。
client = LogClient(endpoint, accessKeyId, accessKey)

# Project名稱。
project_name = "aliyun-test-project"
#Logstore名稱
logstore_name = "aliyun-test-logstore"
# 查詢語句。
query = "*| select dev,id from " + logstore_name
# from_time和to_time表示查詢?nèi)罩镜臅r間范圍,Unix時間戳格式。
from_time = int(time.time()) - 3600
to_time = time.time() + 3600

然后我們就可以編寫Python代碼創(chuàng)建索引(日志的索引可以理解為MySQL中的數(shù)據(jù)庫)和插入日志了:

# 向Logstore寫入數(shù)據(jù)。
def put_logs():
    print("ready to put logs for %s" % logstore_name)
    log_group = []
    for i in range(0, 100):
        log_item = LogItem()
        contents = [
            ('dev', 'test_put'),
            ('id', str(i))
        ]
        log_item.set_contents(contents)
        log_group.append(log_item)
    request = PutLogsRequest(project_name, logstore_name, "", "", log_group, compress=False)
    client.put_logs(request)
    print("put logs for %s success " % logstore_name)
    time.sleep(5)

if __name__ == '__main__':
    # 向Logstore寫入數(shù)據(jù)。
    put_logs()

運行程序后出現(xiàn)對應的提示,說明日志上傳成功:

python test.py
# ready to put logs for tradingview
# put logs for tradingview success

進入控制臺對應的Project,你會看到剛剛上傳的日志已經(jīng)顯示在上面:

圖片

3.配置日志告警

日志告警的配置也非常簡單,輸入你的查詢條件,獲得輸出后點擊上方另存為告警:

圖片

在查詢統(tǒng)計中添加你需要監(jiān)控并觸發(fā)告警的條件,比如我設置出現(xiàn)一次該日志的時候觸發(fā)告警:

圖片

效果如下,我這里文本配置得太簡單了,你也可以在標注中配置復雜一點的文本:

圖片

用起來挺方便的,如果你有類似的多機器日志監(jiān)控服務,比如分布式模型訓練監(jiān)控、交易服務監(jiān)控等等,可以考慮使用這個日志服務。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 監(jiān)控
    +關注

    關注

    6

    文章

    2149

    瀏覽量

    54996
  • 編輯器
    +關注

    關注

    1

    文章

    798

    瀏覽量

    31011
  • 日志
    +關注

    關注

    0

    文章

    132

    瀏覽量

    10616
  • python
    +關注

    關注

    54

    文章

    4758

    瀏覽量

    84289
收藏 人收藏

    評論

    相關推薦

    IoT日志利器:嵌入式日志客戶端(C Producer)發(fā)布

    摘要: 2017年12月19日至20日,2017云棲大會·北京峰會在國家會議中心召開,飛天智能是貫穿云棲大會不變的主題,計算、大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等熱門話題備受各方關注。其中阿里日志
    發(fā)表于 12-26 12:15

    API信息全掌控,方便你的日志管理——阿里推出API網(wǎng)關打通日志服務

    用戶來說,完全是黑盒,且信息不對稱。而現(xiàn)在阿里API網(wǎng)關把日志輸出到日志服務,讓信息做到幾乎透明,用戶對自己API的情況完全掌控,這滿足了
    發(fā)表于 02-06 15:24

    全面提升,阿里Docker/Kubernetes(K8S) 日志解決方案與選型對比

    性能以及資源消耗十分堪憂?;?b class='flag-5'>阿里巴巴多年來容器服務日志采集的經(jīng)驗積累,并結合阿里Kubernetes內(nèi)測以來廣大用戶的反饋與訴求,今天,
    發(fā)表于 02-28 12:49

    全面提升,阿里Docker/Kubernetes(K8S) 日志解決方案與選型對比

    性能以及資源消耗十分堪憂?;?b class='flag-5'>阿里巴巴多年來容器服務日志采集的經(jīng)驗積累,并結合阿里Kubernetes內(nèi)測以來廣大用戶的反饋與訴求,今天,
    發(fā)表于 02-28 12:50

    使用效在阿里上進行站式開發(fā)運維

    應用為核心的站式研發(fā)體驗。先上張大圖:為什么需要效來集成各個產(chǎn)品?重復的概念目前阿里
    發(fā)表于 04-12 13:51

    通過頁面埋點做監(jiān)控卻不影響性能?解密ARMS前端監(jiān)控數(shù)據(jù)上報技術內(nèi)幕

    ?會不會影響業(yè)務性能?這就涉及到前端監(jiān)控監(jiān)控指標和日志上報。帶著這兩個問題,本文就為您介紹下,在采集多類日志數(shù)據(jù)的情況下,
    發(fā)表于 05-16 22:17

    再次升級!阿里Kubernetes日志解決方案

    月份日志服務和容器服務團隊起發(fā)布了阿里Kubernetes
    發(fā)表于 05-28 19:08

    日志服務支持Shard自動分裂

    摘要: 日志服務提供Shard自動分裂功能,實時監(jiān)控Shard流量,自動進行shard分裂以應對流量上漲,解決流量估算不準、隨時可能上漲又難以及時處理的問題,保障數(shù)據(jù)完整。日志
    發(fā)表于 06-25 14:44

    阿里 APM 解決方案地圖

    的用戶場景包括航旅,電商,車聯(lián)網(wǎng)的各類業(yè)務。監(jiān)控日志監(jiān)控功能可通過對用戶的日志
    發(fā)表于 07-05 16:54

    阿里DDoS高防 - 訪問與攻擊日志實時分析(四)

    (超過3天的日志會自動被刪除)。專屬的日志庫名字是ddos-pro-logstore,存放于日志服務的項目ddos-pro-project-阿里
    發(fā)表于 07-11 15:30

    如何通過互聯(lián)網(wǎng)將TCP報文傳輸?shù)?b class='flag-5'>阿里服務器?

    情況說明: 現(xiàn)場有幾臺嵌入式設備,每臺設備上有塊EC20模塊做為TCP客戶端,希望將現(xiàn)場采集的傳感器數(shù)據(jù)通過互聯(lián)網(wǎng)傳輸?shù)?b class='flag-5'>阿里服務器,
    發(fā)表于 12-17 08:21

    如何在Core-1126-JD4上搭建一套類似的服務完成人臉識別呢

    如何在Core-1126-JD4上搭建一套類似的服務完成人臉識別呢?
    發(fā)表于 02-21 07:19

    基于OpenHarmony的阿里IoT服務實現(xiàn)

    實現(xiàn)基于OpenHarmony的阿里IoT服務。小凌派RK2206開發(fā)板采用瑞芯微高性能、高性價比的RK2206芯片。RK2206芯片是款低功耗、高集成的MCU無線局域網(wǎng)處理器,它
    發(fā)表于 06-17 09:36

    對于大規(guī)模系統(tǒng)日志日志模式提煉算法的優(yōu)化

    LARGE框架是部署在中國科學院超級計算環(huán)境中的日志分析系統(tǒng),通過日志收集、集中分析、結果反饋等步驟對環(huán)境中的各種日志文件進行監(jiān)控和分析。在
    發(fā)表于 11-21 14:54 ?7次下載
    對于大規(guī)模系統(tǒng)<b class='flag-5'>日志</b>的<b class='flag-5'>日志</b>模式提煉算法的優(yōu)化

    一套異步、分布、并行處理的日志記錄系統(tǒng)

    日志系統(tǒng)是個完整信息系統(tǒng)的重要組成部分,海量的日志信息方面可以挖掘出用戶的通用行為模式,提高系統(tǒng)的服務質(zhì)量,另
    發(fā)表于 12-12 17:27 ?0次下載
    <b class='flag-5'>一套</b>異步、分布、并行處理的<b class='flag-5'>日志</b>記錄系統(tǒng)