Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Hi omnes! Cum partem cursus laboris mei perscrutatus sum facultates tam domesticae nubis suggestus ut Yandex.Cloud. In suggestu varia officia praebet ad problemata practica solvenda. Aliquando tamen necesse est ut nubes applicationem tuam erigas cum satis ampla infrastructura in his officiis fundata. In hoc articulo experientiam meam communicare cupio talem applicationem explicandi.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Quid vis accipere?

grafana - instrumentum validum ad solvendas difficultates analyticas vel magnas difficultates quarumlibet systematum. In sua fundamentali configuratione, haec est virtualis apparatus cum Grafana interretiali servo, tum database (ClickHouse, InfluxDB, etc.) cum schedula in qua analytica fundabitur.

Cum virtualem machinam cum telae server deducito, ad exercitum eius ire potes et pulchra UI, databases specificare ut fontes ulterioris operis, ashboardas et graphas crea.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Versio fundamentalis unum incommodum significantem habet - non est omnino culpa-patiens. Hoc est, tota applicationis functionis a viability unius virtualis machinae dependet. Si noluerit vel 10 homines UI simul aperiant, tunc orientur problemata.

Simpliciter solvi possunt: ​​tantum opus est ut... multas identicas virtuales machinas explicas cum instrumento interretiali et sub librario L3 pones. Sed non omnia hic tam clara sunt. Grafana reponit occasus usoris (viae databases, dashboards, graphs, etc.) directe in disco machinae suae virtualis. Si ergo aliquos ordines in UI mutemus, hae mutationes nonnisi in virtualis machinae qua librator nos misit. Hoc erit inconveniens occasus pro applicatione nostra, causando difficultates cum launch et usu.

Hic alius database succurrit, exempli gratia, MySQL vel aequipollens. Grafanam dicimus quod occasus usorum in hac datorum "parce" reponere debet. Postea satis erit iter huic datorum semel in unaquaque machina denominare, et omnes alios usores in quibusvis machinis virtualis emendare, ad alios se extendent.

Hic schema est finalis applicationis infrastructure:

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Discamus manibus levare

MySQL et ClickHouse

Priusquam eiusmodi applicationem cum pressione globuli explicas, discere oportuit singulas partes eius tractare et eas inter se integrare.

Hic Yandex.Cloud nos adiuvabit, qui L3 librarios, ClickHouse et MySQL operas administratas praebet. Usoris tantum ambitum specificare oportet et expectare donec suggestus omnia in ordinem laboris adferat.

Descripsi, nubem creavi et rationem reddidi. Post hoc, ivi ad nubem, et erexi MySQL et ligaturas ClickHouse cum minimis occasus. Expectabam donec essent activae.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplumInstruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Etiam meminisse debes creare database in unoquoque botro et accessum ad illud configurare utens rationis et tesserae. Non ingrediar hic singula - omnia satis perspicua sunt in instrumento.

Non-obspicuum est quod hae databases multas hostias habeant, quae tolerantiam culpae suae praestant. Nihilominus, Grafana unumquemvis exercitum pro singulis datorum datorum opus est. Long Lectio documentum Me ad arbitrium nubes detulerunt. Evenit ut speciei ornatus c-<cluster_id>.rw.mdb.yandexcloud.net provisa ad hodiernum dominum exercitum activum botri cum ID respondente. Hoc est quod Grafana dabimus.

web server

Nunc ad interretialem server usque est. Machinam virtualem iustam advocemus cum Linux et manually Grafana in ea configurat.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Coniungamus per ssh et install fasciculos necessarios.

sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

Post hoc, Grafana sub systemctl curramus et niteremur plugin operandi cum ClickHouse (sic, non suppletur in sarcina fundamentali).

sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

Id, postea simplici imperio

sudo service grafana-server start

web server incipiemus. Nunc potes externam IP inscriptionem machinae virtualis in navigatro inire, portum 3000 denota et pulchrum Grafana UI videre.
Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Sed non ruis, antequam Grafana constituas, meminisse debes ei viam MySQL indicare ut occasus ibi condias.

