Dia duit gach duine! Mar chuid de m’obair chúrsa, rinne mé taighde ar chumais ardán scamall baile mar . Cuireann an t-ardán seirbhísí éagsúla ar fáil chun fadhbanna praiticiúla a réiteach. Mar sin féin, uaireanta ní mór duit d'iarratas scamall féin a bhunú le bonneagar measartha fairsing bunaithe ar na seirbhísí seo. San Airteagal seo ba mhaith liom mo thaithí a roinnt maidir le feidhmchlár den sórt sin a imscaradh.

Cad ba mhaith leat a fháil?
— uirlis chumhachtach chun fadhbanna anailíse a réiteach nó chun monatóireacht a dhéanamh ar fhadhbanna aon chórais. Ina chumraíocht bhunúsach, is meaisín fíorúil é seo le freastalaí gréasáin Grafana, chomh maith le bunachar sonraí (ClickHouse, InfluxDB, etc.) le tacar sonraí ar a mbeidh an anailísíocht bunaithe.
Tar éis duit meaisín fíorúil a sheoladh le freastalaí gréasáin, is féidir leat dul chuig a óstach agus UI álainn a fháil, bunachair shonraí a shonrú mar fhoinsí le haghaidh tuilleadh oibre, cruthaigh daais agus graif.

Tá míbhuntáiste suntasach amháin ag baint leis an mbunleagan - níl sé fabhtach ar chor ar bith. Is é sin, braitheann feidhmiúlacht iomlán an iarratais ar inmharthanacht meaisín fíorúil amháin. Má dhiúltaíonn sé nó má osclaíonn 10 duine an Chomhéadain ag an am céanna, tiocfaidh fadhbanna chun cinn.
Is féidir iad a réiteach go simplí: níl le déanamh agat ach... go leor meaisíní fíorúla comhionanna a imscaradh le freastalaí gréasáin agus iad a chur faoi chothromóir L3. Ach níl gach rud chomh soiléir anseo. Stórálann Grafana socruithe úsáideora (cosáin chuig bunachair shonraí, deais, graif, etc.) go díreach ar dhiosca a mheaisín fíorúil. Mar sin, má athraíonn muid roinnt socruithe san Chomhéadain, ní léireofar na hathruithe seo ach ar an meaisín fíorúil inar sheol an cothromóir sinn. Beidh socruithe neamhréireacha dár bhfeidhmchlár mar thoradh air seo, rud a chruthóidh fadhbanna le seoladh agus úsáid.
Anseo tiocfaidh bunachar sonraí eile chun tarrthála, mar shampla, MySQL nó a choibhéis. Deirimid le Grafana gur cheart di socruithe úsáideora a stóráil sa bhunachar sonraí “spártha” seo. Ina dhiaidh sin, beidh sé go leor an cosán chuig an mbunachar sonraí seo a shonrú uair amháin ar gach meaisín, agus gach socrú úsáideora eile ar aon cheann de na meaisíní fíorúla a chur in eagar;
Seo léaráid den bhonneagar feidhmchláir dheiridh:

A ligean ar a fhoghlaim chun ardaitheoir lenár lámha
MySQL agus ClickHouse
Sular imscaradh iarratas den sórt sin le cliceáil an cnaipe, bhí sé riachtanach a fháil amach conas a láimhseáil gach ceann de na comhpháirteanna agus iad a chomhtháthú lena chéile.
Anseo cabhróidh Yandex.Cloud linn, a sholáthraíonn cothromóirí L3, ClickHouse agus MySQL mar sheirbhísí bainistithe. Ní gá don úsáideoir ach na paraiméadair a shonrú agus fanacht go dtí go dtabharfaidh an t-ardán gach rud in ord oibre.
Chláraigh mé, chruthaigh mé scamall agus cuntas íocaíochta. Tar éis sin, chuaigh mé go dtí an scamall agus bhunaigh mé braislí MySQL agus ClickHouse le socruithe íosta. D'fhan mé go dtí go raibh siad gníomhach.


