Elasticsearch +log4net.Elasticsearch+kibana(Windows)
需要的东西 (目前用的 5.6 版本)
1. 先安装 jdk 和 jre 配置 java 环境
2. 下载 Elasticsearch , 运行 Elasticsearch-5.6.16\bin\Elasticsearch.bat 启动 es, 端口默认 9200;(执行 Elasticsearch-service.bat install 设置为 Windows 服务)
3. 下载 kibana, 运行 kibana-5.6.16-Windows-x86\bin\kibana.bat 启动 kibana 端口默认 5601;(执行 nssm install kibana, 设置 kibana 路径, 设置为 Windows 服务, 需要下载 nssm)
4. 定时删除 es 索引; 删除 es 索引 \ deleteIndex\delete.ext 程序附加到 Windows 任务计划程序, 设置每天跑一次
- var url= ConfigurationManager.AppSettings["EsUrl"];
- var indexs = ConfigurationManager.AppSettings["EsIndex"];
- var day=int.Parse(ConfigurationManager.AppSettings["ESdeleteDay"]);
- log.Info($"url:{url}; 索引:{indexs}; 删除天数:{day}");
- var nodes = new Uri(url);
- var client = new ElasticClient(nodes);
- var index = indexs.Split(',');
- var time = DateTime.Now;
- foreach (var item in index)
- {
- var logindex=item+"-"+time.AddDays(day * -1).ToString("yyyy.MM.dd");
- var result = client.DeleteIndex(logindex);
- if (result.ApiCall.Success)
- {
- log.Info($"已删除索引:{logindex}");
- }
- }
写入日志到 es
log4net.Elasticsearch 基于 log4net, 基本无缝对接 log4net, 只需要更改 log4net.config 配置即可
- <log4net>
- <root>
- <level value="All" />
- <!-- 记录到 es-->
- <appender-ref ref="ElasticSearchAppender" />
- </root>
- <appender name="ElasticSearchAppender" type="log4net.ElasticSearch.ElasticSearchAppender, log4net.ElasticSearch">
- <layout type="log4net.Layout.PatternLayout,log4net">
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L - %m%n" />
- </layout>
- <connectionString value="Server=localhost;Index=pxin_log;Port=9200;rolling=true"/>
- <lossy value="false" />
- <!-- 相当于缓存池, 满 10 个才写入 es-->
- <bufferSize value="10" />
- <evaluator type="log4net.Core.LevelEvaluator">
- <!-- 异常级别直接写入 es-->
- <threshold value="ERROR"/>
- </evaluator>
- </appender>
- </root>
- </log4net>
来源: http://www.bubuko.com/infodetail-3149158.html