Tota figura Grafanae servientis telae in tabella /etc/grafana/grafana.ini. Linea inquisita sic similis est:

;url =

Hospes ad MySQL botrum posuimus. Idem fasciculus login et clavem continet pro accessu Grafana in tabula supra, quae per defaltam ambo pares sunt admin.

Etiam sed mauris justo,

sudo sed -i "s#.*;url =.*#url = mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${GRAFANA_USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${GRAFANA_PASSWORD}#" /etc/grafana/grafana.ini

Tempus est ut sileo telam server!

sudo service grafana-server restart

Nunc in Grafana UI declarabimus ClickHouse pro DataSource.

Configurationem operariam cum sequentibus fundis assequi potui:

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Ego certa ut URL https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443

Omnis! Operantem machinam virtualem habemus cum servo interretiali cum CH et MySQL connexo. Iam potes fasciculos dataset ad ClickHouse et aedificare dashboards. Sed propositum nondum percepimus nec infrastructuram plenam discursimus.

Packer

Yandex.Cloud permittit te creare disco imaginem machinae virtualis existentis, et ex eius fundamento - quotcumque machinarum inter se identificarum. Hoc istuc ipsum utemur. Ad imaginem convenienter convenire, instrumentum sume Packer ex HashiCorp. It takes as input a file json with instructions for assembling the image.

Fasciculus noster json ex duobus caudices constabit: structores et provisiones. Primus clausus parametros ipsius imaginis ut ens describit, secundus clausus mandata describit ut eam contento necessario impleat.

Γ¦dificantes,

{
"builders": [
    {
      "type": "yandex",
      "endpoint": "{{user `endpoint`}}",
      "folder_id": "<folder_id>",
      "subnet_id": "{{user `subnet_id`}}",
      "zone": "{{user `zone`}}",
      "labels": {},
      "use_ipv4_nat": true,
      "use_internal_ip": false,
      "service_account_key_file": "<service_account_key_file>",
      "image_name": "grafana-{{timestamp}}",
      "image_family": "grafana",
      "image_labels": {},
      "image_description": "GRAFANA",
      "source_image_family": "ubuntu-1804-lts",
      "disk_size_gb": 3,
      "disk_type": "network-hdd",
      "ssh_username": "ubuntu"
    }
  ],
...
}

In hoc template, necesse est identificatorem sectionis in nube ponere, ubi vis imaginem creare, ac viam ad tabella cum clavibus ex ratione servitii in hac sectione antea creata. Plura legere potes de rationibus et clavibus in modum fasciculi in sectione respondente creando documentum.

Configuratio haec dicit imaginem orbis aedificari in tribunali ubuntu-1804-ltsin sectione usoris propriae imaginis familiae positae GRAFANA sub nomine grafana-{{timestamp}}.

Provisores

Nunc venit magis interesting pars configurationis. Ordinem actionum describet quae in machina virtuali perficienda erunt antequam statum suum congelaverit in imaginem disci.

{
...,
"provisioners": [
    {
            "type": "shell",
            "pause_before": "5s",
            "scripts": [
                "prepare-ctg.sh"
            ]
        },
    {
            "type": "file",
            "source": "setup.sh",
            "destination": "/opt/grafana/setup.sh"
        },
        {
            "type": "shell",
        "execute_command": "sudo {{ .Vars }} bash '{{ .Path }}'",
            "pause_before": "5s",
            "scripts": [
                "install-packages.sh",
                "grafana-setup.sh",
                "run-setup-at-reboot.sh"
        ]
        }
  ]
}

Hic omnes actiones in 3 gradus distinguuntur. In primo gradu, simplex scriptum efficitur quod directorium auxiliarium creat.

para-ctg.sh;

#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana

Proximo gradu in hoc indice scriptum ponimus, quod statim post virtualem machinam inceptis deduci debebit. Hoc scriptum ponet variabiles usores quae in Grafana config scribendae sunt et in calculonis servi sileo.

setup.sh:

#!/bin/bash
CLUSTER_ID="<cluster_id>"
USERNAME="<username>"
PASSWORD="<password>"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@c-${CLUSTER_ID}.rw.mdb.yandexcloud.net#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

Post haec sunt 3 quae restant;
I) install packages
2) Grafana currere sub systemctl ac installare in plugin ClickHouse
3) setup.sh scriptum pone in queue launch statim postquam conversus in apparatus virtualis.

install-packages.sh:

#!/bin/bash
sudo systemd-run --property='After=apt-daily.service apt-daily-upgrade.service' --wait /bin/true
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

grafana-setup.sh:

#!/bin/bash
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

run-setup-at-reboot.sh:

#!/bin/bash
chmod +x /opt/grafana/setup.sh
cat > /etc/cron.d/first-boot <<EOF
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
@reboot root /bin/bash /opt/grafana/setup.sh > /var/log/yc-setup.log 2>&1
EOF
chmod +x /etc/cron.d/first-boot;

Nunc reliquum est ut Packer currendum sit et imaginem outputam in sectione determinato positam obtine. Cum virtualem machinam creando, eum ut orbis tabernus eligere potes et post launch in Grafana interretialem ministrum praeparatum recipies.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum
Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Instantia coetus et staterar

Cum imaginem orbis habemus quae multos identicos in Grafana interretiali servientes creare sinit, coetus instantiam creare possumus. In suggestu Yandex.Cloud, hoc vocabulum ad unionem machinarum virtualium refert quae easdem notas habent. Cum creando instantia coetus, exemplar omnium machinarum in hoc circulo configuratur, ac deinde notae ipsius coetus (exempli gratia, numerus minimus et maximus machinis activae). Si numerus currens non occurret his indiciis, ipsa instantia coetus necessarias machinas removebit vel novas in imagine sua creabit.

Pro parte muneris nostri creabimus instantia coetus interretialium qui ex imagini orbis antea creato generabitur.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Quod vere mirabile est, coetus novissimus instantia habeat. Circulus target in integratione cum Load Balancero adiuvabit te ad L3 libratorem configurare super virtualis machinis huius coetus strepitando a duobus globulis.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Cum libratorem constituo, duo puncta momenti complevi:

  1. Librarium usoris mercaturam in portum 80 accipere feci et eam redigere ad 3000 machinarum virtualium, ubi Grafana vivit prorsus.
  2. Machinarum viability inhibito pingendo ad mille portum constitui.

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Mini summary

Denique manually applicandi infrastructuram desideratam explicandam potuimus, et nunc grafana opera valde consi- demus. Tantum debes scire IP inscriptionem libratoris sicut punctum aculei applicationis et exercitui botri strepita ut in eo dataset oneres.

Videtur quod victoria? Etiam, victoria. Sed adhuc aliquid me confundit. Totus processus supra multum gressus manuales requirit et omnino scalabilis non est: vellem automate si fieri potest. Hoc est quod in sequenti sectione deuotum erit.

Terraform integratio

Nos iterum utimur instrumento ab HashiCorp vocato Terraform. Totam applicationem infrastructuram cum strepita globuli explicabis adiuvabit, innixa pluribus variabilibus a usore praeteritis. Recipe recipe quod pluribus temporibus in diversis diversis utentium partibus currere potest.

Totum opus cum Terraform descendit ad limam configurandam scribendam.*.tf) et creatio infrastructurae in ea fundatae.

variables

In ipso initio tabellae variabiles differentias comprehendemus quae ubi et quomodo futura infrastructura explicabuntur.

variable "oauth_token" {
    type = string
    default = "<oauth-token>"
}
variable "cloud_id" {
    type = string
    default = "<cloud-id>"
}
variable "folder_id" {
    type = string
    default = "<folder_id>"
}
variable "service_account_id" {
    type = string
    default = "<service_account_id>"
}
variable "image_id" {
    type = string
    default = "<image_id>"
}
variable "username" {
    type = string
    default = "<username>"
}
variable "password" {
    type = string
    default = "<password>"
}
variable "dbname" {
    type = string
    default = "<dbname>"
}
variable "public_key_path" {
    type = string
    default = "<path to ssh public key>"
}

