日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

.NET Core 基于 Grafana Loki 日志初体验

發(fā)布時(shí)間:2023/12/4 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 基于 Grafana Loki 日志初体验 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹

Loki: like Prometheus, but for logs.

Loki是一個(gè)輕量級(jí)的日志系統(tǒng),受到Prometheus項(xiàng)目的啟發(fā),由Grafana團(tuán)隊(duì)設(shè)計(jì)和開(kāi)發(fā),所以在Grafana中是原生支持的,具有可水平擴(kuò)展,高度可用等特性,通過(guò)存儲(chǔ)壓縮的、非結(jié)構(gòu)化的日志以及僅索引元數(shù)據(jù),更加易于操作并且運(yùn)行成本更低。

github: https://github.com/grafana/loki

組件

?promtail 是代理,負(fù)責(zé)收集日志并將其發(fā)送給Loki。?loki 是主服務(wù)器,負(fù)責(zé)存儲(chǔ)日志和處理查詢(xún)。?Grafana 用于查詢(xún)和顯示日志。

安裝

官方安裝文檔:https://grafana.com/docs/loki/latest/installation/

官網(wǎng)支持了幾種常見(jiàn)的安裝方式,我這里主要使用 Docker Compose 安裝。

docker-compose.yaml

version: "3"networks:loki:services:loki:image: grafana/loki:2.2.1ports:- "3100:3100"command: -config.file=/etc/loki/local-config.yamlnetworks:- lokipromtail:image: grafana/promtail:2.2.1volumes:- /var/log:/var/logcommand: -config.file=/etc/promtail/config.ymlnetworks:- lokigrafana:image: grafana/grafana:latestports:- "3000:3000"networks:- loki

執(zhí)行下邊命令,下載docker-compose.yaml

wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml -O docker-compose.yaml

啟動(dòng)容器

docker-compose up -d

啟動(dòng)成功后,運(yùn)行 docker ps,可以看到啟動(dòng)了3個(gè)服務(wù),端口為3100的Grafana,端口為3000的loki服務(wù),還有promtail代理。

接下來(lái),訪問(wèn) http://localhost:3000 到Grafana的頁(yè)面,首次登錄需要初始化賬號(hào)和密碼,然后找到左邊菜單的 Configuration -> Data Sources -> Add Data Source -> Loki,配置數(shù)據(jù)源,在url里填寫(xiě)loki服務(wù)的地址即可,然后保存,然后可以到 Explore 頁(yè)面,查看數(shù)據(jù)。

在 .NET Core 中配置

這里主要用到了 Serilog 的Loki擴(kuò)展,我新建了一個(gè) webapi項(xiàng)目,名字叫LogDemo,然后需要通過(guò)Nuget安裝以下幾個(gè)組件。

?Serilog?Serilog.AspNetCore?Serilog.Sinks.Grafana.Loki

安裝完成以后,接著修改Program.cs 配置 Serilog。

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).UseSerilog((context, config) =>{config.Enrich.FromLogContext().Enrich.WithProperty("app", context.HostingEnvironment.ApplicationName).WriteTo.GrafanaLoki("http://localhost:3100").WriteTo.Console();});

啟動(dòng)項(xiàng)目后,刷新幾次頁(yè)面,再回到 Grafana 的Explore 頁(yè)面,輸出查詢(xún)條件?{app="LogDemo"},然后就可以查詢(xún)到webapi的日志。

總結(jié)

Grafana 原生支持,體驗(yàn)也很好,和其他日志系統(tǒng)ELK相比,具有輕量級(jí),高可用,高效率等特點(diǎn),是一個(gè)非常優(yōu)秀的日志組件,本文簡(jiǎn)單嘗試使用 Loki 日志系統(tǒng),更多的介紹和配置請(qǐng)參照官方文檔。

https://grafana.com/oss/loki/

總結(jié)

以上是生活随笔為你收集整理的.NET Core 基于 Grafana Loki 日志初体验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。