欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-10 23:31:31
可能你是第一次听说TomatoLog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集、分析、处理日志的过程。 ......

番茄日志(tomatolog)能做什么

可能你是第一次听说tomatolog,没关系,我可以从头告诉你,通过了解番茄日志,希望能帮助有需要的朋友,番茄日志处理将大大降低你采集、分析、处理日志的过程。

介绍

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

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编译雅虎这个破项目,控制台我就起了四个,不说了,看图。

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

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);
    }
}

番茄日志服务端控制台长什么样

首页看日志列表

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

日志详情、弹出查看详情、日志搜索、支持es/mongodb/file搜索

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

全局日志处理、警报配置

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

针对单个项目的详细日志处理、警报配置

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

极简风格

不管是从项目结构还是解决方案,我都强调简单就是最美的根本要求,解决方案的内容虽然看起来很多,但是你也只需要按需引用其中一个客户端就可以了,服务端更是如此,全站都打包在一个 .netcore 的应用程序中,程序的警报配置都是存储在配置文件中的,无需数据库支持。

看到这里,其实完全就可以点赞了。谢谢大家!

别走,我还有几个开源工具

优秀的微服务网关kong的.netcore中唯一客户端
https://github.com/lianggx/kong.net

基于.netcore+postgresql的快速开发脚手架

asp.netcore轻松学系列的开源实例代码
https://github.com/lianggx/easyaspnetcoredemo

好了,这下我真的没啥家底了,都抖露给你们看完了。