乐闻世界logo
搜索文章和话题

How to Log to Elastic Search by NLog or SeriLog with authentications

1 个月前提问
1 个月前修改
浏览次数7

1个答案

1

要通过NLog或SeriLog将日志数据发送到开启了身份验证的Elasticsearch,我们需要配置NLog或SeriLog,使其能够连接到Elasticsearch,并正确处理身份验证。接下来我将分别介绍如何使用这两种日志库实现。

使用NLog

  1. 添加必要的包首先,需要在项目中安装NLog的Elasticsearch扩展包 NLog.Targets.ElasticSearch

    bash
    Install-Package NLog.Targets.ElasticSearch
  2. 配置NLog 在NLog的配置文件(通常是 NLog.config)中,添加一个Elasticsearch目标并设置相关的身份验证参数。

    xml
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <extensions> <add assembly="NLog.Targets.ElasticSearch"/> </extensions> <targets> <target name="elastic" xsi:type="ElasticSearch" uri="http://your-elasticsearch-url:9200" requireAuth="true" username="your-username" password="your-password"> <field name="time" layout="${longdate}" /> <field name="message" layout="${message}" /> </target> </targets> <rules> <logger name="*" minlevel="Info" writeTo="elastic" /> </rules> </nlog>

    通过上述配置,NLog 会将日志数据发送到配置的Elasticsearch服务器,并使用指定的用户名和密码进行身份验证。

使用SeriLog

  1. 添加必要的包对于SeriLog,需要安装 Serilog.Sinks.Elasticsearch

    bash
    Install-Package Serilog.Sinks.Elasticsearch
  2. 配置SeriLog 在代码中配置SeriLog以连接到Elasticsearch,并设置身份验证:

    csharp
    var logger = new LoggerConfiguration() .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://your-elasticsearch-url:9200")) { ModifyConnectionSettings = conn => conn.BasicAuthentication("your-username", "your-password"), AutoRegisterTemplate = true, IndexFormat = "your-index-{0:yyyy.MM}" }) .CreateLogger(); logger.Information("This is a test log message");

    在这个示例中,我们设置了Elasticsearch的URL和基本身份验证信息,以及日志索引的格式。

总结

无论是使用NLog还是SeriLog,重要的是正确配置身份验证信息,确保日志数据能够安全地发送到Elasticsearch。务必保证这些敏感信息安全,避免在版本控制系统中暴露。通过这样的配置,可以利用Elasticsearch强大的搜索和分析能力来管理和分析日志数据。

2024年8月16日 21:04 回复

你的答案