Добрый день, коллеги.

Имеется следующая проблема. Для отправки логгов в кафку, был использован appender https://www.nuget.org/packages/NLog.Targets.KafkaAppender/

Сделаны все необходимые настройки. Добавлены rule и targets, но сообщения в кафку не уходят. В логах так же ошибок нет. 

Из обычного проекта c#, проблем нет. 

Есть ли опыт использования расширения для NLog, если есть прошу поделится опытом внедрения!

Нравится

3 комментария

Здравствуйте, Максим!

 

Есть рекомендации, как развернуть минимальный набор компоненов для передачи логов NLog -> Kafka -> GrayLog

 

1. Поднимаем контейнеры 

docker run --name mongo -d mongo:3
docker run --name elasticsearch -e "http.host=0.0.0.0" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -d docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4
docker run --name kafka -p 2181:2181 -p 9092:9092 --env ADVERTISED_HOST=kafka --env ADVERTISED_PORT=9092 -d spotify/kafka
docker run -it --rm  -p 9001:9000 --link kafka -e ZK_HOSTS="kafka:2181" -e APPLICATION_SECRET=letmein -d sheepkiller/kafka-manager
docker run --name graylog --link mongo --link elasticsearch --link kafka -p 9000:9000 -p 12201:12201 -p 514:514 -e GRAYLOG_HTTP_BIND_ADDRESS="0.0.0.0:9000" -e GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ -d graylog/graylog:3.0

2. Подлючаем транспорт 

Подключаам необходимый пакет NLog.Targets.KafkaAppender (или копируем dll)

Конфиг NLog

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    autoReload="true"
    throwExceptions="true">
    <extensions>
        <add assembly="Terrasoft.NLog"/>
        <add assembly="NLog.Targets.KafkaAppender" />
    </extensions>
    <targets async="true">
        <target xsi:type="KafkaAppender"
            name="bpmonlineGelfKafka"
            topic="LogTest"
            brokers="v_artemchuk.tscrm.com:9092"
            debug="false"
            async="false">
            <layout xsi:type="GelfJsonLayout" facility="bpmOnline">
                <attribute name="mesasgeObject" layout="${messageObject}" encode="false"/>
                <attribute name="context" layout="${ndlc}" encode="true"/>
            </layout>
        </target>
    </targets>
    <rules>
        <logger name="*" minlevel="Debug" writeTo="bpmonlineGelfKafka" />
    </rules>
</nlog>

 

Мотков Илья,

здравствуйте! воспользовался данным примером, только вместо транспорта использую RabbitMQ Nlog.RabbitMQ.Target.dll

настроил nlog.config и nlog.config.targets согласно рекомендациям к

Nlog.RabbitMQ.Target, но почему то не конектится RabbitMQ. создал MVC проект с него коннектится без проблем. Версия Creatio 7.18.3

Так же в настройках конфига вижу. что Вы указали в зависимостях Terrasoft.NLog, но я такой сборки не нахожу, можете прокомментировать.

Спасибо.

Алексей, боюсь без личной настройки сложно что-то сказать по этой проблеме. В системе на данный момент не предусмотрено использование Nlog.RabbitMQ.  Возможно стоит обратить внимание на версии Nlog.

Показать все комментарии