Ní mór duit cuimhneamh freisin bunachar sonraí a chruthú i ngach braisle agus rochtain air a chumrú trí logáil isteach agus pasfhocal a úsáid. Ní rachaidh mé isteach i sonraí anseo - tá gach rud soiléir go leor sa chomhéadan.
Ba é an mionsonraí neamhshoiléir ná go bhfuil go leor óstach ag na bunachair shonraí seo, rud a áirithíonn a lamháltas lochtanna. Mar sin féin, tá óstach amháin ag teastáil ó Grafana do gach bunachar sonraí lena n-oibríonn sé. Léamh fada Thug na scamaill mé go dtí cinneadh. Tharlaíonn sé go raibh an ósta ar an speiceas c-<cluster_id>.rw.mdb.yandexcloud.net mapáilte chuig máistir-óstach gníomhach reatha an bhraisle leis an ID comhfhreagrach. Seo é a thabharfaimid do Grafana.
Freastalaí gréasáin
Anois tá sé in am don fhreastalaí gréasáin. Lig dúinn meaisín fíorúil rialta a bhunú le Linux agus cuirfimid Grafana ar bun air lenár lámha.


Déanaimis ceangal trí ssh agus na pacáistí riachtanacha a shuiteáil.
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
Tar éis sin, déanaimis Grafana a reáchtáil faoi systemctl agus an breiseán a shuiteáil le haghaidh oibriú le ClickHouse (tá, ní sholáthraítear é sa phacáiste bunúsach).
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasourceSin é, tar éis sin le hordú simplí
sudo service grafana-server startcuirfimid tús leis an bhfreastalaí gréasáin. Anois is féidir leat seoladh IP seachtrach an mheaisín fíorúil a chur isteach sa bhrabhsálaí, sonraigh port 3000 agus féach an Chomhéadain Grafana álainn.

Ach ná déan deifir, roimh duit Grafana a bhunú, ní mór duit cuimhneamh ar an gcosán chuig MySQL a insint dó chun na socruithe a stóráil ann.
Tá cumraíocht iomlán fhreastalaí gréasáin Grafana sa chomhad /etc/grafana/grafana.ini. Breathnaíonn an líne riachtanach mar seo:
;url =Shocraigh muid an t-óstach chuig braisle MySQL. Sa chomhad céanna tá an logáil isteach agus an pasfhocal chun rochtain a fháil ar Grafana sa phictiúr thuas, atá comhionann de réir réamhshocraithe admin.
Is féidir leat orduithe sed a úsáid:
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
Tá sé in am an freastalaí gréasáin a atosú!
sudo service grafana-server restartAnois in Chomhéadain Grafana sonróimid ClickHouse mar Foinse Sonraí.
Bhí mé in ann cumraíocht oibre a bhaint amach leis na socruithe seo a leanas:

shonraigh mé mar an URL https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443
Gach! Tá meaisín fíorúil amháin oibre againn le freastalaí gréasáin ceangailte le CH agus MySQL. Is féidir leat an tacar sonraí a uaslódáil chuig ClickHouse cheana féin agus deais a thógáil. Mar sin féin, níl ár sprioc bainte amach againn go fóill agus níl bonneagar lán-chuimsitheach curtha i bhfeidhm againn.
Pacálaí
Ceadaíonn Yandex.Cloud duit íomhá diosca a chruthú de mheaisín fíorúil atá ann cheana féin, agus ar a bhonn - aon líon meaisíní atá comhionann lena chéile. Seo é go díreach a úsáidfimid. Chun an íomhá a chur le chéile go caothúil, tóg an uirlis ó HashiCorp. Glacann sé mar ionchur comhad json le treoracha chun an íomhá a chur le chéile.
Beidh ár gcomhad json comhdhéanta de dhá bhloc: tógálaithe agus soláthraithe. Déanann an chéad bhloc cur síos ar pharaiméadair na híomhá féin mar eintiteas, agus déanann an dara bloc cur síos ar na treoracha chun é a líonadh leis an ábhar is gá.
Tógálaithe
{
"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"
}
],
...
}Sa teimpléad seo, ní mór duit aitheantóir na rannóige a shocrú sa scamall áit ar mhaith leat an íomhá a chruthú, chomh maith leis an gcosán chuig an gcomhad leis na heochracha ón gcuntas seirbhíse a cruthaíodh roimhe seo san alt seo. Is féidir leat tuilleadh a léamh faoi chuntais seirbhíse agus eochracha a chruthú i bhfoirm comhaid sa rannán comhfhreagrach .
Deir an chumraíocht seo go dtógfar an íomhá diosca bunaithe ar an ardán ubuntu-1804-lts, a chuirtear sa rannóg úsáideora cuí sa teaghlach íomhá GRAFANA faoin ainm grafana-{{timestamp}}.
Soláthraithe
Anois tagann an chuid is suimiúla den chumraíocht. Déanfaidh sé cur síos ar sheicheamh na ngníomhartha a chaithfear a dhéanamh ar an meaisín fíorúil roimh a staid a reo ina íomhá diosca.
{
...,
"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"
]
}
]
}Anseo roinntear na gníomhartha go léir i 3 chéim. Ag an gcéad chéim, déantar script shimplí a fhorghníomhú a chruthaíonn eolaire cúnta.
ullmhaigh-ctg.sh:
#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafanaAg an gcéad chéim eile, cuirimid script san eolaire seo, a chaithfear a sheoladh díreach tar éis an meaisín fíorúil a thosú. Cuirfidh an script seo na hathróga úsáideora ar gá iad a chlárú sa chumraíocht Grafana agus atosóidh sé an freastalaí gréasáin.
thus.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 restartIna dhiaidh seo tá 3 rud fágtha le déanamh:
1) pacáistí a shuiteáil
2) rith Grafana faoi systemctl agus suiteáil an breiseán ClickHouse
3) cuir an script setup.sh sa scuaine seolta díreach tar éis duit an meaisín fíorúil a chasadh air.
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-datasourcerun-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;Anois níl fágtha ach Pacálaí a rith agus an íomhá aschuir a chur sa chuid sonraithe a fháil. Agus meaisín fíorúil á chruthú agat, is féidir leat é a roghnú mar dhiosca tosaithe agus tar éis é a sheoladh gheobhaidh tú freastalaí gréasáin Grafana réidh.


Grúpa samplaí agus cothromóir
Nuair a bheidh íomhá diosca againn a ligeann dúinn go leor freastalaithe gréasáin comhionanna Grafana a chruthú, is féidir linn grúpa ásc a chruthú. Ar ardán Yandex.Cloud, tagraíonn an téarma seo d'aontas na meaisíní fíorúla a bhfuil na tréithe céanna acu. Nuair a bhíonn grúpa ásc á chruthú, déantar fréamhshamhail na meaisíní go léir sa ghrúpa seo a chumrú, agus ansin tréithe an ghrúpa féin (mar shampla, an líon íosta agus uasta de mheaisíní gníomhacha). Mura gcomhlíonann an uimhir reatha na critéir seo, bainfidh an grúpa ásc féin meaisíní nach bhfuil gá leo nó cruthóidh sé cinn nua ina íomhá féin.
Mar chuid dár dtasc, cruthóimid grúpa mar shampla de fhreastalaithe gréasáin a ghinfear ón íomhá diosca a cruthaíodh roimhe seo.


Is é an rud is suntasaí i ndáiríre ná an socrú grúpa sampla deiridh. Cabhróidh an spriocghrúpa i gcomhtháthú le Load Balancer leat cothromaíocht L3 a chumrú ar bharr meaisíní fíorúla an ghrúpa seo trí chliceáil ar chúpla cnaipe.

