Ver código fonte

😁优化ES相关代码

zuohuaijun 2 anos atrás
pai
commit
eb08ff4157

+ 7 - 7
Admin.NET/Admin.NET.Application/Configuration/Logging.json

@@ -21,13 +21,13 @@
     },
     },
     "ElasticSearch": {
     "ElasticSearch": {
       "Enabled": false, // 启用ES日志
       "Enabled": false, // 启用ES日志
-      "AuthType": "Basic", //ES认证类型,可选 Basic、ApiKey、Base64ApiKey
-      "User": "dilon", //Basic认证的用户名,使用Basic认证类型时必填
-      "Password": "123456", //Basic认证的密码,使用Basic认证类型时必填
-      "ApiId": "", //使用ApiKey认证类型时必填
-      "ApiKey": "", //使用ApiKey认证类型时必填
-      "Base64ApiKey": "TmtrOEszNEJuQ0NyaWlydGtROFk6SG1RZ0w3YzBTc2lCanJTYlV3aXNzZw==", //使用Base64ApiKey认证类型时必填
-      "Fingerprint": "37:08:6A:C6:06:CC:9A:43:CF:ED:25:A2:1C:A4:69:57:90:31:2C:06:CA:61:56:39:6A:9C:46:11:BD:22:51:DA", //ES使用Https时的证书指纹,使用证书请自行实现
+      "AuthType": "Basic", // ES认证类型,可选 Basic、ApiKey、Base64ApiKey
+      "User": "dilon", // Basic认证的用户名,使用Basic认证类型时必填
+      "Password": "123456", // Basic认证的密码,使用Basic认证类型时必填
+      "ApiId": "", // 使用ApiKey认证类型时必填
+      "ApiKey": "", // 使用ApiKey认证类型时必填
+      "Base64ApiKey": "TmtrOEszNEJuQ0NyaWlydGtROFk6SG1RZ0w3YzBTc2lCanJTYlV3aXNzZw==", // 使用Base64ApiKey认证类型时必填
+      "Fingerprint": "37:08:6A:C6:06:CC:9A:43:CF:ED:25:A2:1C:A4:69:57:90:31:2C:06:CA:61:56:39:6A:9C:46:11:BD:22:51:DA", // ES使用Https时的证书指纹
       "ServerUris": [ "http://192.168.1.100:9200" ], // 地址
       "ServerUris": [ "http://192.168.1.100:9200" ], // 地址
       "DefaultIndex": "adminnet" // 索引
       "DefaultIndex": "adminnet" // 索引
     },
     },

+ 19 - 16
Admin.NET/Admin.NET.Core/Enum/EsAuthTypeEnum.cs → Admin.NET/Admin.NET.Core/Enum/ElasticSearchAuthTypeEnum.cs

@@ -3,26 +3,29 @@
 // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
 // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
 
 
 namespace Admin.NET.Core;
 namespace Admin.NET.Core;
+
 /// <summary>
 /// <summary>
 /// ES认证类型枚举
 /// ES认证类型枚举
 /// <para>https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/_options_on_elasticsearchclientsettings.html</para>
 /// <para>https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/_options_on_elasticsearchclientsettings.html</para>
 /// </summary>
 /// </summary>
 [Description("ES认证类型枚举")]
 [Description("ES认证类型枚举")]
-public enum EsAuthTypeEnum
+public enum ElasticSearchAuthTypeEnum
 {
 {
-	/// <summary>
-	/// BasicAuthentication
-	/// </summary>
-	[Description("BasicAuthentication")]
-	Basic = 1,
-	/// <summary>
-	/// ApiKey
-	/// </summary>
-	[Description("ApiKey")]
-	ApiKey = 2,
-	/// <summary>
-	/// Base64ApiKey
-	/// </summary>
-	[Description("Base64ApiKey")]
-	Base64ApiKey = 3
+    /// <summary>
+    /// BasicAuthentication
+    /// </summary>
+    [Description("BasicAuthentication")]
+    Basic = 1,
+
+    /// <summary>
+    /// ApiKey
+    /// </summary>
+    [Description("ApiKey")]
+    ApiKey = 2,
+
+    /// <summary>
+    /// Base64ApiKey
+    /// </summary>
+    [Description("Base64ApiKey")]
+    Base64ApiKey = 3
 }
 }

+ 38 - 36
Admin.NET/Admin.NET.Core/Logging/ElasticSearchSetup.cs

