可能你是第一次聽說TomatoLog,沒關係,我可以從頭告訴你,通過瞭解番茄日誌,希望能幫助有需要的朋友,番茄日誌處理將大大降低你採集、分析、處理日誌的過程。 ...
番茄日誌(TomatoLog)能做什麼
可能你是第一次聽說TomatoLog,沒關係,我可以從頭告訴你,通過瞭解番茄日誌,希望能幫助有需要的朋友,番茄日誌處理將大大降低你採集、分析、處理日誌的過程。
介紹
TomatoLog 是一個基於 .NETCore 平臺的日誌處理組件,包含客戶端、服務端,非常容易使用和部署。
多客戶端實現
TomatoLog 的客戶端和服務端目前都是基於 .NETCore 版本,客戶端提供了三種日誌流傳輸方式,目前實現了 Redis/RabbitMQ/Kafka流。如果希望使用非 .NETCore 平臺的客戶端,你可以自己開放其它第三方語言的客戶端,通過實現 TomatoLog 傳輸協議,將數據傳送到管道(Redis/RabbitMQ/Kafka)中即可。
強大的日誌存儲方式
TomatoLog 服務端還提供了三種存儲日誌的方式,分別是 File、MongoDB、Elasticsearch,存儲方式可以通過配置文件指定。在 TomatoLog 服務端,我們還提供了一個Web 控制台,通過該控制台,可以對日誌進行查詢、搜索,對服務過濾器進行配置,警報配置、通知發送等等
靈活多樣的日誌報警配置
其中,可使用的警報通知方式有:SMS 和 Email 兩種方式,但是,SMS 其本質是一個 Http 請求,通過 SMS 的配置,可以實現向所有提供了 Http 介面的網關發送通知。
我好累丫
為了開發支持Kafka,還得學習Kafka/Zookeeper,為了使用Kafka-Manager控制台,還學習Scala/sbt編譯雅虎這個破項目,控制台我就起了四個,不說了,看圖。
TomatoLog-1.0.3 版本
TomatoLogServer 伺服器版本 1.0.3 ,主要增加了對Kafka的支持,服務端做了一些優化,在配置上,幾乎沒有改動,只需要在原來的基礎上增加Kafka配置即可
"Kafka": {
"Group": "TomatoLogServer",
"BootstrapServers": "127.0.0.1:9092",
"Topic": "TomatoLog"
}
同時也增加了Kafka客戶端的支持,當前版本為:1.0.3
Install-Package TomatoLog.Client.Kafka
使用方式和其它Redis/RabbitMQ客戶端是沒有任何區別的,主要看下麵的 WriteLogAsync() 方法,只要做好了 TomatoLogClientKafka 的配置,剩下的,就是調用 Exception 的擴展方法 ex.AddTomatoLogAsync()
public class TomatoLogClientKafkaTest
{
[Fact]
public async Task WriteLogAsync()
{
int i = 0;
for (; i < 10; i++)
{
try
{
throw new Exception("Kafka throw exception");
}
catch (Exception ex)
{
ex.Data["connection"] = "127.0.0.1";
await ex.AddTomatoLogAsync(1320);
}
}
Assert.Equal(10, i);
}
ITomatoLogClient client;
public TomatoLogClientKafkaTest()
{
var options = new EventKafkaOptions
{
Logger = null,
LogLevel = Microsoft.Extensions.Logging.LogLevel.Information,
ProjectLabel = "20272",
ProjectName = "TomatoLog",
SysOptions = new EventSysOptions
{
EventId = true,
IP = true,
IPList = true,
MachineName = true,
ProcessId = true,
ProcessName = true,
ThreadId = true,
Timestamp = true,
UserName = true
},
Tags = null,
Version = "1.0.1",
BootstrapServers = "127.0.0.1:9092",
Topic = "TomatoLog"
};
client = new TomatoLogClientKafka(options);
}
}
番茄日誌服務端控制台長什麼樣
首頁看日誌列表
日誌詳情、彈出查看詳情、日誌搜索、支持ES/MongoDB/File搜索
全局日誌處理、警報配置
針對單個項目的詳細日誌處理、警報配置
極簡風格
不管是從項目結構還是解決方案,我都強調簡單就是最美的根本要求,解決方案的內容雖然看起來很多,但是你也只需要按需引用其中一個客戶端就可以了,服務端更是如此,全站都打包在一個 .NETCore 的應用程式中,程式的警報配置都是存儲在配置文件中的,無需資料庫支持。
看到這裡,其實完全就可以點贊了。謝謝大家!
別走,我還有幾個開源工具
優秀的微服務網關Kong的.NETCore中唯一客戶端
https://github.com/lianggx/Kong.Net
基於.NETCore+PostgreSQL的快速開發腳手架
https://github.com/lianggx/mystaging
Asp.NETCore輕鬆學系列的開源實例代碼
https://github.com/lianggx/EasyAspNetCoreDemo
好了,這下我真的沒啥家底了,都抖露給你們看完了。