Agus an cothromóir á shocrú agam, chuir mé dhá phointe thábhachtacha i bhfeidhm:
- Rinne mé ar an gcothromóir glacadh le trácht úsáideora ar phort 80 agus é a atreorú chuig port 3000 de na meaisíní fíorúla, go díreach áit a bhfuil cónaí ar Grafana.
- Chuir mé ar bun chun inmharthanacht na meaisíní a sheiceáil trí iad a phingeáil chuig calafort 3000.

Achoimre mion
Ar deireadh, bhíomar in ann an bonneagar iarratais a bhí ag teastáil a úsáid de láimh, agus anois tá seirbhís Grafana an-athléimneach againn. Ní mór duit ach seoladh IP an chothromóra a bheith ar eolas agat mar phointe iontrála don fheidhmchlár agus óstach an bhraisle ClickHouse chun an tacar sonraí a luchtú isteach ann.
Bheadh sé cosúil cosúil le bua? Sea, bua. Ach cuireann rud éigin mearbhall orm fós. Éilíonn an próiseas iomlán thuas go leor céimeanna láimhe agus níl sé inscálaithe ar chor ar bith ba mhaith liom é a uathoibriú más féidir. Is chuige seo a bheidh an chéad alt eile dírithe.
Comhtháthú terraform
Úsáidfimid arís uirlis ó HashiCorp ar a dtugtar . Cabhróidh sé leat an bonneagar feidhmchláir iomlán a imscaradh le cliceáil an cnaipe, bunaithe ar roinnt athróg a rith an t-úsáideoir. Scríobhaimis oideas is féidir a reáchtáil go minic i rannóga éagsúla úsáideoirí éagsúla.
Tagann gach obair le Terraform síos go dtí comhad cumraíochta a scríobh (*.tf) agus cruthú bonneagair atá bunaithe air.
Athróga
Ag tús an chomhaid, cuirfimid athróga san áireamh a chinnfidh cén áit agus conas a úsáidfear an bonneagar amach anseo.
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>"
}Tiocfaidh an próiseas imlonnaithe iarratais ar fad síos chun íomhá diosca a thógáil agus na hathróga seo a shocrú. Lig dom a mhíniú cad atá siad freagrach as:
oauth_token — comhartha chun rochtain a fháil ar an scamall. Is féidir a fháil trí .
scamall_id — aitheantóir néil nuair a úsáidfimid an feidhmchlár
fillteán_id — aitheantóir na rannóige ina n-imscarfaimid an t-iarratas
seirbhís_chuntais_aitheantais — aitheantóir cuntais seirbhíse sa roinn chomhfhreagrach den néal.
íomhá_id — aitheantóir íomhá an diosca a fuarthas trí úsáid a bhaint as Packer
ainm úsáideora и Focal faire — ainm úsáideora agus pasfhocal chun rochtain a fháil ar bhunachair shonraí agus ar fhreastalaí gréasáin Grafana araon
dbainm — ainm an bhunachair shonraí laistigh de bhraislí CH agus MySQL
cosán_eochair_phoiblí — cosán chuig an gcomhad le d'eochair phoiblí ssh, ar féidir leat é a úsáid chun nascadh faoin ainm ubuntu le meaisíní fíorúil le freastalaithe gréasáin
Socrú soláthraí
Anois ní mór duit an soláthraí Terraform a chumrú - inár gcás, Yandex:
provider "yandex" {
token = var.oauth_token
cloud_id = var.cloud_id
folder_id = var.folder_id
zone = "ru-central1-a"
}
Tabharfaidh tú faoi deara go bhfuilimid ag baint úsáide as na hathróga atá sainmhínithe thuas anseo.
Líonra agus braislí
Anois cruthóimid líonra ina ndéanfaidh gnéithe dár mbonneagar cumarsáid, trí fho-líonra (ceann amháin i ngach réigiún) agus ardóidh siad braislí CH agus 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
}
}Mar a fheiceann tú, cruthaítear gach ceann den dá chnuasach go leor fabhtach trí iad a bheith suite i dtrí chrios infhaighteachta.
Freastalaithe gréasáin
Dhealródh sé go bhféadfaimis leanúint ar aghaidh sa mheon céanna, ach bhí deacracht agam. Roimhe seo, d'ardaigh mé braisle MySQL ar dtús agus ach amháin ina dhiaidh sin, agus a ID á fhios agam, bhailigh mé íomhá diosca leis an gcumraíocht riachtanach, áit ar shonraigh mé an t-óstach don bhraisle. Ach anois níl a fhios againn an ID braisle sula seolfar Terraform, lena n-áirítear ag an am a thógáil ar an íomhá. Mar sin, bhí orm dul i muinín na nithe seo a leanas .
Ag baint úsáide as seirbhís meiteashonraí Amazon, cuirfimid roinnt paraiméadair ar aghaidh chuig an meaisín fíorúil, a ghlacfaidh sé agus a phróiseálfaidh sé. Ní mór dúinn an meaisín chun dul go dtí na meiteashonraí taobh thiar de na braisle MySQL óstach agus ainm úsáideora-pasfhocal, a shonraigh an t-úsáideoir sa chomhad Terraform, tar éis tosú. Déanaimis ábhar an chomhaid a athrú beagán setup.sh, a ritheann nuair a bhíonn an meaisín fíorúil casta air.
thus.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 restartGrúpa tosaigh agus cothromóir
Tar éis íomhá diosca nua a atógáil, is féidir linn ár gcomhad le haghaidh Terraform a chur leis ar deireadh.
Cuirimis in iúl gur mian linn íomhá diosca atá ann cheana a úsáid:
data "yandex_compute_image" "grafana_image" {
image_id = var.image_id
}Anois cruthaimis grúpa samplaí:
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"
}
}Is fiú aird a thabhairt ar an gcaoi ar chuireamar isteach iad sna meiteashonraí cluster_uri, username и password. Is iad seo a thógfaidh an meaisín fíorúil amach ag am tosaithe agus a chuirfidh sé sa chumraíocht Grafana.
Tá sé suas go dtí an balancer.
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
}
}
}
}Beagán siúcra
Níl ach beagán fágtha. Tar éis an bonneagar a imscaradh, beidh ort dul go dtí an Chomhéadain Grafana agus an braisle CH a chur leis de láimh (ní mór an t-aitheantas a fháil fós) mar Fhoinse Sonraí. Ach tá a fhios ag Terraform an ID braisle. A ligean ar a chur de chúram air an t-ábhar a thabhairt chun críche.
Cuirimis soláthraí nua leis - Grafana, agus tabhair seoladh IP an chothromóra mar óstach di. Fásfaidh gach athrú a dhéanann Terraform ar an meaisín ina gcinnfidh a chothromóir i MySQL, agus mar sin ar gach meaisín eile.
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"
}Cíoraimis ár gcuid gruaige
Taispeánaimis an seoladh IP cothromóir agus óstach an bhraisle 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"
}Is féidir leat rith
Gach! Tá ár gcomhad cumraíochta réidh agus is féidir linn, trí na hathróga a shocrú, a rá le Terraform gach rud a thuairiscíomar thuas a ardú. Thóg an próiseas iomlán thart ar 15 nóiméad orm.
Ag an deireadh is féidir leat teachtaireacht álainn a fheiceáil:
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.25Agus sa scamall, beidh gnéithe den bhonneagar ardaithe le feiceáil:

Suim suas
Anois, ag baint úsáide as Grafana mar shampla, is féidir le gach duine agaibh feidhmchláir a imscaradh le hailtireacht scamall sprawling ar an ardán Yandex.Cloud. Is féidir le huirlisí cabhracha ó HashiCorp mar Packer and Terraform cabhrú leat le seo. Tá súil agam go mbeidh an t-alt seo úsáideach do dhuine éigin :)
PS Thíos cuirfidh mé nasc leis an stór áit ar féidir leat teacht ar oidis réidh le haghaidh Pacálaí agus Terraform, ar chuir mé cuid díobh ar fáil san Airteagal seo.
Foinse: will.com
