番茄日志發布1.0.3版本-增加Kafka支持


番茄日志(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

好了,這下我真的沒啥家底了,都抖露給你們看完了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM