Sustav dokumentacijske podrške u našoj banci se stalno razvija i skalira, a zahtjevi za brzinom i tolerancijom na greške samo rastu. U nekom je trenutku održavanje LMS-a bez učinkovitog centraliziranog nadzora postalo prerizično. Kako bismo osigurali poslovne procese u VTB-u i pojednostavili rad administratora, implementirali smo rješenje temeljeno na nizu otvorenih tehnologija. Uz njegovu pomoć možemo proaktivno reagirati na incidente, sprječavajući potencijalne probleme. Ispod presjeka je priča o našem iskustvu u korištenju besplatnog softvera za nadzor velikih poslovnih sustava.
Zašto nadzirati svoj sustav upravljanja dokumentima?
Od 2005. dokumentacijska podrška u VTB banci "upravlja" sustavom CompanyMedia. LMS zapošljava preko 60 tisuća korisnika koji mjesečno kreiraju više od milijun novih dokumenata. Naši poslužitelji moraju funkcionirati 24 sata dnevno: gotovo u svakom trenutku u sustavu je 2500–3000 ljudi koji su povezani u cijeloj zemlji, od Petropavlovsk-Kamchatskog do Kalinjingrada. Svaka sekunda rada LMS-a znači 10-15 promjena.
Kako bismo osigurali da sustav točno ispunjava svoje dodijeljene zadatke, postavili smo infrastrukturu otpornu na greške koristeći proxy poslužitelje, balansiranje zahtjeva, zaštitu informacija, pretraživanje cijelog teksta, integracijske rute i sigurnosno kopiranje. Za podršku i upravljanje projektom ove razmjere potrebni su golemi resursi. Administratori prate osnovne informacije o radu poslužitelja, opterećenju RAM-a, CPU vremenu, I/O podsustavu i tako dalje. Ali osim toga, potrebna je suptilnija analitika:
- izračunavanje vremena utrošenog na izvođenje poslovnih scenarija;
- praćenje dinamike performansi sustava i opterećenja na njemu;
- traženje odstupanja u komponentama sustava od odobrenih nefunkcionalnih zahtjeva.
11 godina nakon uvođenja LMS-a, posebno se aktualiziralo pitanje proaktivnog odgovora na razne vrste grešaka. Uprava banke shvatila je da je rad bez monitora i konzole za život sustava igranje s vatrom: i najmanji kvar u poslovnom sustavu te razine mogao bi rezultirati milijunskim gubicima.
U 2016. godini započeli smo s uvođenjem alata za brzo prepoznavanje problema u radu LMS-a, uključujući praćenje parametara koji nas zanimaju u stvarnom vremenu. Prethodno je primijenjeni sustav nadzora implementiran i testiran u okviru infrastrukture tvrtke InterTrust.
Kako je sve počelo
Danas centralizirani sustav praćenja aplikacija VTB LMS-a, temeljen na softverskim proizvodima otvorenog koda, pomaže spriječiti većinu pogrešaka povezanih s protokom dokumenata, brzo i točno klasificirati probleme i brzo reagirati na sve incidente. Uključuje dva podsustava:
- za praćenje informatičke infrastrukture servisa sustava;
- pratiti pojavu grešaka u radu LMS-a.
Sve je počelo s jednom besplatnom aplikacijom za nadzor. Nakon što smo prošli nekoliko opcija, odlučili smo se za Zabbix - besplatni softver koji je izvorno napisan za bankarske usluge i opremu. Ovaj PHP web-bazirani sustav, koji može pohranjivati podatke u MySQL, PostgreSQL, SQLite ili Oracle Database, savršeno je odgovarao našim potrebama.
Zabbix pokreće svoje agente na svakom poslužitelju i prikuplja informacije o metrikama od interesa u stvarnom vremenu u jednu bazu podataka. Pomoću aplikacije zgodno je prikupljati podatke o opterećenju procesora i RAM-a, korištenju mreže i ostalih komponenti, provjeravati dostupnost i odziv standardnih usluga (SMTP ili HTTP), pokretati vanjske programe te podržavati nadzor putem SNMP.
Nakon što smo postavili Zabbix, konfigurirali smo standardne hardverske metrike i isprva je to bilo dovoljno. Ali VTB SDO se stalno razvija i raste: u 2016. broj poslužitelja se značajno povećao, pojavili su se migracijski procesi, Moskovska banka, VTB Capital i VTB24 pridružili su se sustavu. Više nema dovoljno standardnih metrika, a Zabbix smo naučili da prati informacije o prisutnosti redova na svakom od volumena spojenih na poslužitelj (izvan okvira Zabbix odražava samo opći red čekanja na disku), kao i vrijeme koje je potrebno završiti određeni postupak.
Osim toga, opremili smo sustav s više triggera - uvjeta pod kojima se šalje obavijest administratoru (poruka u Telegramu, SMS na telefonski broj ili e-mail). Okidači se mogu konfigurirati za bilo koji skup parametara. Na primjer, možete odrediti određeni postotak slobodnog prostora na disku, a sustav će upozoriti administratora kada se dosegne navedeni prag ili će vas obavijestiti ako pozadinska procedura traje dulje nego obično.
Java povezivost i vizualizacija podataka
Značajno smo proširili raspon analiziranih podataka, ali to ubrzo nije bilo dovoljno za učinkovito praćenje. Iskoristivši činjenicu da je LMS tvrtke CompanyMedia Java aplikacija, povezali smo se s Java Virtual Machine putem JMX sučelja i mogli izravno uzeti Java metriku. I to ne samo standardni parametri vitalne aktivnosti Jave, kao što je intenzitet rada GC-a ili Heap potrošnja, već i specifični testovi koji se odnose izravno na izvršni aplikacijski kod.
U 2017. godini, otprilike godinu dana nakon implementacije sustava nadzora, postalo je jasno da za normalan rad s kolosalnom količinom podataka prikupljenih u Zabbixu, nema dovoljno vizualizacije - složenih ekrana. Najbolje rješenje za ovaj problem ponovno je bio besplatni softver - Grafana, zgodna nadzorna ploča za metriku koja vam omogućuje agregiranje svih podataka na jednom zaslonu.
Grafana sučelje je interaktivno, podsjeća na OLAP sustav. Podsustav prikazuje podatke primljene od strane Zabbixa na jednom ekranu, predstavljajući informacije u obliku grafikona i dijagrama koje je lako analizirati. Administrator može jednostavno prilagoditi dijelove koji su mu potrebni.
Praćenje i preventivno otklanjanje grešaka u LMS sustavu
ELK softverska platforma otvorenog koda pomaže vam filtrirati i analizirati informacije primljene tijekom praćenja. Ovaj opensource proizvod sastoji se od tri moćna alata za prikupljanje, pohranu i analizu podataka: Elasticsearch, Logstash i Kibana. Implementacija ovog podsustava omogućuje, posebice, da se u realnom vremenu vidi koliko se grešaka dogodilo u sustavu, na kojim poslužiteljima i da li se te greške ponavljaju.
Sada administrator može otkriti problem u ranoj fazi, čak i prije nego što korisnik naiđe na njega. Takav proaktivni nadzor omogućuje vam da spriječite kvarove u sustavu pravovremenim uklanjanjem grešaka. Osim toga, možemo razumjeti kako se ponašanje sustava promijenilo nakon ažuriranja, kao i otkriti nove probleme ako se pojave.
Praćenje poslovanja
Uz osnovne funkcije praćenja potrošnje resursa, sustav ima mogućnost analize i kontrole poslovanja.
Praćenje ukupnog vremena izvršenja poslovnih operacija omogućuje prepoznavanje novih faktora i razumijevanje njihovog utjecaja na rad sustava.
Praćenje vremena izvršenja zahtjeva za svaku poslovnu uslugu omogućuje otkrivanje operacija koje odstupaju od norme.
Gornji snimak zaslona je primjer praćenja pozadinskog zadatka u smislu njegovog odstupanja od norme.
Popis kontroliranih zadataka u smislu njihove aktivnosti na određenom poslužitelju omogućuje vam prepoznavanje pogrešaka - uključujući dupliciranje izvršenja zadataka - na svim poslužiteljima.
Također se prate trendovi u vremenu izvršenja pozadinskih procedura.
Sustav raste, razvija se i pomaže u suočavanju s problemima
Implementacijom opisanog sustava značajno je pojednostavljeno praćenje rada LMS poslužitelja. Unatoč tome, s vremena na vrijeme pojavljuju se razne vrste sukoba koji utječu na brzinu protoka dokumenata i uzrokuju pritužbe korisnika. Tako smo shvatili da je potrebno kontrolirati i ponašanje same aplikacije, a ne samo poslužitelja.
Kako bi se riješio ovaj problem, putem API-ja je na sustav nadzora spojen balanser koji radi s klasterom aplikacijskih poslužitelja. Zahvaljujući tome, administrator može vidjeti koliko je vremena potrebno poslužitelju da odgovori na svaki zahtjev korisnika.
Podaci o vremenu odziva poslužitelja postali su dostupni za analizu, što je omogućilo povezivanje usporavanja LMS-a s procesima koji se odvijaju na poslužitelju. Konkretno, pojavila se zanimljiva situacija: poslužitelj radi sporo, iako u ovom trenutku nije opterećen. Analizirajući anomaliju, otkrili smo odstupanja u radu Garbage Collector Jave. Na kraju se pokazalo da je do ove situacije doveo neispravan rad ovog servisa. Preuzimanjem kontrole nad Garbage Collector Javom u potpunosti smo eliminirali problem.
Ovo je način na koji besplatni softver pomaže razvoju i rastu sustava za upravljanje dokumentima u bankarskoj industriji. Dotakli smo se samo glavnih pitanja vezanih uz sustav praćenja VTB SDO. Ako vas zanimaju detalji, pitajte u komentarima, rado ćemo podijeliti svoje iskustvo s vama.
Izvor: www.habr.com