Analýza a riešenie problémov s telemetriou
V tejto časti sa zameriame na opravu chýb Gnocchi a Ceilometra, ktoré potom spolu integrujeme. Tieto komponenty slúžia na zber metrík. Konkrétne Ceilometer pomocou svojich agentov zbiera metriky a ukladá ich do datbaázy Gnocchi, ktorá má registrované API rozhranie v Keystone.
Počas celej doby riešenia problémov som postupoval podľa dokumentácie Gnocchi&Ceilometer. Komunikoval som aj s ich podporou na Charmhube.
Problémy s Gnocchi
Služba Gnocchi bola v chybovom stave: gnocchi-api maskovaná/inaktívna, gnocchi-metricd bežala.
Zistené chyby
- Chyba hooku:
metric-service-relation-broken - Log:
missing identity_service.auth_host - Chýbajúce vzťahy:
databasepre Ceilometer
Problémy vznikli z neúplných alebo nesprávnych vzťahov medzi Gnocchi a Keystone.
Riešenie
Prvým krokom bolo obnovenie chýbajúceho vzťahu medzi službou Gnocchi a Keystone. Tento vzťah je nevyhnutný, aby Gnocchi mala prístup k identitnej službe OpenStack a mohla overovať požiadavky. Obnovenie vzťahu sa vykonalo príkazom:
Po pridaní vzťahu bolo potrebné reštartovať jednotku gnocchi príkazom:
Preistotu aj reštartujeme služby gnocchi nasledovne:
Na overenie stavu služieb sme použili:
juju status gnocchi
juju ssh gnocchi/0
systemctl status gnocchi-api
systemctl status gnocchi-metricd
Po doplnení vzťahu na keystone sa nám stav Gnocchi zmenil z error na active.
Problémy so Ceilometrom
Po vyriešení problémov s Gnocchi sme sa presunuli na opravu Ceilometra.
Ešte keď Gnocchi nebol v stave active, tak ceilometer písal chybu The identity-credentials and or metric-service relations are not complete. Ceilometer-upgrade cannot be run until they are ready a bol v stave blocked.
Ako sme opravili Gnocchi tak nám prešiel príkaz:
Následne bolo v dokumentácii písané, že treba spraviť upgrade. Zo statusu ceilometra, ktorý si zobrazíme príkazom:
Tak aj samotný ceilometer písal, že je potrebný upgrade Run the ceilometer-upgrade action on the leader to initialize ceilometer and gnocchi.
Preto sme spustili príkaz:
Upgrade sa pustil no stretli sme sa s novou chybou CRITICAL ceilometer [-] Unhandled error: gnocchiclient.exceptions.ClientException: {"message": "The server is currently unavailable. Please try again at a later time.<br /><br />\nThe Keystone service is temporarily unavailable.\n\n", "code": "503 Service Unavailable", "title": "Service Unavailable"} (HTTP 503).
Po komunikácii s podporou na Charmhub-e a prezeraní logov sme zistili, že problém je v ssl certifikátoch, ktoré podpisovala certifikačná autorita Vault.
Riešenie
Stiahneme si certifikát z jednotky Vault príkazom:
Tento výstup obsahoval PEM certifikát, ktorý sme potom uložili na Gnocchi aj Ceilometer:
juju ssh gnocchi/0
sudo tee /usr/local/share/ca-certificates/vault-ca.crt <<'EOF'
-----BEGIN CERTIFICATE-----
(obsah certifikátu)
-----END CERTIFICATE-----
EOF
sudo update-ca-certificates
Podobne aj na jednotke Ceilometer. Môže sa stať, že certifikát sa zle stiahne a bude obsahovať náhodné znaky. Je potrebné si ho overiť príkazom:
Potom už nám Ceilometer upggrade prebehol bez problémov a momentálne je v stave active.
Overenie posielania metrík
Na jednotke gnocchi si vytvoríme súbor napríklad gnocchi-openrc.sh.
Súbor musí obsahovať všetky premenné prostredia potrebné na prihlásenie do OpenStacku/Keystone. Obsah súboru vyzerá nasledovne:
export OS_AUTH_URL=https://10.11.1.137:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_PROJECT_DOMAIN_NAME=service_domain
export OS_USER_DOMAIN_NAME=service_domain
export OS_PROJECT_NAME=services
export OS_USERNAME=gnocchi
export OS_PASSWORD='XXX'
Všetky potrebné premenné nájdeme v súbore /etc/gnocchi/gnocchi.conf.
Následne zadáme príkaz:
A potom príkazy:
Ak by sme nezadali príkaz source ./gnocchi-openrc.sh tak sa môžeme stretnúť s chybami typu Missing value auth-url required for auth plugin password respektíve The request you have made requires authentication. (HTTP 401).