Tota applicationis processus instruere descendet ad imaginem orbis aedificandam et has variabiles ponens. Dicam quid sint;

oauth_token - signum accessu nubis. Potest obtineri Link.
cloud_id - nubes identifier ubi applicationis explicabimus
folder_id - section identifier ubi applicationis explicabimus
service_account_id β€” ministerium rationis identifier in sectione nubis respondens.
image_id - identifier orbis imaginem nactus per Packer
More ΠΈ Password - username et password ut accessum tam databases quam Grafana interretiali server
dbname - database nomen intra CH et MySQL clusters
public_key_path - iter ad tabella cum clavis ssh publicis tuis, quibus sub nomine coniungere potes ubuntu ad virtualis machinis per telam servers

Provisor setup

Nunc debes configurare provisorem Terraformem - in nostro casu, Yandex:

provider "yandex" {
  token     = var.oauth_token
  cloud_id  = var.cloud_id
  folder_id = var.folder_id
  zone      = "ru-central1-a"
}

Animadvertes hic variabilibus supra definitis utimur.

Network et clusters

Nunc reticulum creabimus in quo elementa infrastructurae nostrae communicabunt, tres subnetes (unum in unaquaque regione) et ligaturas CH et MySQL excitabimus.


resource "yandex_vpc_network" "grafana_network" {}

resource "yandex_vpc_subnet" "subnet_a" {
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.1.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_b" {
  zone           = "ru-central1-b"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.2.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_c" {
  zone           = "ru-central1-c"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.3.0.0/24"]
}

resource "yandex_mdb_clickhouse_cluster" "ch_cluster" {
  name        = "grafana-clickhouse"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id

  clickhouse {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 16
    }
  }

  zookeeper {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 10
    }
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
    }
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

