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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-21 14:43 ? 次閱讀

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

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

1.準(zhǔn)備

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

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

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

請(qǐng)選擇以下任一種方式輸入命令安裝依賴(lài)

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

接下來(lái),登陸阿里云控制臺(tái),進(jìn)入日志應(yīng)用,通過(guò)下面的步驟創(chuàng)建日志Project和Logstore:

圖片

點(diǎn)擊Python - SDK 寫(xiě)入,再根據(jù)你的需要?jiǎng)?chuàng)建Project和Logstore:

圖片

圖片

隨后會(huì)進(jìn)入這個(gè)頁(yè)面,直接點(diǎn)擊確定即可:

圖片

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

為了使用阿里云SDK上傳日志,我們需要先獲取Access Token, 將鼠標(biāo)移動(dòng)到右上角頭像上點(diǎn)擊AccessKey管理:

圖片

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

圖片

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

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

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

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

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

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

# 向Logstore寫(xiě)入數(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寫(xiě)入數(shù)據(jù)。
    put_logs()

運(yùn)行程序后出現(xiàn)對(duì)應(yīng)的提示,說(shuō)明日志上傳成功:

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

進(jìn)入控制臺(tái)對(duì)應(yīng)的Project,你會(huì)看到剛剛上傳的日志已經(jīng)顯示在上面:

圖片

3.配置日志告警

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

圖片

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

圖片

效果如下,我這里文本配置得太簡(jiǎn)單了,你也可以在標(biāo)注中配置復(fù)雜一點(diǎn)的文本:

圖片

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

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

    關(guān)注

    6

    文章

    2223

    瀏覽量

    55290
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    806

    瀏覽量

    31231
  • 日志
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    10661
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84885
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

    性能以及資源消耗十分堪憂。基于阿里巴巴多年來(lái)容器服務(wù)日志采集的經(jīng)驗(yàn)積累,并結(jié)合阿里Kubernetes內(nèi)測(cè)以來(lái)廣大用戶的反饋與訴求,今天,
    發(fā)表于 02-28 12:49

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

    性能以及資源消耗十分堪憂。基于阿里巴巴多年來(lái)容器服務(wù)日志采集的經(jīng)驗(yàn)積累,并結(jié)合阿里Kubernetes內(nèi)測(cè)以來(lái)廣大用戶的反饋與訴求,今天,
    發(fā)表于 02-28 12:50

    使用效在阿里上進(jìn)行站式開(kāi)發(fā)運(yùn)維

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

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

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

    再次升級(jí)!阿里Kubernetes日志解決方案

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

    日志服務(wù)支持Shard自動(dòng)分裂

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

    阿里 APM 解決方案地圖

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

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

    (超過(guò)3天的日志會(huì)自動(dòng)被刪除)。專(zhuān)屬的日志庫(kù)名字是ddos-pro-logstore,存放于日志服務(wù)的項(xiàng)目ddos-pro-project-阿里
    發(fā)表于 07-11 15:30

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

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

    如何在Core-1126-JD4上搭建一套類(lèi)似的服務(wù)完成人臉識(shí)別呢

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

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

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

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

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

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

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