@@ -12,40 +12,42 @@ namespace Admin.NET.Core;
 /// </summary>
 /// </summary>
 public static class ElasticSearchSetup
 public static class ElasticSearchSetup
 {
 {
-	public static void AddElasticSearch(this IServiceCollection services)
-	{
-		var option = App.GetConfig<ElasticSearchOptions>("Logging:ElasticSearch");
-		if (!option.Enabled) return;
-
-		var uris = option.ServerUris.Select(u => new Uri(u));
-		// 集群
-		var connectionPool = new SniffingConnectionPool(uris);
-		var connectionSettings = new ConnectionSettings(connectionPool).DefaultIndex(option.DefaultIndex);
-		// 单连接
-		//var connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(uris.FirstOrDefault())).DefaultIndex(option.DefaultIndex);
-		//  认证类型
-		if (option.AuthType == EsAuthTypeEnum.Basic)// Basic 认证
-		{
-			connectionSettings.BasicAuthentication(option.User, option.Password);
-		}
-		else if (option.AuthType == EsAuthTypeEnum.ApiKey) //ApiKey 认证
-		{
-			connectionSettings.ApiKeyAuthentication(option.ApiId, option.ApiKey);
-		}
-		else if (option.AuthType == EsAuthTypeEnum.Base64ApiKey)// Base64ApiKey 认证
-		{
-			connectionSettings.ApiKeyAuthentication(new ApiKeyAuthenticationCredentials(option.Base64ApiKey));
-		}
-		else return;
-		//ES使用Https时的证书指纹,使用证书请自行实现
-		if (!string.IsNullOrEmpty(option.Fingerprint))
-		{
-			connectionSettings.CertificateFingerprint(option.Fingerprint);
-		}
-
-		var client = new ElasticClient(connectionSettings);
-		client.Indices.Create(option.DefaultIndex, u => u.Map<SysLogOp>(m => m.AutoMap()));
-
-		services.AddSingleton(client); // 单例注册
-	}
+    public static void AddElasticSearch(this IServiceCollection services)
+    {
+        var option = App.GetConfig<ElasticSearchOptions>("Logging:ElasticSearch");
+        if (!option.Enabled) return;
+
+        var uris = option.ServerUris.Select(u => new Uri(u));
+        // 集群
+        var connectionPool = new SniffingConnectionPool(uris);
+        var connectionSettings = new ConnectionSettings(connectionPool).DefaultIndex(option.DefaultIndex);
+        // 单连接
+        //var connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(uris.FirstOrDefault())).DefaultIndex(option.DefaultIndex);
+
+        // 认证类型
+        if (option.AuthType == ElasticSearchAuthTypeEnum.Basic)// Basic 认证
+        {
+            connectionSettings.BasicAuthentication(option.User, option.Password);
+        }
+        else if (option.AuthType == ElasticSearchAuthTypeEnum.ApiKey) //ApiKey 认证
+        {
+            connectionSettings.ApiKeyAuthentication(option.ApiId, option.ApiKey);
+        }
+        else if (option.AuthType == ElasticSearchAuthTypeEnum.Base64ApiKey)// Base64ApiKey 认证
+        {
+            connectionSettings.ApiKeyAuthentication(new ApiKeyAuthenticationCredentials(option.Base64ApiKey));
+        }
+        else return;
+
+        // ES使用Https时的证书指纹
+        if (!string.IsNullOrEmpty(option.Fingerprint))
+        {
+            connectionSettings.CertificateFingerprint(option.Fingerprint);
+        }
+
+        var client = new ElasticClient(connectionSettings);
+        client.Indices.Create(option.DefaultIndex, u => u.Map<SysLogOp>(m => m.AutoMap()));
+
+        services.AddSingleton(client); // 单例注册
+    }
 }
 }

+ 55 - 52
Admin.NET/Admin.NET.Core/Option/ElasticSearchOptions.cs

@@ -3,57 +3,60 @@
 // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
 // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
 
 
 namespace Admin.NET.Core;
 namespace Admin.NET.Core;
+
+/// <summary>
+/// ES配置选项
+/// </summary>
 public class ElasticSearchOptions
 public class ElasticSearchOptions
 {
 {
-	/// <summary>
-	/// 是否启用
-	/// </summary>
-	public bool Enabled { get; set; } = false;
-
-	/// <summary>
-	/// ES认证类型,可选 Basic、ApiKey、Base64ApiKey
-	/// </summary>
-	public EsAuthTypeEnum AuthType { get; set; }
-
-	/// <summary>
-	/// Basic认证的用户名
-	/// </summary>
-	public string User { get; set; }
-
-	/// <summary>
-	/// Basic认证的密码
-	/// </summary>
-	public string Password { get; set; }
-
-	/// <summary>
-	/// ApiKey认证的ApiId
-	/// </summary>
-	public string ApiId { get; set; }
-
-	/// <summary>
-	/// ApiKey认证的ApiKey
-	/// </summary>
-	public string ApiKey { get; set; }
-
-	/// <summary>
-	/// Base64ApiKey认证时加密的加密字符串
-	/// </summary>
-	public string Base64ApiKey { get; set; }
-
-	/// <summary>
-	/// ES使用Https时的证书指纹,使用证书请自行实现
-	/// <para>https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/connecting.html</para>
-	/// </summary>
-	public string Fingerprint { get; set; }
-
-	/// <summary>
-	/// 地址
-	/// </summary>
-	public List<string> ServerUris { get; set; } = new List<string>();
-
-	/// <summary>
-	/// 索引
-	/// </summary>
-
-	public string DefaultIndex { get; set; }
-}
+    /// <summary>
+    /// 是否启用
+    /// </summary>
+    public bool Enabled { get; set; } = false;
+
+    /// <summary>
+    /// ES认证类型,可选 Basic、ApiKey、Base64ApiKey
+    /// </summary>
+    public ElasticSearchAuthTypeEnum AuthType { get; set; }
+
+    /// <summary>
+    /// Basic认证的用户名
+    /// </summary>
+    public string User { get; set; }
+
+    /// <summary>
+    /// Basic认证的密码
+    /// </summary>
+    public string Password { get; set; }
+
+    /// <summary>
+    /// ApiKey认证的ApiId
+    /// </summary>
+    public string ApiId { get; set; }
+
+    /// <summary>
+    /// ApiKey认证的ApiKey
+    /// </summary>
+    public string ApiKey { get; set; }
+
+    /// <summary>
+    /// Base64ApiKey认证时加密的加密字符串
+    /// </summary>
+    public string Base64ApiKey { get; set; }
+
+    /// <summary>
+    /// ES使用Https时的证书指纹,使用证书请自行实现
+    /// <para>https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/connecting.html</para>
+    /// </summary>
+    public string Fingerprint { get; set; }
+
+    /// <summary>
+    /// 地址
+    /// </summary>
+    public List<string> ServerUris { get; set; } = new List<string>();
+
+    /// <summary>
+    /// 索引
+    /// </summary>
+    public string DefaultIndex { get; set; }
+}