diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 706b6dc76..be3600829 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,12 +47,6 @@ jobs: - name: Lint run: make lint - - name: Check env - run: |- - pwd - ls -la ${{ github.workspace }}/kibana-config - echo "${{ github.workspace }}" - test: name: Matrix Acceptance Test needs: build @@ -87,7 +81,6 @@ jobs: ELASTICSEARCH_PASSWORD: ${{ env.KIBANA_SYSTEM_PASSWORD }} XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: a7a6311933d3503b89bc2dbc36572c33a6c10925682e591bffcab6911c06786d LOGGING_ROOT_LEVEL: debug - XPACK_FLEET_ENABLED: true ports: - 5601:5601 options: --health-cmd="curl http://localhost:5601/api/status" --health-interval=10s --health-timeout=5s --health-retries=10 diff --git a/Makefile b/Makefile index 03f822eaa..aa5d5eb15 100644 --- a/Makefile +++ b/Makefile @@ -132,8 +132,7 @@ docker-kibana: docker-network docker-elasticsearch set-kibana-password ## Start -e ELASTICSEARCH_USERNAME=$(KIBANA_SYSTEM_USERNAME) \ -e ELASTICSEARCH_PASSWORD=$(KIBANA_SYSTEM_PASSWORD) \ -e XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=a7a6311933d3503b89bc2dbc36572c33a6c10925682e591bffcab6911c06786d \ - -e "xpack.fleet.enabled=true" \ - -v ./kibana-config/:/usr/share/kibana/config/ \ + -e LOGGING_ROOT_LEVEL=debug \ --name $(KIBANA_NAME) \ --network $(ELASTICSEARCH_NETWORK) \ docker.elastic.co/kibana/kibana:$(STACK_VERSION); \ @@ -158,7 +157,7 @@ docker-kibana-with-tls: docker-network docker-elasticsearch set-kibana-password -e SERVER_SSL_CERTIFICATE=/certs/localhost+1.pem \ -e SERVER_SSL_KEY=/certs/localhost+1-key.pem \ -e SERVER_SSL_ENABLED=true \ - -e "logging.root.level=debug" \ + -e LOGGING_ROOT_LEVEL=debug \ --name $(KIBANA_NAME) \ --network $(ELASTICSEARCH_NETWORK) \ docker.elastic.co/kibana/kibana:$(STACK_VERSION); \ diff --git a/docs/resources/kibana_synthetics_monitor.md b/docs/resources/kibana_synthetics_monitor.md index c3b8311ef..d274455c4 100644 --- a/docs/resources/kibana_synthetics_monitor.md +++ b/docs/resources/kibana_synthetics_monitor.md @@ -89,8 +89,6 @@ Required: Optional: -- `check_receive` (String) The expected answer. -- `check_send` (String) An optional payload string to send to the remote host. - `proxy_url` (String) The URL of the SOCKS5 proxy to use when connecting to the server. The value must be a URL with a scheme of `socks5://`. If the SOCKS5 proxy server requires client authentication, then a username and password can be embedded in the URL. When using a proxy, hostnames are resolved on the proxy server instead of on the client. You can change this behavior by setting the `proxy_use_local_resolver` option. - `proxy_use_local_resolver` (Boolean) A Boolean value that determines whether hostnames are resolved locally instead of being resolved on the proxy server. The default value is false, which means that name resolution occurs on the proxy server. - `ssl_supported_protocols` (List of String) List of allowed SSL/TLS versions. diff --git a/internal/kibana/synthetics/acc_test.go b/internal/kibana/synthetics/acc_test.go index a653f8476..53fb9a39f 100644 --- a/internal/kibana/synthetics/acc_test.go +++ b/internal/kibana/synthetics/acc_test.go @@ -15,6 +15,7 @@ var ( const ( httpMonitorId = "elasticstack_kibana_synthetics_monitor.http-monitor" + tcpMonitorId = "elasticstack_kibana_synthetics_monitor.tcp-monitor" providerConfig = ` provider "elasticstack" { @@ -101,18 +102,69 @@ resource "elasticstack_kibana_synthetics_monitor" "http-monitor" { mode = "all" ipv4 = true ipv6 = true - proxy_url = "" + proxy_url = "http://localhost" } } ` - /* - check.send = "Hello" - check.receive = "World" + tcpMonitorConfig = ` + +resource "elasticstack_kibana_synthetics_monitor" "tcp-monitor" { + name = "TestTcpMonitorResource" + space_id = "default" + schedule = 5 + private_locations = [elasticstack_kibana_synthetics_private_location.test.label] + enabled = true + tags = ["a", "b"] + alert = { + status = { + enabled = true + } + tls = { + enabled = true + } + } + service_name = "test apm service" + timeout = 30 + tcp = { + host = "http://localhost:5601" + ssl_verification_mode = "full" + ssl_supported_protocols = ["TLSv1.0", "TLSv1.1", "TLSv1.2"] + proxy_url = "http://localhost:8080" proxy_use_local_resolver = true + } +} +` + + tcpMonitorUpdated = ` +resource "elasticstack_kibana_synthetics_monitor" "tcp-monitor" { + name = "TestTcpMonitorResource Updated" + space_id = "default" + schedule = 10 + private_locations = [elasticstack_kibana_synthetics_private_location.test.label] + enabled = false + tags = ["c", "d", "e"] + alert = { + status = { + enabled = true + } + tls = { + enabled = false + } + } + service_name = "test apm service" + timeout = 30 + tcp = { + host = "http://localhost:8080" + ssl_verification_mode = "full" + ssl_supported_protocols = ["TLSv1.2"] + proxy_url = "http://localhost" + proxy_use_local_resolver = false + } +} - */ +` ) func TestSyntheticMonitorResource(t *testing.T) { @@ -120,7 +172,7 @@ func TestSyntheticMonitorResource(t *testing.T) { PreCheck: func() { acctest.PreCheck(t) }, ProtoV6ProviderFactories: acctest.Providers, Steps: []resource.TestStep{ - // Create and Read testing + // Create and Read http monitor { SkipFunc: versionutils.CheckIfVersionIsUnsupported(minKibanaVersion), Config: providerConfig + privateLocationConfig + httpMonitorConfig, @@ -160,7 +212,7 @@ func TestSyntheticMonitorResource(t *testing.T) { ImportStateVerify: true, Config: providerConfig + privateLocationConfig + httpMonitorConfig, }, - // Update and Read testing + // Update and Read testing http monitor { SkipFunc: versionutils.CheckIfVersionIsUnsupported(minKibanaVersion), ResourceName: httpMonitorId, @@ -176,7 +228,7 @@ func TestSyntheticMonitorResource(t *testing.T) { resource.TestCheckResourceAttr(httpMonitorId, "tags.#", "3"), resource.TestCheckResourceAttr(httpMonitorId, "tags.0", "c"), resource.TestCheckResourceAttr(httpMonitorId, "tags.1", "d"), - resource.TestCheckResourceAttr(httpMonitorId, "tags.1", "e"), + resource.TestCheckResourceAttr(httpMonitorId, "tags.2", "e"), resource.TestCheckResourceAttr(httpMonitorId, "alert.status.enabled", "true"), resource.TestCheckResourceAttr(httpMonitorId, "alert.tls.enabled", "false"), resource.TestCheckResourceAttr(httpMonitorId, "service_name", "test apm service"), @@ -184,12 +236,80 @@ func TestSyntheticMonitorResource(t *testing.T) { resource.TestCheckResourceAttr(httpMonitorId, "http.url", "http://localhost:8080"), resource.TestCheckResourceAttr(httpMonitorId, "http.ssl_verification_mode", "full"), resource.TestCheckResourceAttr(httpMonitorId, "http.ssl_supported_protocols.#", "1"), - resource.TestCheckResourceAttr(httpMonitorId, "http.ssl_supported_protocols.2", "TLSv1.2"), + resource.TestCheckResourceAttr(httpMonitorId, "http.ssl_supported_protocols.0", "TLSv1.2"), resource.TestCheckResourceAttr(httpMonitorId, "http.max_redirects", "10"), resource.TestCheckResourceAttr(httpMonitorId, "http.mode", "all"), resource.TestCheckResourceAttr(httpMonitorId, "http.ipv4", "true"), resource.TestCheckResourceAttr(httpMonitorId, "http.ipv6", "true"), - resource.TestCheckNoResourceAttr(httpMonitorId, "http.proxy_url"), + resource.TestCheckResourceAttr(httpMonitorId, "http.proxy_url", "http://localhost"), + resource.TestCheckNoResourceAttr(httpMonitorId, "tcp"), + ), + }, + // Create and Read tcp monitor + { + SkipFunc: versionutils.CheckIfVersionIsUnsupported(minKibanaVersion), + Config: providerConfig + privateLocationConfig + tcpMonitorConfig, + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttrSet(tcpMonitorId, "id"), + resource.TestCheckResourceAttr(tcpMonitorId, "name", "TestTcpMonitorResource"), + resource.TestCheckResourceAttr(tcpMonitorId, "space_id", "default"), + resource.TestCheckResourceAttr(tcpMonitorId, "schedule", "5"), + resource.TestCheckResourceAttr(tcpMonitorId, "private_locations.#", "1"), + resource.TestCheckResourceAttrSet(tcpMonitorId, "private_locations.0"), + resource.TestCheckResourceAttr(tcpMonitorId, "enabled", "true"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.#", "2"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.0", "a"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.1", "b"), + resource.TestCheckResourceAttr(tcpMonitorId, "alert.status.enabled", "true"), + resource.TestCheckResourceAttr(tcpMonitorId, "alert.tls.enabled", "true"), + resource.TestCheckResourceAttr(tcpMonitorId, "service_name", "test apm service"), + resource.TestCheckResourceAttr(tcpMonitorId, "timeout", "30"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.host", "http://localhost:5601"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_verification_mode", "full"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.#", "3"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.0", "TLSv1.0"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.1", "TLSv1.1"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.2", "TLSv1.2"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.proxy_url", "http://localhost:8080"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.proxy_use_local_resolver", "true"), + ), + }, + // ImportState testing + { + SkipFunc: versionutils.CheckIfVersionIsUnsupported(minKibanaVersion), + ResourceName: tcpMonitorId, + ImportState: true, + ImportStateVerify: true, + Config: providerConfig + privateLocationConfig + tcpMonitorConfig, + }, + // Update and Read tcp monitor + { + SkipFunc: versionutils.CheckIfVersionIsUnsupported(minKibanaVersion), + ResourceName: tcpMonitorId, + Config: providerConfig + privateLocationConfig + tcpMonitorUpdated, + Check: resource.ComposeAggregateTestCheckFunc( + resource.TestCheckResourceAttrSet(tcpMonitorId, "id"), + resource.TestCheckResourceAttr(tcpMonitorId, "name", "TestTcpMonitorResource Updated"), + resource.TestCheckResourceAttr(tcpMonitorId, "space_id", "default"), + resource.TestCheckResourceAttr(tcpMonitorId, "schedule", "10"), + resource.TestCheckResourceAttr(tcpMonitorId, "private_locations.#", "1"), + resource.TestCheckResourceAttrSet(tcpMonitorId, "private_locations.0"), + resource.TestCheckResourceAttr(tcpMonitorId, "enabled", "false"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.#", "3"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.0", "c"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.1", "d"), + resource.TestCheckResourceAttr(tcpMonitorId, "tags.2", "e"), + resource.TestCheckResourceAttr(tcpMonitorId, "alert.status.enabled", "true"), + resource.TestCheckResourceAttr(tcpMonitorId, "alert.tls.enabled", "false"), + resource.TestCheckResourceAttr(tcpMonitorId, "service_name", "test apm service"), + resource.TestCheckResourceAttr(tcpMonitorId, "timeout", "30"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.host", "http://localhost:8080"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_verification_mode", "full"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.#", "1"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.ssl_supported_protocols.0", "TLSv1.2"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.proxy_url", "http://localhost"), + resource.TestCheckResourceAttr(tcpMonitorId, "tcp.proxy_use_local_resolver", "false"), + resource.TestCheckNoResourceAttr(tcpMonitorId, "http"), ), }, // Delete testing automatically occurs in TestCase diff --git a/internal/kibana/synthetics/schema.go b/internal/kibana/synthetics/schema.go index 2a716b063..3d2d3dcc8 100644 --- a/internal/kibana/synthetics/schema.go +++ b/internal/kibana/synthetics/schema.go @@ -55,10 +55,11 @@ type tfTCPMonitorFieldsV0 struct { Host types.String `tfsdk:"host"` SslVerificationMode types.String `tfsdk:"ssl_verification_mode"` SslSupportedProtocols []types.String `tfsdk:"ssl_supported_protocols"` - CheckSend types.String `tfsdk:"check_send"` - CheckReceive types.String `tfsdk:"check_receive"` - ProxyURL types.String `tfsdk:"proxy_url"` - ProxyUseLocalResolver types.Bool `tfsdk:"proxy_use_local_resolver"` + // commented out due-to https://github.com/elastic/kibana/issues/189906 + //CheckSend types.String `tfsdk:"check_send"` + //CheckReceive types.String `tfsdk:"check_receive"` + ProxyURL types.String `tfsdk:"proxy_url"` + ProxyUseLocalResolver types.Bool `tfsdk:"proxy_use_local_resolver"` } type tfModelV0 struct { @@ -273,14 +274,14 @@ func tcpMonitorFieldsSchema() schema.Attribute { Optional: true, MarkdownDescription: "List of allowed SSL/TLS versions.", }, - "check_send": schema.StringAttribute{ - Optional: true, - MarkdownDescription: "An optional payload string to send to the remote host.", - }, - "check_receive": schema.StringAttribute{ - Optional: true, - MarkdownDescription: "The expected answer. ", - }, + //"check_send": schema.StringAttribute{ + // Optional: true, + // MarkdownDescription: "An optional payload string to send to the remote host.", + //}, + //"check_receive": schema.StringAttribute{ + // Optional: true, + // MarkdownDescription: "The expected answer. ", + //}, "proxy_url": schema.StringAttribute{ Optional: true, MarkdownDescription: "The URL of the SOCKS5 proxy to use when connecting to the server. The value must be a URL with a scheme of `socks5://`. If the SOCKS5 proxy server requires client authentication, then a username and password can be embedded in the URL. When using a proxy, hostnames are resolved on the proxy server instead of on the client. You can change this behavior by setting the `proxy_use_local_resolver` option.", @@ -446,8 +447,8 @@ func toTfTCPMonitorFieldsV0(api *kbapi.SyntheticsMonitor) (*tfTCPMonitorFieldsV0 Host: types.StringValue(api.Host), SslVerificationMode: types.StringValue(api.SslVerificationMode), SslSupportedProtocols: StringSliceValue(api.SslSupportedProtocols), - CheckSend: types.StringValue(api.CheckSend), - CheckReceive: types.StringValue(api.CheckReceive), + //CheckSend: types.StringValue(api.CheckSend), + //CheckReceive: types.StringValue(api.CheckReceive), ProxyURL: types.StringValue(api.ProxyUrl), ProxyUseLocalResolver: types.BoolPointerValue(api.ProxyUseLocalResolver), }, nil @@ -586,8 +587,8 @@ func (v *tfModelV0) toTCPMonitorFields() kbapi.MonitorFields { Host: v.TCP.Host.ValueString(), SslVerificationMode: v.TCP.SslVerificationMode.ValueString(), SslSupportedProtocols: ValueStringSlice(v.TCP.SslSupportedProtocols), - CheckSend: v.TCP.CheckSend.ValueString(), - CheckReceive: v.TCP.CheckReceive.ValueString(), + //CheckSend: v.TCP.CheckSend.ValueString(), + //CheckReceive: v.TCP.CheckReceive.ValueString(), ProxyUrl: v.TCP.ProxyURL.ValueString(), ProxyUseLocalResolver: v.TCP.ProxyUseLocalResolver.ValueBoolPointer(), } diff --git a/internal/kibana/synthetics/schema_test.go b/internal/kibana/synthetics/schema_test.go index 77c8521c5..a10426f05 100644 --- a/internal/kibana/synthetics/schema_test.go +++ b/internal/kibana/synthetics/schema_test.go @@ -67,9 +67,9 @@ func TestToModelV0(t *testing.T) { TCP: &tfTCPMonitorFieldsV0{ Host: types.StringValue(""), SslVerificationMode: types.StringValue(""), - CheckSend: types.StringValue(""), - CheckReceive: types.StringValue(""), - ProxyURL: types.StringValue(""), + //CheckSend: types.StringValue(""), + //CheckReceive: types.StringValue(""), + ProxyURL: types.StringValue(""), }, }, }, @@ -189,8 +189,8 @@ func TestToModelV0(t *testing.T) { Host: types.StringValue("example.com:9200"), SslVerificationMode: types.StringValue("full"), SslSupportedProtocols: []types.String{types.StringValue("TLSv1.2"), types.StringValue("TLSv1.3")}, - CheckSend: types.StringValue("hello"), - CheckReceive: types.StringValue("world"), + //CheckSend: types.StringValue("hello"), + //CheckReceive: types.StringValue("world"), ProxyURL: types.StringValue("http://proxy.com"), ProxyUseLocalResolver: types.BoolPointerValue(tBool), }, @@ -314,8 +314,8 @@ func TestToKibanaAPIRequest(t *testing.T) { Host: types.StringValue("example.com:9200"), SslVerificationMode: types.StringValue("full"), SslSupportedProtocols: []types.String{types.StringValue("TLSv1.2"), types.StringValue("TLSv1.3")}, - CheckSend: types.StringValue("hello"), - CheckReceive: types.StringValue("world"), + //CheckSend: types.StringValue("hello"), + //CheckReceive: types.StringValue("world"), ProxyURL: types.StringValue("http://proxy.com"), ProxyUseLocalResolver: types.BoolPointerValue(tBool), }, @@ -338,8 +338,8 @@ func TestToKibanaAPIRequest(t *testing.T) { Host: "example.com:9200", SslVerificationMode: "full", SslSupportedProtocols: []string{"TLSv1.2", "TLSv1.3"}, - CheckSend: "hello", - CheckReceive: "world", + //CheckSend: "hello", + //CheckReceive: "world", ProxyUrl: "http://proxy.com", ProxyUseLocalResolver: tBool, }, diff --git a/kibana-config/kibana.yml b/kibana-config/kibana.yml deleted file mode 100644 index d1c33dee4..000000000 --- a/kibana-config/kibana.yml +++ /dev/null @@ -1,11 +0,0 @@ -server.host: "0.0.0.0" -server.shutdownTimeout: "5s" -elasticsearch.hosts: [ "http://elasticsearch:9200" ] - -server.oas.enabled: true - -#logging.root.level: debug - -logging.loggers: - - name: plugins.fleet - level: debug diff --git a/libs/go-kibana-rest/docker-compose.yml b/libs/go-kibana-rest/docker-compose.yml index 169867a57..10210a1b4 100644 --- a/libs/go-kibana-rest/docker-compose.yml +++ b/libs/go-kibana-rest/docker-compose.yml @@ -30,7 +30,6 @@ services: ELASTICSEARCH_USERNAME: kibana_system ELASTICSEARCH_PASSWORD: changeme XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY: min-32-byte-long-strong-encryption-key - xpack.fleet.enabled: true links: - elasticsearch:es ports: diff --git a/test.json b/test.json new file mode 100644 index 000000000..25eb060be --- /dev/null +++ b/test.json @@ -0,0 +1,516 @@ +{ + "epm-packages": { + "installed_kibana": [], + "installed_kibana_space_id": "default", + "installed_es": [ + { + "id": "logs-elastic_agent.apm_server-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.apm_server-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.auditbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.auditbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.cloud_defend-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.cloudbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.cloudbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.elastic_agent-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.endpoint_security-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.endpoint_security-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.filebeat_input-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.filebeat_input-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.filebeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.filebeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.fleet_server-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.fleet_server-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.heartbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.heartbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.metricbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.metricbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.osquerybeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.osquerybeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.packetbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "metrics-elastic_agent.packetbeat-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.pf_elastic_collector-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.pf_elastic_symbolizer-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.pf_host_agent-2.0.2", + "type": "ingest_pipeline" + }, + { + "id": "logs-elastic_agent.apm_server", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.apm_server@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.apm_server@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.apm_server", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.apm_server@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.apm_server@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.auditbeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.auditbeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.auditbeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.auditbeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.auditbeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.auditbeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.cloud_defend", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.cloud_defend@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.cloud_defend@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.cloudbeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.cloudbeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.cloudbeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.cloudbeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.cloudbeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.cloudbeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent", + "type": "index_template" + }, + { + "id": "logs-elastic_agent@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.elastic_agent", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.elastic_agent@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.elastic_agent@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.endpoint_security", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.endpoint_security@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.endpoint_security@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.endpoint_security", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.endpoint_security@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.endpoint_security@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.filebeat_input", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.filebeat_input@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.filebeat_input@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.filebeat_input", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.filebeat_input@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.filebeat_input@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.filebeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.filebeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.filebeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.filebeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.filebeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.filebeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.fleet_server", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.fleet_server@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.fleet_server@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.fleet_server", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.fleet_server@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.fleet_server@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.heartbeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.heartbeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.heartbeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.heartbeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.heartbeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.heartbeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.metricbeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.metricbeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.metricbeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.metricbeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.metricbeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.metricbeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.osquerybeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.osquerybeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.osquerybeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.osquerybeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.osquerybeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.osquerybeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.packetbeat", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.packetbeat@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.packetbeat@custom", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.packetbeat", + "type": "index_template" + }, + { + "id": "metrics-elastic_agent.packetbeat@package", + "type": "component_template" + }, + { + "id": "metrics-elastic_agent.packetbeat@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_collector", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_collector@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_collector@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_symbolizer", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_symbolizer@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_elastic_symbolizer@custom", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_host_agent", + "type": "index_template" + }, + { + "id": "logs-elastic_agent.pf_host_agent@package", + "type": "component_template" + }, + { + "id": "logs-elastic_agent.pf_host_agent@custom", + "type": "component_template" + } + ], + "package_assets": [], + "es_index_patterns": { + "apm_server_logs": "logs-elastic_agent.apm_server-*", + "apm_server_metrics": "metrics-elastic_agent.apm_server-*", + "auditbeat_logs": "logs-elastic_agent.auditbeat-*", + "auditbeat_metrics": "metrics-elastic_agent.auditbeat-*", + "cloud_defend_logs": "logs-elastic_agent.cloud_defend-*", + "cloudbeat_logs": "logs-elastic_agent.cloudbeat-*", + "cloudbeat_metrics": "metrics-elastic_agent.cloudbeat-*", + "elastic_agent_logs": "logs-elastic_agent-*", + "elastic_agent_metrics": "metrics-elastic_agent.elastic_agent-*", + "endpoint_security_metrics": "metrics-elastic_agent.endpoint_security-*", + "endpoint_sercurity_logs": "logs-elastic_agent.endpoint_security-*", + "filebeat_input_logs": "logs-elastic_agent.filebeat_input-*", + "filebeat_input_metrics": "metrics-elastic_agent.filebeat_input-*", + "filebeat_logs": "logs-elastic_agent.filebeat-*", + "filebeat_metrics": "metrics-elastic_agent.filebeat-*", + "fleet_server_logs": "logs-elastic_agent.fleet_server-*", + "fleet_server_metrics": "metrics-elastic_agent.fleet_server-*", + "heartbeat_logs": "logs-elastic_agent.heartbeat-*", + "heartbeat_metrics": "metrics-elastic_agent.heartbeat-*", + "metricbeat_logs": "logs-elastic_agent.metricbeat-*", + "metricbeat_metrics": "metrics-elastic_agent.metricbeat-*", + "osquerybeat_logs": "logs-elastic_agent.osquerybeat-*", + "osquerybeat_metrics": "metrics-elastic_agent.osquerybeat-*", + "packetbeat_logs": "logs-elastic_agent.packetbeat-*", + "packetbeat_metrics": "metrics-elastic_agent.packetbeat-*", + "pf_elastic_collector": "logs-elastic_agent.pf_elastic_collector-*", + "pf_elastic_symbolizer": "logs-elastic_agent.pf_elastic_symbolizer-*", + "pf_host_agent_logs": "logs-elastic_agent.pf_host_agent-*" + }, + "name": "elastic_agent", + "version": "2.0.2", + "install_version": "2.0.2", + "install_status": "installing", + "install_started_at": "2024-08-13T06:48:27.724Z", + "install_source": "registry", + "install_format_schema_version": "1.2.0", + "verification_status": "verified", + "verification_key_id": "d27d666cd88e42b4" + }, + "type": "epm-packages", + "references": [], + "managed": false, + "coreMigrationVersion": "8.8.0", + "typeMig + rationVersion + ":" + 10.2.0 + "," + updated_at + ":" + 2024-08-13T06: 48 + : + 28.748Z + "," + created_at + ":" + 2024-08-13T06: 48 + : + 27.725Z + "} \ No newline at end of file