Mhoroi mose! Sechikamu chebasa rangu rekosi, ndakatsvaga kugona kwenzvimbo yakadai yegore senge
Chii chaunoda kugamuchira?
Mushure mekutangisa muchina chaiwo une webhu server, unogona kuenda kune iyo inomiririra uye utore UI yakanaka, tsanangura dhatabhesi semabviro erimwe basa, gadzira madhibhodhi uye magirafu.
Iyo yekutanga vhezheni ine imwe yakakosha drawback - haina kushivirira kukanganisa zvachose. Ndiko kuti, kushanda kwese kwechishandiso kunoenderana nekugoneka kweimwe chaiyo muchina. Kana ikaramba kana vanhu gumi vakavhura UI panguva imwe chete, ipapo matambudziko anomuka.
Zvinogona kugadziriswa zviri nyore: iwe unongoda ku ... tumira akawanda akafanana chaiwo muchina newebhu server uye woiisa pasi peL3 balancer. Asi hazvisi zvose zvakajeka pano. Grafana inochengetedza zvigadziriso zvevashandisi (makwara kune databases, dashboards, magirafu, nezvimwewo) zvakananga padhisiki yemuchina wayo chaiwo. Nekudaro, kana tikachinja mamwe marongero muUI, shanduko idzi dzinoratidzwa chete pamushini chaiwo watakatumirwa nebalancer. Izvi zvinotungamira kune zvisingaenderane marongero echishandiso chedu, zvichikonzera matambudziko nekutanga uye kushandisa.
Pano imwe dhatabhesi ichauya kuzonunura, semuenzaniso, MySQL kana yakaenzana nayo. Isu tinoudza Grafana kuti anofanirwa kuchengeta marongero evashandisi mune iyi "spare" dhatabhesi. Mushure mezvo, zvichave zvakakwana kutsanangura nzira inoenda kune iyi dhatabhesi kamwe pamushini wega wega, uye kugadzirisa mamwe ese evashandisi marongero pane chero chaiwo emuchina; ivo vanozowedzera kune vamwe.
Heino dhayagiramu yekupedzisira application zvivakwa:
Ngatidzidze kusimudza nemaoko edu
MySQL uye ClickHouse
Usati watumira chishandiso chakadaro nekudzvanya bhatani, zvaive zvakakodzera kuti udzidze kubata chimwe nechimwe chezvikamu zvayo uye nekuzvibatanidza pamwe chete.
Pano Yandex.Cloud ichatibatsira, iyo inopa L3 balancers, ClickHouse uye MySQL semasevhisi anotarisirwa. Mushandisi anongoda kutsanangura maparameter uye kumirira kusvika chikuva chaunza zvese muhurongwa hwekushanda.
Ndakanyoresa, ndakagadzira gore uye account yekubhadhara. Mushure meizvozvo, ndakaenda kune gore ndikamisa MySQL uye ClickHouse masumbu ane mashoma marongero. Ndakamirira kusvika vatanga kushanda.
Iwe zvakare unofanirwa kurangarira kugadzira dhatabhesi mune yega yega sumbu uye gadzirisa kuwana kwairi uchishandisa login uye password. Ini handisi kuzoenda mune zvakadzama pano - zvese zviri pachena mune iyo interface.
Iyo isiri-pachena tsanangudzo yaive yekuti aya dhatabhesi ane akawanda mauto, ayo anovimbisa kukanganisa kwavo kushivirira. Nekudaro, Grafana inoda chaizvo mugadziri mumwe kune yega yega dhatabhesi iyo inoshanda nayo. Kuverenga kwenguva refu c-<cluster_id>.rw.mdb.yandexcloud.net
yakamepurwa kune yazvino inoshanda master host ye cluster ine inoenderana ID. Izvi ndizvo zvatichapa Grafana.
web server
Iye zvino zvave kuwebhu server. Ngatisimudzei muchina wenguva dzose neLinux uye nemaoko gadzirisa Grafana pairi.
Ngatibatanei ne ssh uye tiise mapakeji anodiwa.
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
Mushure meizvozvo, ngatimhanyei Grafana pasi pe systemctl uye tiise iyo plugin yekushanda neClickHouse (hongu, haina kupihwa mune yekutanga package).
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource
Ndizvozvo, mushure mezvo nemurairo uri nyore
sudo service grafana-server start
tichatanga web server. Iye zvino unogona kuisa iyo yekunze IP kero yemuchina chaiwo mubrowser, tsanangura port 3000 uye uone yakanaka Grafana UI.
Asi usamhanye, usati wamisa Grafana, unofanirwa kuyeuka kuitaurira nzira yekuMySQL kuitira kuchengetedza marongero ipapo.
Iyo yese gadziriso yeGrafana web server iri mufaira /etc/grafana/grafana.ini
. Mutsetse unodiwa unotaridzika seizvi:
;url =
Isu tinoisa mugadziri kuMySQL cluster. Iro faira rimwechete rine login uye password yekuwana Grafana mumufananidzo uri pamusoro, izvo nekusarudzika zvese zvakaenzana admin
.
Unogona kushandisa sed mirairo:
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
Yasvika nguva yekutangazve sevha yewebhu!
sudo service grafana-server restart
Iye zvino muGrafana UI tichatsanangura ClickHouse seDataSource.
Ndakakwanisa kuita gadziriro yekushanda nemasetirwo anotevera:
Ndakadoma seURL https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443
Zvose! Tine muchina mumwe chete unoshanda une webhu server yakabatana neCH uye MySQL. Iwe unogona kutoisa iyo dataset kuClickHouse uye kuvaka madhibhodhi. Nekudaro, isu hatisati tazadzisa chinangwa chedu uye hatisati taisa zvivakwa zvakazara.
packers
Yandex.Cloud inokubvumira kuti ugadzire mufananidzo wedhisiki yemuchina uripo, uye pahwaro hwayo - chero nhamba yemashini akafanana kune mumwe nemumwe. Izvi ndizvo chaizvo zvatichashandisa. Kuti uunganidze mufananidzo zviri nyore, tora chishandiso
Yedu json faira ichave nemabhuru maviri: vavaki uye vanopa. Yekutanga block inotsanangura maparamendi emufananidzo pachawo sechinhu, uye yechipiri block inotsanangura mirairo yekuizadza nezvayo zvinodiwa.
vavaki
{
"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"
}
],
...
}
Mune iyi template, iwe unofanirwa kuseta chiziviso chechikamu mugore kwaunoda kugadzira mufananidzo, pamwe negwara refaira rine makiyi kubva kuakaundi yebasa yakambogadzirwa muchikamu chino. Iwe unogona kuverenga zvakawanda nezve kugadzira masevhisi maakaundi uye makiyi muchimiro chefaira muchikamu chinoenderana
Iyi gadziriso inotaura kuti dhisiki mufananidzo uchavakwa zvichibva papuratifomu ubuntu-1804-lts
, yakaiswa muchikamu chakakodzera chemushandisi mumhuri yemufananidzo GRAFANA
pasi pezita grafana-{{timestamp}}
.
Provider
Ikozvino kunouya chikamu chinonakidza chekugadzirisa. Ichatsanangura kutevedzana kwezviito zvinozoda kuitwa pamushini chaiwo usati waomesa mamiriro ayo kuita dhisiki mufananidzo.
{
...,
"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"
]
}
]
}
Pano zvese zviito zvakakamurwa kuita 3 nhanho. Padanho rekutanga, script iri nyore inoitwa iyo inogadzira dhairekitori rekubatsira.
gadzirira-ctg.sh:
#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana
Padanho rinotevera, tinoisa script mune ino dhairekitori, iyo inoda kutangwa pakarepo mushure mekutanga muchina chaiwo. Ichi chinyorwa chinoisa mashandisirwo emushandisi anoda kunyoreswa muGrafana config uye kutangazve webhu server.
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
Mushure meizvi, pane zvinhu zvitatu zvasara kuti zviitwe:
1) kuisa mapakeji
2) mhanyisa Grafana pasi pe systemctl uye isa iyo ClickHouse plugin
3) isa iyo setup.sh script mumutsara wekumisikidza pakarepo mushure mekubatidza muchina chaiwo.
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;
Iye zvino chasara kumhanyisa Packer uye kuwana iyo inobuda mufananidzo yakaiswa muchikamu chakatarwa. Paunenge uchigadzira muchina chaiwo, unogona kuusarudza sebhoti dhisiki uye mushure mekutanga iwe uchagamuchira yakagadzirira-yakagadzirwa Grafana web server.
Muenzaniso boka uye balancer
Kana tangove nedhisiki mufananidzo unotibvumira kugadzira akawanda akafanana Grafana web server, tinogona kugadzira boka remuenzaniso. PaYandex.Cloud papuratifomu, izwi iri rinoreva mubatanidzwa wemashini chaiwo ane maitiro akafanana. Paunenge uchigadzira boka remuenzaniso, prototype yemashini ese ari muboka iri inogadziriswa, uyezve hunhu hweboka pacharo (semuenzaniso, hushoma uye huwandu hwehuwandu hwemichina inoshanda). Kana iyo yazvino nhamba isingaite izvi maitiro, saka boka remuenzaniso pacharo richabvisa michina isingakoshi kana kugadzira mitsva mumufananidzo wayo.
Sechikamu chebasa redu, tichagadzira boka remuenzaniso remaseva ewebhu anozogadzirwa kubva kune yakambogadzirwa dhisiki mufananidzo.
Chinonyanya kushamisa ndeyekupedzisira muenzaniso boka setup. Boka rinonangwa mukubatana neLoad Balancer rinokubatsira kugadzirisa L3 balancer pamusoro pemashini chaiwo eboka iri nekudzvanya akati wandei mabhatani.
Pakumisa iyo balancer, ndakashandisa mapoinzi maviri akakosha:
- Ndakaita kuti balancer igamuchire traffic yevashandisi pachiteshi 80 uye ndoiendesa kuchiteshi 3000 yemashini chaiwo, kunogara Grafana.
- Ini ndakamisikidza kutarisa kushanda kwemichina nekuipinza pachiteshi 3000.
Mini summary
Chekupedzisira, takakwanisa kuendesa nemaoko zvivakwa zvekushandisa, uye ikozvino tave nerutsigiro rweGrafana sevhisi. Iwe unongofanirwa kuziva iyo IP kero yemubharari seyekupinda kwechishandiso uye mugadziri weClickHouse cluster kuitira kurodha dataset mariri.
Zvingaita sokunge kukunda? Hongu, kukunda. Asi pane chinhu chichiri kundivhiringa. Iyo yese maitiro ari pamusoro anoda akawanda emaoko matanho uye haana scalable zvachose; ndinoda kuigadzirisa kana zvichibvira. Izvi ndizvo zvichapihwa chikamu chinotevera.
Terraform kubatanidzwa
Tichashandisa zvakare chishandiso kubva kuHashiCorp chinonzi
Basa rese neTerraform rinouya pasi pakunyora faira yekumisikidza (*.tf
) uye kusikwa kwezvivakwa zvichibva pazviri.
Misiyano
Pakutanga kwefaira tichaisa zvimiro zvinotarisa kupi uye kuti zvivakwa zvenguva yemberi zvichaiswa kupi.
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>"
}
Iyo yese application yekuisa maitiro ichauya pasi pakuvaka dhisiki mufananidzo uye kuseta izvi zvinosiyana. Rega nditsanangure zvavari kuita:
oauth_token - chiratidzo chekuwana gore. Inogona kuwanikwa ne
cloud_id - Cloud identifier kwatinozoendesa application
folder_id - chikamu identifier kwatinozoendesa application
service_account_id - sevhisi account identifier muchikamu chinoenderana chegore.
image_id - identifier yedhisiki mufananidzo wakawanikwa uchishandisa Packer
Username ΠΈ pasiwedhi - username nepassword kuti uwane ese ari maviri dhatabhesi uye Grafana web server
dbname -zita re database mukati meCH uye MySQL masumbu
public_key_nzira - nzira yekuenda kufaira ine yako yeruzhinji ssh kiyi, yaunogona kushandisa kubatanidza pasi pezita ubuntu
kumakina chaiwo ane mawebhu maseva
Provider setup
Iye zvino iwe unofanirwa kugadzirisa iyo Terraform mupi - mune yedu, Yandex:
provider "yandex" {
token = var.oauth_token
cloud_id = var.cloud_id
folder_id = var.folder_id
zone = "ru-central1-a"
}
Iwe unozoona kuti pano tiri kushandisa vhezheni dzakatsanangurwa pamusoro.
Network nemasumbu
Iye zvino tichagadzira network umo zvinhu zvezvivakwa zvedu zvichataurirana, matatu subnets (imwe mudunhu rega rega) uye kusimudza CH uye MySQL masumbu.
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
}
}
Sezvauri kuona, rimwe nerimwe remasumbu maviri anogadzirwa akanyatso kushivirira nekuwanikwa munzvimbo nhatu dziripo.
Web servers
Zvaiita sekuti taizoenderera mberi nemweya mumwe chete, asi ndakapinda pakaoma. Izvi zvisati zvaitika, ndakatanga kusimudza sumbu reMySQL uye mushure mezvo, ndichiziva ID yayo, ndakaunganidza mufananidzo wedhisiki neinodiwa gadziriro, kwandakatsanangura muenzi kune sumbu. Asi ikozvino isu hatizive iyo cluster ID isati yatanga Terraform, kusanganisira panguva yekuvaka chifananidzo. Naizvozvo, ndaifanira kutendeukira kune zvinotevera
Tichishandisa sevhisi yemetadata yeAmazon, isu tichapfuudza mamwe ma paramita kumuchina chaiwo, ayo anozogamuchira nekugadzirisa. Tinoda muchina uyu kuti uende kune metadata kuseri kweMySQL cluster host uye username-password, iyo mushandisi yakatsanangurwa muTerraform faira, mushure mekutanga. Ngatishandure zviri mukati mefaira zvishoma setup.sh
, iyo inomhanya kana muchina chaiwo wabatidzwa.
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 boka uye balancer
Tavaka patsva mufananidzo wedhisiki, tinogona pakupedzisira kuwedzera faira yedu yeTerraform.
Ngatiratidze kuti isu tinoda kushandisa iripo dhisiki mufananidzo:
data "yandex_compute_image" "grafana_image" {
image_id = var.image_id
}
Zvino ngatigadzirei boka remuenzaniso:
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"
}
}
Zvakakodzera kutarisisa kuti takaipfuudza sei mune metadata cluster_uri
, username
ΠΈ password
. Izvi ndizvo izvo muchina chaiwo uchatora pakutanga uye woisa muGrafana config.
Zviri kumubharanzi.
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
}
}
}
}
Shuga shoma
Kwangosara zvishoma. Mushure mekunge zvivakwa zvaiswa, iwe uchafanirwa kuenda kuGrafana UI uye nemaoko uwedzere iyo CH cluster (iyo ID yayo ichiri kuda kuwanikwa) seData Source. Asi Terraform anoziva iyo cluster ID. Ngatimupei kuti agadzirise nyaya yacho.
Ngatiwedzerei mupi mutsva - Grafana, uye tipe kero yeIP yevalancer semugamuchiri. Shanduko dzese dzinoitwa neTerraform pamushini umo inotarwa nebalancer ichakura muMySQL, uye nekudaro pamimwe michina yese.
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"
}
Ngatikamei vhudzi redu
Ngatiratidzei iyo balancer IP kero uye mubati weClickHouse cluster
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"
}
Inogona kumhanya
Zvose! Yedu yekumisikidza faira yakagadzirira uye isu tinokwanisa, nekuisa zvinosiyana, taurira Terraform kusimudza zvese zvatakatsanangura pamusoro. Zvese izvi zvakanditorera about 15 minutes.
Pakupedzisira unogona kuona meseji yakanaka:
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
Uye mugore, zvinhu zvezvivakwa zvakasimudzwa zvichaonekwa:
Ngationei mhinduro
Iye zvino, uchishandisa Grafana semuenzaniso, mumwe nemumwe wenyu anogona kuendesa zvikumbiro neyakavhurika gore rekuvaka paYandex.Cloud papuratifomu. Zvishandiso zvinobatsira kubva kuHashiCorp sePacker uye Terraform zvinogona kukubatsira neizvi. Ndinovimba mumwe munhu anowana chinyorwa ichi chinobatsira :)
PS Pazasi ini ndichabatanidza chinongedzo kune repository kwaunogona kuwana akagadzirira-akagadzirwa mabikirwo ePacker uye Terraform, zvimedu zvandapa mune ino chinyorwa.
Source: www.habr.com