Monitorování zdrojů Oracle Cloud Infrastructure (OCI)
Je zásadní pro udržení optimálního výkonu, zabezpečení a nákladové efektivity. Nepřetržitým sledováním zdrojů, jako jsou výpočetní instance, úložiště, databáze a síťové komponenty, můžete proaktivně identifikovat a řešit potenciální problémy dříve, než eskalují, a zajistit tak nepřerušované poskytování služeb.
Monitorování také poskytuje cenné poznatky o vzorcích využití zdrojů, což umožňuje plánování kapacity a optimalizaci. Efektivní monitorování navíc zvyšuje bezpečnost tím, že odhaluje anomálie nebo podezřelé aktivity, které by mohly naznačovat potenciální narušení bezpečnosti.
Tato integrace se skládá z více šablon, kde každá šablona pokrývá konkrétní zdroj OCI.
V době vzniku tohoto příspěvku jsou podporovány tyto služby:
- OCI Compute;
- Autonomní databáze OCI (bez serveru);
- úložiště objektů OCI;
- OCI virtuální cloudové sítě (VCN);
- Objemy bloku OCI;
- Spouštěcí svazky OCI.
Struktura těchto šablon je vytvořena tak, že není nutné konfigurovat každou službu zvlášť. Existuje hlavní šablona Oracle Cloud by HTTP, kterou je třeba nakonfigurovat a zbytek služeb bude monitorován automaticky pomocí nízkoúrovňového zjišťování a prototypů hostitelů. Celkově vypadá struktura šablon takto:
Připravte OCI pro monitorování pomocí Zabbix
Ve všech těchto příkladech bude použita webová konzole OCI, proto mějte na paměti, že některé prvky uživatelského rozhraní nebo navigační nabídky se mohou v budoucnu potenciálně změnit.
Vytvoření uživatele
Nejprve musíte v OCI nastavit uživatele, kterého bude Zabbix používat pro přístup k Rest API a shromažďování dat. Chcete-li tak učinit, přejděte na 'Identity & Security' -> 'Domains'
z hlavní nabídky v levé horní části obrazovky. Vyberte doménu, pro kterou chcete sledovat zdroje, a přejděte k Users
zobrazení na levém postranním panelu. Zde vytvořte nového uživatele.
Generování API klíče
Poté by vás OCI mělo automaticky přesměrovat na nově vytvořenou uživatelskou stránku. Pokud ne, z nějakého důvodu se vraťte ke všem uživatelům v doméně a otevřete dříve vytvořeného uživatele.
Tomuto uživateli musíte přiřadit klíče API. Chcete-li tak učinit, na levém postranním panelu stiskněte API keys
a poté Add API key
. Pokud již máte pár klíčů RSA, který chcete použít pro tohoto monitorovacího uživatele, můžete vybrat možnost buď nahrát nebo vložit veřejný klíč. V tomto příkladu však vygeneruji zcela nový pár klíčů.
Po stisknutí tlačítka Add
vám OCI zobrazí podrobnosti o vašem prostředí a klíč API. Tyto informace si prozatím uložte na bezpečné místo, protože tato data budeme muset později použít v Zabbixu. Po uložení můžete toto vyskakovací okno zavřít.
Vytvoření uživatelské skupiny
Aby byla správa uživatelů flexibilnější, bylo by dobré vytvořit uživatelskou skupinu speciálně pro monitorování a přiřadit monitorujícího uživatele do této skupiny. Takže v případě, že v budoucnu budete potřebovat více monitorovacích uživatelů, budete moci tyto uživatele pouze přiřadit do společné monitorovací uživatelské skupiny a všechna přístupová práva budou fungovat automaticky.
Chcete-li to provést, přejděte zpět 'Identity & Security' -> 'Domains'
a vyberte možnost Groups
. Zde stiskněte tlačítko Create group
. Pojmenujte tuto skupinu a přiřaďte k ní svého monitorovacího uživatele.
Tvorba politiky
Nyní, když jste úspěšně vytvořili monitorovacího uživatele, vygenerovali klíče API a vytvořili uživatelskou skupinu pro monitorování, musíte nyní vytvořit novou zásadu OCI. Zásady v OCI regulují, k jakým zdrojům mohou uživatelé přistupovat a co s těmito zdroji mohou dělat. Chcete-li vytvořit novou zásadu, otevřete nabídku vlevo nahoře, přejděte na 'Identity & Security' -> 'Policies'
a stiskněte tlačítko Create Policy
.
Otevře se nové zobrazení, kde můžete definovat nastavení zásad. Dejte této zásadě název a popis a vyberte příslušnou přihrádku. V nástroji pro tvorbu zásad povolte Show manual editor
a zkopírujte a vložte tato pravidla, jen je nezapomeňte nahradit zabbix-mon
názvem vaší monitorovací skupiny:
Allow group 'zabbix-mon' to read metrics in tenancy
Allow group 'zabbix-mon' to read instances in tenancy
Allow group 'zabbix-mon' to read subnets in tenancy
Allow group 'zabbix-mon' to read vcns in tenancy
Allow group 'zabbix-mon' to read vnic-attachments in tenancy
Allow group 'zabbix-mon' to read volumes in tenancy
Allow group 'zabbix-mon' to read objectstorage-namespaces in tenancy
Allow group 'zabbix-mon' to read buckets in tenancy
Allow group 'zabbix-mon' to read autonomous-databases in tenancy
Tato sada pravidel poskytne uživatelům vaší monitorovací skupiny přístup pouze pro čtení pouze k těm prostředkům, které používají šablony Zabbix Oracle Cloud Infrastructure.
Až budete hotovi, stiskněte tlačítko Create
a pravidlo se vytvoří.
Pokud se rozhodnete upravit šablonu pro přístup k více datům z OCI, budete muset sem také připojit příslušná pravidla.
To je nyní pro konfiguraci na straně OCI.
Připravte Zabbix
Vytvořit hostitele
Nejprve otevřete své webové rozhraní Zabbix, přejděte do Hosts
sekce a vytvořte nového hostitele. Zde budete muset zadat název hostitele podle svého výběru, šablonu Oracle Cloud by HTTPS
a přiřadit ji ke skupině.
Před stisknutím Add
tlačítka byste měli nakonfigurovat makra. Otevřete Macros
kartu a vyberte Inherited and host macros
. Bude jich poměrně dost, ale každý má svůj vlastní případ použití. Některá z těchto maker jsou popsána v části Volitelná konfigurace, takže se nyní zaměřme na ta, která jsou nezbytná k tomu, aby šablona vůbec fungovala.
Zde jsou v podstatě 3 kroky:
- Toto je okamžik, kdy vstupují do hry hodnoty konfiguračního souboru OCI ze sekce generování klíčů API. Budete muset nastavit hodnotu makra na hodnotu, kterou vám poskytl OCI:
{$OCI.API.TENANCY}
– zde nastavte hodnotu OCID pronájmu;{$OCI.API.USER}
– zde nastavte hodnotu OCID uživatele;{$OCI.API.FINGERPRINT}
– zde nastavte hodnotu otisku prstu;
- Nyní musíte najít, kam jste uložili soukromý klíč pro uživatele monitorování OCI ze stejné sekce generování klíčů API. Zkopírujte obsah tohoto souboru soukromého klíče a vložte jej do
{$OCI.API.PRIVATE.KEY}
makra. - Jakmile zadáte ověřovací pověření, musíte určit správné koncové body rozhraní OCI API, které odpovídají vaší oblasti (ten, který vám konfigurační soubor OCI poskytl v sekci generování klíčů API). Jedním ze způsobů, jak to udělat, je přejít na dokumentaci Oracle Cloud Infrastructure Documentation a na levé straně najdete všechny služby API. Pod každou z těchto služeb je domovská stránka věnovaná každé službě s příslušnými dostupnými koncovými body API.
Požadované koncové body služby API pro Zabbix jsou:
V mém případě je oblast OCI eu-stockholm-1
, proto výše uvedené koncové body služby API vypadají takto:
Služba OCI API | URL | Název makra Zabbix |
---|---|---|
Core Services API | iaas.eu-stockholm-1.oraclecloud.com |
{$OCI.API.CORE.HOST} |
Databázová služba API | database.eu-stockholm-1.oraclecloud.com |
{$OCI.API.AUTONOMOUS.DB.HOST} |
API služby Object Storage Service | objectstorage.eu-stockholm-1.oraclecloud.com |
{$OCI.API.OBJECT.STORAGE.HOST} |
Monitorovací API | telemetry.eu-stockholm-1.oraclecloud.com |
{$OCI.API.TELEMETRY.HOST} |
Nyní, když máte potřebné názvy hostitelů, musíte je uložit jako hodnoty pro jejich příslušná makra Zabbix.
DŮLEŽITÉ! Adresy URL koncových bodů API je třeba zadat bez schématu HTTP (
https://
).
Po těchto 3 krocích by vaše Macros
karta měla vypadat nějak takto.
Po stisknutí tlačítka Add
bude tento hostitel přidán do Zabbixu.
Tento hostitel nebude mít žádné položky metrik, místo toho objeví všechny zdroje OCI a přidá je jako samostatné hostitele v Zabbixu. To se stane automaticky, někdy mezi tím, kdy server Zabbix znovu načte svou konfigurační mezipaměť, a 1 hodinu poté (protože pravidla zjišťování mají interval aktualizace 1 hodinu). Pokud to však chcete urychlit, můžete ručně obnovit mezipaměť konfigurace serveru Zabbix pomocí příkazu CLI zabbix_server -R config_cache_reload
a všechna pravidla zjišťování spustit ručně.
Poté byste v zobrazení Hosts
měli vidět všechny své monitorované zdroje OCI.
Každý z těchto hostitelů bude mít také automaticky vytvořené vlastní řídicí panely, které poskytnou dobrý přehled o využití zdrojů.
Volitelná konfigurace
Při vytváření hostitele OCI v Zabbixu bylo několik maker, která vyžadovala úpravu hodnot. Jak jste si mohli všimnout, bylo zde několik dalších maker, která jsme přeskočili. V následujících částech bude vysvětleno použití těchto maker. Jedná se o volitelná makra, takže v závislosti na vašich požadavcích je možná ani nebudete muset měnit.
Použijte makra pro nízkoúrovňové filtrování zjišťování
V oficiálních šablonách Zabbix můžete najít makra, která končí na MATCHES
a NOT_MATCHES
. Používají se pro pravidla zjišťování nízké úrovně (LLD), která vám pomohou filtrovat zdroje, které by měly nebo neměly být objeveny. Tyto hodnoty používají regulární výrazy. Proto můžete pro porovnávání vzorů použít zástupné symboly.
Použití těchto maker lze nalézt v Filters
záložce pod pravidly zjišťování.
Obvykle výchozí hodnoty pro MATCHES
is .*
a pro NOT_MATCHES
– CHANGE_IF_NEEDED
. To znamená, že jakýkoli druh hodnoty bude objeven, pokud se nebude rovnat CHANGE_IF_NEEDED
. Pokud například taková makra filtrují název instance výpočtu:
{"instance-name": "compute_instance_1"}
bude objeven;{"instance-name": "web-server"}
bude objeven;{"instance-name": "CHANGE_IF_NEEDED"}
nebudou objeveny.
V šablonách OCI se také používají takováto vyhledávací makra. Jedním příkladem je zjišťování výpočetní instance, kde filtry kontrolují stav instance:
- Makro
{$OCI.COMPUTE.DISCOVERY.STATE.MATCHES}
má hodnotu.*
; - Makro
{$OCI.COMPUTE.DISCOVERY.STATE.NOT_MATCHES}
má hodnotuTERMINATED
.
To znamená, že žádná instance, která je v ukončeném stavu, nebude objevena. Je to proto, že když instanci v OCI ukončíte, je stále nějakou dobu zachována, ale není důvod takovou instanci monitorovat.
Nyní, když máte představu, jak tyto filtry fungují, můžete je upravit podle svých požadavků.
Nízkoúrovňové filtrování zdrojů zjišťování pomocí volně formátovaných značek zdrojů OCI
Chcete-li přidat další možnosti filtrování zjišťování zdrojů, každý skript zjišťování (kromě zjišťování VCN) shromažďuje volně tvarovaná data značek o konkrétním zdroji. Vzhledem k tomu, že značky volného formátu jsou zcela vlastní a formát nebo použití se bude u jednotlivých uživatelů lišit, filtry značek volných nejsou ve výchozím nastavení zahrnuty mezi filtry LLD, ale lze je snadno přidat, protože jsou již shromažďovány pomocí skriptů.
Abychom ukázali příklad, předpokládejme, že chcete kategorizovat instance výpočtu OCI podle jejich použití s využitím značek volného formátu.
Pro jednu z instancí přidejte novou značku free-of, například usage
s hodnotou web-server
.
Musíte to zopakovat pro další instance výpočtu a nastavit usage
hodnoty značek free-from, jak chcete.
Nyní přepněte na Zabbix a otevřete Oracle Cloud by HTTP
šablonu v Zabbix a přejděte na Discovery rules
. Najděte Compute instances discovery
a otevřete jej.
Na LLD macros
kartě přidejte nové makro, které bude reprezentovat tuto značku skupiny umístění, například {#USAGE}
$.tags.usage
.
Pod Filters
záložkou již budou filtry týkající se názvu a stavu instance výpočtu. Kliknutím na „Přidat“ přidejte nový filtr a definujte dříve vytvořené makro LLD a přidejte odpovídající vzor a hodnotu, například {#USAGE}
matches
web-server
.
Při příštím Compute instances discovery
spuštění objeví pouze instance výpočtu OCI, které mají volnou značku, usage
která odpovídá regulárnímu výrazu web-server
. Můžete také experimentovat s hodnotou odpovídající vzoru filtru LLD a získat různé výsledky shody pro zadanou hodnotu.
DŮLEŽITÉ! Značka free-from musí být přítomna na každém prostředku v OCI, na kterém používáte tuto metodu. V těchto příkladech byste museli nastavit
usage
volnou značku pro každou výpočetní instanci, jinak Zabbix LLD přestane fungovat. Pokud značka neexistuje, když ji Zabbix LLD hledá, vyvolá chybu. Volně tvarovaná značka nemusí mít hodnotu, ujistěte se, že je tam klíč značky.
Využití HTTP proxy
V případě potřeby můžete určit HTTP proxy pro šablonu, kterou má použít, změnou hodnoty {$OCI.HTTP.PROXY}
uživatelského makra. Každý požadavek bude používat tento proxy.
Vlastní odpověď HTTP OK
Pokud používáte proxy, vrácená odpověď HTTP OK se může změnit z 200
na jinou hodnotu. V takovém případě změňte uživatelské makro {$OCI.HTTP.RETURN.CODE.OK}
na příslušnou hodnotu. Ve výchozím nastavení je toto nastaveno na 200
, proto všechny položky požadavku přijmou data pouze tehdy, když je odpověď 200
.
Zdroj: Zabbix