From 4546343159b2cb7b78985e984759c63cb48c4d66 Mon Sep 17 00:00:00 2001 From: Sergey Yakubov <sergey.yakubov@desy.de> Date: Wed, 9 Feb 2022 14:42:39 +0100 Subject: [PATCH] added monitoring server to nomad deployment --- deploy/asapo_services/local.tfvars | 26 +++++++++ .../scripts/asapo-perfmetrics.nmd.tpl | 58 ++++++++++++++++++- .../scripts/asapo.auto.tfvars.in | 7 ++- .../scripts/file-transfer.json.tpl | 5 +- .../scripts/monitoring_server.json.tpl | 7 +++ .../asapo_services/scripts/receiver.json.tpl | 3 +- deploy/asapo_services/scripts/resources.tf | 7 +-- .../scripts/resources_services.tf | 8 +++ deploy/asapo_services/scripts/templates.tf | 8 ++- deploy/asapo_services/scripts/vars.tf | 3 + 10 files changed, 123 insertions(+), 9 deletions(-) create mode 100644 deploy/asapo_services/local.tfvars create mode 100644 deploy/asapo_services/scripts/monitoring_server.json.tpl diff --git a/deploy/asapo_services/local.tfvars b/deploy/asapo_services/local.tfvars new file mode 100644 index 000000000..4e61d66f8 --- /dev/null +++ b/deploy/asapo_services/local.tfvars @@ -0,0 +1,26 @@ +elk_logs = false +perf_monitor = true + +asapo_docker_repository = "yakser" +#asapo_imagename_suffix = "" +#asapo_image_tag = "" + +influxdb_version="1.8.4" + +service_dir="/var/tmp/asapo" +online_dir="/var/tmp/asapo/bl" +offline_dir="/var/tmp/asapo/core" +mongo_dir="/var/tmp/asapo/mongo" +asapo_user="26655:1000" +job_scripts_dir="/home/yakubov/projects/asapo/build/deploy/asapo_services/scripts" + + +ldap_uri="ldap://it-ldap-slave.desy.de:1389" + +receiver_network_modes = "tcp" +receiver_kafka_enabled = false +receiver_kafka_metadata_broker_list="" + +n_receivers = 1 +n_brokers = 1 +n_fts = 1 diff --git a/deploy/asapo_services/scripts/asapo-perfmetrics.nmd.tpl b/deploy/asapo_services/scripts/asapo-perfmetrics.nmd.tpl index 22b832bd7..991f0cb04 100644 --- a/deploy/asapo_services/scripts/asapo-perfmetrics.nmd.tpl +++ b/deploy/asapo_services/scripts/asapo-perfmetrics.nmd.tpl @@ -23,13 +23,14 @@ job "asapo-perfmetrics" { security_opt = ["no-new-privileges"] userns_mode = "host" image = "influxdb:${influxdb_version}" - volumes = ["/${service_dir}/influxdb2:/var/lib/influxdb2"] + volumes = ["/${service_dir}/influxdb:/var/lib/influxdb"] } env { PRE_CREATE_DB="asapo_receivers;asapo_brokers" INFLUXDB_BIND_ADDRESS="127.0.0.1:$${NOMAD_PORT_influxdb_rpc}" INFLUXDB_HTTP_BIND_ADDRESS=":$${NOMAD_PORT_influxdb}" + INFLUXDB_HTTP_FLUX_ENABLED="true" } resources { @@ -110,6 +111,61 @@ job "asapo-perfmetrics" { } #grafana + task "monitoring-server" { + driver = "docker" + user = "${asapo_user}" + + config { + ulimit { + memlock = "-1:-1" + } + network_mode = "host" + security_opt = ["no-new-privileges"] + userns_mode = "host" + privileged = true + image = "${docker_repository}/asapo-monitoring-server${image_suffix}" + force_pull = ${force_pull_images} + volumes = ["local/config.json:/var/lib/monitoring_server/config.json"] + %{ if ! nomad_logs } + logging { + type = "fluentd" + config { + fluentd-address = "localhost:9881" + fluentd-async-connect = true + tag = "asapo.docker" + } + } + %{endif} + } + + resources { + memory = "${monitoring_server_total_memory_size}" + network { + port "monitoring_server" {} + } + } + + service { + name = "asapo-monitoring" + port = "monitoring_server" + check { + name = "alive" + port = "monitoring_server" + type = "tcp" + interval = "10s" + timeout = "2s" + initial_status = "passing" + } + } + + template { + source = "${scripts_dir}/monitoring_server.json.tpl" + destination = "local/config.json" + change_mode = "restart" + } + } # monitoring server + + } } diff --git a/deploy/asapo_services/scripts/asapo.auto.tfvars.in b/deploy/asapo_services/scripts/asapo.auto.tfvars.in index 4f8133d36..64f10eaaf 100644 --- a/deploy/asapo_services/scripts/asapo.auto.tfvars.in +++ b/deploy/asapo_services/scripts/asapo.auto.tfvars.in @@ -1,12 +1,14 @@ asapo_imagename_suffix="@ASAPO_VERSION_DOCKER_SUFFIX@" asapo_image_tag = "@ASAPO_VERSION@" +asapo_docker_repository = "yakser" + nginx_version = "1.14" elasticsearch_version = "7.3.2" kibana_version = "7.3.2" mongo_version = "4.0.0" grafana_version="7.5.0" -influxdb_version = "2.0.4" +influxdb_version = "1.8.4" elk_logs = false perf_monitor = false nomad_logs = false @@ -40,6 +42,7 @@ authorizer_total_memory_size = 256 discovery_total_memory_size = 256 prometheus_total_memory_size = 256 alertmanager_total_memory_size = 256 +monitoring_server_total_memory_size = 256 ldap_uri = "ldap://localhost:389" @@ -51,8 +54,10 @@ fluentd_port = 9880 fluentd_port_stream = 24224 elasticsearch_port = 9200 kibana_port = 5601 + discovery_port = 5006 authorizer_port = 5007 + consul_dns_port = 8600 prometheus_port = 9090 alertmanager_port = 9093 diff --git a/deploy/asapo_services/scripts/file-transfer.json.tpl b/deploy/asapo_services/scripts/file-transfer.json.tpl index 5f0f028a0..5f6a28549 100644 --- a/deploy/asapo_services/scripts/file-transfer.json.tpl +++ b/deploy/asapo_services/scripts/file-transfer.json.tpl @@ -1,5 +1,8 @@ { "Port": {{ env "NOMAD_PORT_fts" }}, "LogLevel":"debug", - "SecretFile":"/local/secret.key" + "SecretFile":"/local/secret.key", + "DiscoveryServer": "localhost:8400/asapo-discovery", + "MonitorPerformance": true, + "MonitoringServerUrl": "auto" } diff --git a/deploy/asapo_services/scripts/monitoring_server.json.tpl b/deploy/asapo_services/scripts/monitoring_server.json.tpl new file mode 100644 index 000000000..9ac042419 --- /dev/null +++ b/deploy/asapo_services/scripts/monitoring_server.json.tpl @@ -0,0 +1,7 @@ +{ + "ThisClusterName": "asapo", + "ServerPort": {{ env "NOMAD_PORT_monitoring_server" }}, + "LogLevel": "{{ keyOrDefault "log_level" "debug" }}", + "InfluxDbUrl":"http://localhost:8400/influxdb", + "InfluxDbDatabase": "asapo_monitoring" +} diff --git a/deploy/asapo_services/scripts/receiver.json.tpl b/deploy/asapo_services/scripts/receiver.json.tpl index 3183e72ab..5ca82a26d 100644 --- a/deploy/asapo_services/scripts/receiver.json.tpl +++ b/deploy/asapo_services/scripts/receiver.json.tpl @@ -1,6 +1,7 @@ { - "PerformanceDbServer":"localhost:8400/influxdb", "MonitorPerformance": {{ env "NOMAD_META_perf_monitor" }}, + "MonitoringServer": "auto", + "PerformanceDbServer":"localhost:8400/influxdb", "PerformanceDbName": "asapo_receivers", "DatabaseServer":"auto", "DiscoveryServer": "localhost:8400/asapo-discovery", diff --git a/deploy/asapo_services/scripts/resources.tf b/deploy/asapo_services/scripts/resources.tf index 928a5a762..1a5d81783 100644 --- a/deploy/asapo_services/scripts/resources.tf +++ b/deploy/asapo_services/scripts/resources.tf @@ -13,7 +13,6 @@ resource "nomad_job" "asapo-perfmetrics" { resource "nomad_job" "asapo-monitoring" { jobspec = data.template_file.asapo_monitoring.rendered - depends_on = [null_resource.asapo-broker,null_resource.asapo-receiver] } @@ -29,16 +28,16 @@ resource "nomad_job" "asapo-services" { resource "nomad_job" "asapo-receivers" { jobspec = data.template_file.asapo_receivers.rendered - depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery] + depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery,null_resource.asapo-monitoring-server] } resource "nomad_job" "asapo-brokers" { jobspec = data.template_file.asapo_brokers.rendered - depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery] + depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery,null_resource.asapo-monitoring-server] } resource "nomad_job" "asapo-fts" { jobspec = data.template_file.asapo_fts.rendered - depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery] + depends_on = [nomad_job.asapo-services,null_resource.asapo-authorizer,null_resource.asapo-discovery,null_resource.asapo-monitoring-server] } diff --git a/deploy/asapo_services/scripts/resources_services.tf b/deploy/asapo_services/scripts/resources_services.tf index 0ad672ea2..08332309d 100644 --- a/deploy/asapo_services/scripts/resources_services.tf +++ b/deploy/asapo_services/scripts/resources_services.tf @@ -67,6 +67,14 @@ resource "null_resource" "asapo-broker" { depends_on = [nomad_job.asapo-brokers] } +resource "null_resource" "asapo-monitoring-server" { + provisioner "local-exec" { + command = "asapo-wait-service asapo-monitoring" + } + depends_on = [nomad_job.asapo-monitoring] +} + + resource "null_resource" "asapo-fts" { provisioner "local-exec" { command = "asapo-wait-service asapo-file-transfer" diff --git a/deploy/asapo_services/scripts/templates.tf b/deploy/asapo_services/scripts/templates.tf index ddd5656dc..12b905c63 100644 --- a/deploy/asapo_services/scripts/templates.tf +++ b/deploy/asapo_services/scripts/templates.tf @@ -96,6 +96,8 @@ data "template_file" "asapo_perfmetrics" { template = "${file("${var.job_scripts_dir}/asapo-perfmetrics.nmd.tpl")}" vars = { service_dir = "${var.service_dir}" + image_suffix = "${var.asapo_imagename_suffix}:${var.asapo_image_tag}" + docker_repository = "${var.asapo_docker_repository}" influxdb_version = "${var.influxdb_version}" grafana_version = "${var.grafana_version}" grafana_total_memory_size = "${var.grafana_total_memory_size}" @@ -105,7 +107,11 @@ data "template_file" "asapo_perfmetrics" { asapo_user = "${var.asapo_user}" influxdb_rpc_port = "${var.influxdb_rpc_port}" perf_monitor = "${var.perf_monitor}" - } + monitoring_server_total_memory_size = "${var.monitoring_server_total_memory_size}" + force_pull_images = "${var.force_pull_images}" + nomad_logs = "${var.nomad_logs}" + scripts_dir = "${var.job_scripts_dir}" + } } diff --git a/deploy/asapo_services/scripts/vars.tf b/deploy/asapo_services/scripts/vars.tf index 13068f32a..559b4fd24 100644 --- a/deploy/asapo_services/scripts/vars.tf +++ b/deploy/asapo_services/scripts/vars.tf @@ -1,3 +1,5 @@ +variable "asapo_docker_repository" {} + variable "elk_logs" {} variable "perf_monitor" {} @@ -82,6 +84,7 @@ variable "prometheus_total_memory_size" {} variable "alertmanager_total_memory_size" {} +variable "monitoring_server_total_memory_size" {} variable "grafana_port" {} -- GitLab