resource "yandex_mdb_mysql_cluster" "mysql_cluster" {
  name        = "grafana_mysql"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id
  version     = "8.0"

  resources {
    resource_preset_id = "s2.micro"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
      roles         = ["ALL"]
    }
  }

  host {
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }
  host {
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }
  host {
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

Ut videre potes, singulae duae ligaturae satis patienter creantur, cum in tribus zonis disponibilitate sitae.

Web servers

Videtur quod eodem spiritu possemus permanere, sed in difficultatem cucurri. Ante hoc primum MySQL botrum sustuli et postea demum, id cognoscens, imaginem disci cum figura certa collegi, ubi exercitum ad botrum designavi. Sed nunc nescimus botrum ID ante Terraformam deducendo, incluso tempore imaginis aedificationis. Ideo oportuit me ad sequentia confugere dolus.

Usura metadata Amazonii opera, aliquos parametros ad machinam virtualem transeamus, quae acceptura est et processum. Machina opus est ut ad metadatam post MySQL botrum exercitum et usoris tesseram accedas, quod usor in lima Terraform designatus, postquam incepit. Lets contenta tabella leviter mutare setup.shquae currit cum virtualis apparatus volvitur.

setup.sh:

#!/bin/bash
CLUSTER_URI="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/mysql_cluster_uri)"
USERNAME="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/username)"
PASSWORD="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/password)"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@${CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

Intance coetus et librari

Nova imagine disci reaedificata, tandem fasciculum nostrum Terraformi addere possumus.

Indicamus nos volentes uti imagine orbis existentis;

data "yandex_compute_image" "grafana_image" {
  image_id = var.image_id
}

Nunc faciamus exemplum coetus:

resource "yandex_compute_instance_group" "grafana_group" {
  name               = "grafana-group"
  folder_id          = var.folder_id
  service_account_id = var.service_account_id
  instance_template {
    platform_id = "standard-v1"
    resources {
      memory = 1
      cores  = 1
    }
    boot_disk {
      mode = "READ_WRITE"
      initialize_params {
        image_id = data.yandex_compute_image.grafana_image.id
        size     = 4
      }
    }
    network_interface {
      network_id = yandex_vpc_network.grafana_network.id
      subnet_ids = [yandex_vpc_subnet.subnet_a.id, yandex_vpc_subnet.subnet_b.id, yandex_vpc_subnet.subnet_c.id]
      nat = "true"
    }
    metadata = {
      mysql_cluster_uri = "c-${yandex_mdb_mysql_cluster.mysql_cluster.id}.rw.mdb.yandexcloud.net:3306/${var.dbname}"
      username = var.username
      password = var.password
      ssh-keys = "ubuntu:${file("${var.public_key_path}")}"
    }
    network_settings {
      type = "STANDARD"
    }
  }

  scale_policy {
    fixed_scale {
      size = 6
    }
  }

  allocation_policy {
    zones = ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
  }

  deploy_policy {
    max_unavailable = 2
    max_creating    = 2
    max_expansion   = 2
    max_deleting    = 2
  }

  load_balancer {
    target_group_name = "grafana-target-group"
  }
}

Operae pretium est quomodo eam in metadata transeamus cluster_uri, username ΠΈ password. Haec sunt machinae virtualis in satus tolle et in Grafana config.

Est ad librator.

resource "yandex_lb_network_load_balancer" "grafana_balancer" {
  name = "grafana-balancer"

  listener {
    name = "grafana-listener"
    port = 80
    target_port = 3000
    external_address_spec {
      ip_version = "ipv4"
    }
  }

  attached_target_group {
    target_group_id = yandex_compute_instance_group.grafana_group.load_balancer.0.target_group_id

    healthcheck {
      name = "healthcheck"
      tcp_options {
        port = 3000
      }
    }
  }
}

A saccharo

Reliquum est parum. Postquam infrastructura explicatur, ad Grafanam UI ire debebis et manually CH botrum (id cuius adhuc obtinendum est) ut Data Source adde. Sed Terraform nouit botrum ID. Committimus eum ut rem fruendam afferamus.

Adiciamus novum provisorem - Grafana, et date illi inscriptionem IP libratoris hospitis. Omnes mutationes quas Terraform facit in machina ubi librarius determinat, in MySQL crescet, et ideo in omnibus aliis machinis.

provider "grafana" {
  url  = "http://${[for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0}"
  auth = "${var.username}:${var.password}"
}

resource "grafana_data_source" "ch_data_source" {
  type          = "vertamedia-clickhouse-datasource"
  name          = "grafana"
  url           = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
  basic_auth_enabled = "true"
  basic_auth_username = var.username
  basic_auth_password = var.password
  is_default = "true"
  access_mode = "proxy"
}

Sit scriptor pectine comas

Ostendamus libratorem IP inscriptionem et exercitum de botro ClickHouse

output "grafana_balancer_ip_address" {
  value = [for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0
}

output "clickhouse_cluster_host" {
  value = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
}

Potes currere

Omnis! Scapus nostri configurationis est paratus et possumus, variabilium statuendo, Terraformi nuntiare omnia, quae supra descripsimus, erigere. Totum processum XV minuta me suscepit.
In fine videre potes pulcherrimum nuntium:

Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:

clickhouse_cluster_host = https://c-c9q14ipa2ngadqsbp2iq.rw.mdb.yandexcloud.net:8443
grafana_balancer_ip_address = 130.193.50.25

Et in nube, elementa infrastructura elevata videbuntur;

Instruere officia distributa in Yandex.Cloud utens Grafana ad exemplum

Summatim

Nunc, Grafana utens exemplo, quilibet vestrum applicationes explicare potest cum architectura nubis discurrentis in Yandex.Cloud suggestum. Instrumenta utilia ab HashiCorp sicut Packer et Terraformi hoc te adiuvare possunt. Spero aliquis invenit hunc articulum utile :)

PS Infra nexum repositorio apponam ubi receptacula parata invenire potes pro Packer et Terraforma, quorum fragmenta in hoc articulo paravi.

repositio

Source: www.habr.com