Lumelang bohle! E le karolo ea mosebetsi oa ka oa thupelo, ke ile ka batlisisa bokhoni ba sethala sa maru se joalo sa malapeng e le
U batla ho fumana eng?
Ka mor'a ho qala mochine o nang le seva sa marang-rang, u ka ea ho moamoheli oa eona 'me u fumane UI e ntle, u hlalose li-database e le mehloli ea mosebetsi o eketsehileng, etsa li-dashboards le li-graph.
Phetolelo ea mantlha e na le tšitiso e le 'ngoe ea bohlokoa - ha e mamelle liphoso ho hang. Ke hore, ts'ebetso eohle ea kopo e ipapisitse le ts'ebetso ea mochini o le mong oa nnete. Haeba e hana kapa batho ba 10 ba bula UI ka nako e le 'ngoe, mathata a tla hlaha.
Li ka rarolloa ka mokhoa o bonolo: o hloka feela ho ... sebelisa mechine e mengata e ts'oanang e ts'oanang le seva sa marang-rang ebe o e beha tlas'a sekala sa L3. Empa ha se tsohle tse hlakileng haholo mona. Grafana e boloka litlhophiso tsa basebelisi (litsela tse eang ho li-database, li-dashboards, li-graph, joalo-joalo) ka ho toba disk ea mochine oa eona oa sebele. Ka hona, haeba re fetola litlhophiso tse ling ho UI, liphetoho tsena li tla bonahala feela mochineng oa sebele oo ho leka-lekana ho re rometseng ho oona. Sena se tla lebisa ho litlhophiso tse sa lumellaneng tsa ts'ebeliso ea rona, ho baka mathata ha ho qala le ho sebelisoa.
Mona database e 'ngoe e tla thusa, mohlala, MySQL kapa e lekanang le eona. Re bolella Grafana hore o lokela ho boloka litlhophiso tsa basebelisi sebakeng sena sa polokelo ea "spare". Ka mor'a moo, ho tla lekane ho hlalosa tsela ea polokelongtshedimosetso ena hang mochining o mong le o mong, le ho hlophisa litlhophiso tse ling tsohle tsa mosebelisi mochining ofe kapa ofe oa sebele; li tla atolohela ho tse ling.
Mona ke setšoantšo sa lisebelisoa tsa ho qetela tsa kopo:
A re ithuteng ho phahamisa ka matsoho
MySQL le ClickHouse
Pele o kenya ts'ebeliso e joalo ka ho tobetsa konopo, ho ne ho hlokahala ho ithuta ho sebetsana le karolo e 'ngoe le e' ngoe ea eona le ho e kopanya.
Mona Yandex.Cloud e tla re thusa, e fanang ka li-balancers tsa L3, ClickHouse le MySQL e le litšebeletso tse laoloang. Mosebelisi o hloka feela ho hlakisa li-parameter ebe o ema ho fihlela sethala se tlisa ntho e 'ngoe le e' ngoe ka tatellano ea ho sebetsa.
Ke ngolisitse, ka theha leru le ak'haonte ea tefo. Ka mor'a moo, ke ile ka ea lerung 'me ka theha lihlopha tsa MySQL le ClickHouse tse nang le litlhophiso tse fokolang. Ke ile ka ema ho fihlela ba qala ho sebetsa.
Hape o hloka ho hopola ho theha database sehlopheng ka seng le ho lokisa phihlello ho eona o sebelisa ho kena le password. Ha ke na ho bua ka lintlha mona - ntho e 'ngoe le e' ngoe e hlakile ka har'a sehokelo.
Lintlha tse sa hlakang e ne e le hore li-database tsena li na le mabotho a mangata, a netefatsang mamello ea bona ea liphoso. Leha ho le joalo, Grafana e hloka moamoheli a le mong bakeng sa database ka 'ngoe eo e sebetsang le eona. Ho bala nako e telele c-<cluster_id>.rw.mdb.yandexcloud.net
'mapa ho moamoheli ea sebetsang oa hona joale oa sehlopha ka ID e tsamaisanang. Sena ke seo re tla se fa Grafana.
Seva ea webo
Hona joale ho ho web server. Ha re phahamiseng mochini o tloaelehileng o nang le Linux mme re hlophise Grafana ho oona.
Ha re ikopanye ka ssh ebe re kenya liphutheloana tse hlokahalang.
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
Kamora moo, ha re tsamaise Grafana tlasa systemctl mme re kenye plugin bakeng sa ho sebetsa le ClickHouse (e, ha e fanoe ka har'a sephutheloana sa mantlha).
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource
Ke eona, ka mor'a moo ka taelo e bonolo
sudo service grafana-server start
re tla qala seva sa webo. Joale o ka kenya aterese ea IP ea kantle ea mochini o fumanehang ho sebatli, o hlakisa port 3000 mme o bone UI e ntle ea Grafana.
Empa u se ke ua potlaka, pele u theha Grafana, u tlameha ho hopola ho e bolella tsela ea MySQL e le hore u boloke litlhophiso moo.
Tokiso eohle ea seva ea webo ea Grafana e faeleng /etc/grafana/grafana.ini
. Mohala o hlokahalang o shebahala tjena:
;url =
Re beha moamoheli sehlopheng sa MySQL. Faele e tšoanang e na le ho kena le password bakeng sa ho fihlella Grafana setšoantšong se ka holimo, tseo ka ho sa feleng li lekanang admin
.
U ka sebelisa litaelo tsa sed:
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
Ke nako ea ho qala seva sa webo bocha!
sudo service grafana-server restart
Joale ho Grafana UI re tla hlakisa ClickHouse joalo ka DataSource.
Ke khonne ho fihlela tlhophiso ea ts'ebetso ka li-setting tse latelang:
Ke boletse joalo ka URL https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443
Kaofela! Re na le mochini o le mong o sebetsang o nang le seva sa webo se hokahantsoeng le CH le MySQL. U se u ka kenya dataset ho ClickHouse 'me u hahe li-dashboards. Leha ho le jwalo, ha re eso fihlelle sepheo sa rona mme ha re so ka ra romela meralo ya motheo e felletseng.
Paka
Yandex.Cloud e u lumella ho etsa setšoantšo sa disk sa mochine o teng oa sebele, 'me motheong oa oona - palo leha e le efe ea mechine e tšoanang le e mong. Sena ke sona hantle seo re tla se sebelisa. Ho kopanya setšoantšo hantle, nka sesebelisoa
Faele ea rona ea json e tla ba le li-block tse peli: lihahi le bafani. Sebaka sa pele se hlalosa li-parameter tsa setšoantšo ka boeona e le mokhatlo, 'me karolo ea bobeli e hlalosa litaelo tsa ho e tlatsa ka litaba tse hlokahalang.
lihahi
{
"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"
}
],
...
}
Ka template ena, o hloka ho beha sekhetho sa karolo ka har'a leru moo u batlang ho etsa setšoantšo, hammoho le tsela e eang faeleng e nang le linotlolo tse tsoang akhaonteng ea litšebeletso tse entsoeng pele karolong ena. U ka bala haholoanyane mabapi le ho theha li-account tsa lits'ebeletso le linotlolo ka mokhoa oa faele karolong e tsamaellanang
Tlhophiso ena e re setšoantšo sa disk se tla hahoa ho latela sethala ubuntu-1804-lts
, e behiloeng karolong e loketseng ea basebelisi lelapeng la setšoantšo GRAFANA
tlasa lebitso grafana-{{timestamp}}
.
Bafani ba thepa
Joale ho tla karolo e khahlisang haholoanyane ea tlhophiso. E tla hlalosa tatellano ea liketso tse tla hloka ho etsoa mochineng oa sebele pele o hatsetsa boemo ba oona ho setšoantšo sa disk.
{
...,
"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"
]
}
]
}
Mona liketso tsohle li arotsoe ka mekhahlelo e 3. Mothating oa pele, ho etsoa script e bonolo e hlahisang buka e thusang.
ready-ctg.sh:
#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana
Mokhahlelong o latelang, re beha script bukeng ena, e tla hloka ho qalisoa hang ka mor'a ho qala mochine oa sebele. Sengoliloeng sena se tla beha mefuta e fapaneng ea mosebelisi e hlokang ho ngolisoa ho Grafana config le ho qala seva sa webo bocha.
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
Ka mor'a moo, ho na le lintho tse 3 tse lokelang ho etsoa:
1) kenya liphutheloana
2) tsamaisa Grafana tlas'a systemctl 'me u kenye plugin ea ClickHouse
3) kenya setup.sh script moleng oa ho qala hang ka mor'a ho bulela mochine oa sebele.
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;
Hona joale se setseng ke ho tsamaisa Packer le ho etsa hore setšoantšo se behoe karolong e boletsoeng. Ha o theha mochini o sebetsang, o ka o khetha joalo ka disk ea boot mme kamora ho qala o tla fumana seva ea webo ea Grafana e seng e lokisitsoe.
Sehlopha sa mohlala le balancer
Ha re se re e-na le setšoantšo sa disk se re lumellang ho theha li-server tse ngata tse tšoanang tsa Grafana, re ka theha sehlopha sa mohlala. Sethaleng sa Yandex.Cloud, lentsoe lena le bolela ho kopana ha mechine ea sebele e nang le litšobotsi tse tšoanang. Ha u theha sehlopha sa mohlala, mohlala oa mechini eohle ea sehlopha sena e lokisoa, ebe litšoaneleho tsa sehlopha ka boeona (mohlala, bonyane le palo e kholo ea mechini e sebetsang). Haeba palo ea hona joale e sa finyelle litekanyetso tsena, joale sehlopha sa mohlala ka boeona se tla tlosa mechine e sa hlokahaleng kapa e iketsetse e mecha ka setšoantšo sa eona.
E le karolo ea mosebetsi oa rona, re tla theha sehlopha sa mohlala sa li-server tse tla hlahisoa ho tsoa ho setšoantšo sa disk se entsoeng pele.
Ntho e ikhethang haholo ke sehlopha sa ho qetela sa mohlala. Sehlopha se reriloeng se kopantsoeng le Load Balancer se tla u thusa ho lokisa tekanyo ea L3 holim'a mechine e sebetsang ea sehlopha sena ka ho tobetsa likonopo tse 'maloa.
Ha ke theha balancer, ke sebelisitse lintlha tse peli tsa bohlokoa:
- Ke ile ka etsa hore motho ea leka-lekaneng a amohele sephethephethe sa basebelisi boema-kepeng ba 80 ebe ke se fetisetsa ho port 3000 ea mechini e fumanehang, hantle moo Grafana a lulang teng.
- Ke ile ka theha ho lekola hore na mechini e sebetsa joang ka ho e beha ho port 3000.
Kakaretso e nyane
Qetellong, re ile ra khona ho sebelisa mekhoa ea motheo ea kopo e lakatsehang, 'me joale re na le tšebeletso e tsitsitseng ea Grafana. U hloka feela ho tseba aterese ea IP ea balancer e le sebaka sa ho kena ho kopo le moamoheli oa sehlopha sa ClickHouse e le ho kenya dataset ho eona.
E ka bonahala eka ke tlhōlo? E, tlholo. Empa ho na le ntho e ntseng e mpherekanya. Ts'ebetso eohle e kaholimo e hloka mehato e mengata ea matsoho mme ha e fokotsehe ho hang; Ke kopa ho e etsa ka bo eona ha ho khonahala. Sena ke seo karolo e latelang e tla neheloa ho sona.
Ho kopanya ha terraform
Re tla boela re sebelise sesebelisoa se tsoang ho HashiCorp se bitsoang
Mosebetsi oohle le Terraform o theohela ho ngola faele ea tlhophiso (*.tf
) le theho ea meaho e thehiloeng ho eona.
Mefuta e fapaneng
Qalong ea faele, re tla kenyelletsa mefuta e fapaneng e khethollang hore na lisebelisoa tsa nako e tlang li tla sebelisoa hokae le joang.
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>"
}
Ts'ebetso eohle ea phepelo ea kopo e tla theoha ho aha setšoantšo sa disk le ho beha mefuta ena. E re ke hlalose hore na ba ikarabella ho eng:
oauth_token — letshwao la ho fihlella leru. E ka fumanoa ka
cloud_id - sekhetho sa leru moo re tla tsamaisa ts'ebeliso
folda_id - sekhetho sa karolo moo re tla fetisetsa kopo teng
service_account_id - sekhetho sa ak'haonte ea lits'ebeletso karolong e tsamaellanang ea leru.
setšoantšo_id — sekhetho sa setšoantšo sa disk se fumanoeng ho sebelisoa Packer
mosebedisi и phasewete — lebitso la mosebedisi le phasewete ho fihlella mabolokelo a data ka bobedi le seva sa webo sa Grafana
dbname - Lebitso la database ka har'a lihlopha tsa CH le MySQL
public_key_path - tsela e eang faeleng ka senotlolo sa hau sa sechaba sa ssh, seo u ka se sebelisang ho hokela tlas'a lebitso ubuntu
ho mecheng ea sebele e nang le li-server tsa marang-rang
Tlhophiso ea mofani
Joale o hloka ho hlophisa mofani oa Terraform - molemong oa rona, Yandex:
provider "yandex" {
token = var.oauth_token
cloud_id = var.cloud_id
folder_id = var.folder_id
zone = "ru-central1-a"
}
U tla hlokomela hore mona re sebelisa mefuta-futa e hlalositsoeng ka holimo.
Marang-rang le lihlopha
Hona joale re tla theha marang-rang ao likarolo tsa lisebelisoa tsa rona li tla buisana, li-subnets tse tharo (e le 'ngoe sebakeng se seng le se seng) le ho phahamisa lihlopha tsa CH le MySQL.
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
}
}
Joalo ka ha u bona, sehlopha ka seng sa lihlopha tse peli se entsoe hore se mamelle liphoso ka ho beoa libakeng tse tharo tse fumanehang.
Li-server tsa marang-rang
Ho ne ho ka bonahala eka re ka tsoela pele ka moea o le mong, empa ke ile ka kena mathateng. Pele ho sena, ke ile ka qala ho phahamisa sehlopha sa MySQL mme feela ka mor'a moo, ka ho tseba ID ea eona, ke ile ka bokella setšoantšo sa disk se nang le tlhophiso e hlokahalang, moo ke hlalositseng moeti ho sehlopha. Empa joale ha re tsebe ID ea sehlopha pele re qala Terraform, ho kenyeletsoa nakong ea ho haha setšoantšo. Ka hona, ke ile ka tlameha ho retelehela ho tse latelang
Re sebelisa ts'ebeletso ea metadata ea Amazon, re tla fetisetsa litekanyo tse ling mochining oa sebele, oo o tla o amohela le ho o sebetsa. Re hloka mochine ho ea ho metadata ka morao ho sehlopha sa MySQL cluster host le username-password, eo mosebedisi a e boletseng faeleng ea Terraform, ka mor'a ho qala. Ha re fetoleng litaba tsa faele hanyane setup.sh
, e sebetsang ha mochine oa sebele o buletsoe.
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
Sehlopha sa intance le balancer
Ha re se re hahile setšoantšo se secha sa disk, qetellong re ka eketsa faele ea rona bakeng sa Terraform.
Ha re bontše hore re batla ho sebelisa setšoantšo sa disk se teng:
data "yandex_compute_image" "grafana_image" {
image_id = var.image_id
}
Joale ha re theheng sehlopha sa mohlala:
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"
}
}
Ho bohlokoa ho ela hloko hore na re e fetisitse joang metadata cluster_uri
, username
и password
. Ke tsena tseo mochini o tla li ntša ha o qala ebe o li kenya ho Grafana config.
Ho ho ea leka-lekana.
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
}
}
}
}
Tsoekere e nyane
Ho setse hanyenyane feela. Ka mor'a hore lisebelisoa li sebelisoe, u tla tlameha ho ea Grafana UI 'me u kenye ka letsoho sehlopha sa CH (e leng ID ea eona e ntseng e lokela ho fumanoa) e le Mohloli oa Boitsebiso. Empa Terraform e tseba ID ea sehlopha. A re mo tšepeng ho phethahatsa taba eo.
Ha re kenyeng mofani oa litšebeletso e mocha - Grafana, 'me re mo fe aterese ea IP ea mohlahlobi e le moamoheli. Liphetoho tsohle tseo Terraform e li etsang mochining moo tekanyo ea eona e lekanyang hore e tla hola ho MySQL, ka hona le mechini e meng kaofela.
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"
}
Ha re kame moriri wa rona
Ha re bontsheng aterese ea IP ea balancer le sehlopha sa 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"
}
E ka matha
Kaofela! Faele ea rona ea tlhophiso e se e lokile, 'me ka ho beha mefuta e fapaneng, re ka bolella Terraform ho phahamisa tsohle tseo re li hlalositseng ka holimo. Ts'ebetso eohle e ile ea nkuka metsotso e ka bang 15.
Qetellong u ka bona molaetsa o monate:
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
'Me marung, likarolo tsa lisebelisoa tse phahamisitsoeng li tla bonahala:
A re ke re akaretsa liphetho
Hona joale, ho sebelisa Grafana e le mohlala, e mong le e mong oa lona a ka sebelisa lits'ebetso tse nang le meaho ea maru e pharallang sethaleng sa Yandex.Cloud. Lisebelisoa tse thusang tse tsoang HashiCorp joalo ka Packer le Terraform li ka u thusa ka sena. Ke tšepa hore motho e mong o tla fumana sengoloa sena se le molemo :)
PS Ka tlase ke tla hokela sehokelo sebakeng sa polokelo moo o ka fumanang litlolo tse lokiselitsoeng bakeng sa Packer le Terraform, likhechana tsa tsona tseo ke faneng ka tsona sehloohong sena.
Source: www.habr.com