Монголын сайтууд хэр хурдан бэ? Monitoring 101
Сайтын хурд гэдгээр ерөнхийдөө тухайн сайтруу зочлох үед харагдах хуудас хэр хурдан хугацаанд ачааллахыг хэлсэн болно.
Энэ удаагийн нийтлэлээр Synthetic Monitoring гэж юу болох талаар хамтдаа судалцгаая. Орчуулбал нийлэг / хиймэл, хяналт / шалгалт .? нэг иймэрхүү утгатай болох бөгөөд ерөнхийдөө тухайн сайт, системийг хэрэглэгчийн өнцгөөс хэр ачааллаж байгааг шалгахыг хэлнэ. Жишээлбэл www.google.com гээд browser дээрээс дуудахад секунд хүрэхгүй хугацаанд гарч ирдэг. Тэгвэл энэхэн хоромд болоод өнгөрөх зүйлсийг хэрхэн байнгын ажиллагааг нь шалгаж, тестлэж, автоматжуулах вэ?
Энэ л асуултанд хариулахаар Synthetic Monitoring гэх ойлголт үүссэн ажээ. Ил ч бай, далд ч бай бидний бүтээсэн вебүүд, системүүд үргэлж ямар нэг асуудлыг шийдэхээр, хэн нэгний хэрэглээнд зориулж бүтээгдэж байдаг. Тэгвэл тэрхүү үндсэн ганц зорилгыг биелүүлэхийн төлөө маш олон зүйлсийг бүтээж, туршиж, сайжруулж, тестлэснээр сая сайн систем бүтдэг. Гэхдээ асуудал энд хүрээд дуусахгүй бөгөөд тэрхүү бүтээсэн системээ хэрхэн яаж аюулгүй, асуудалгүй, тогтвортой ажиллуулах вэ гэдэг дараагийн том сэдэв сөхөгдөнө. Synthetic monitoring нь дараах асуултуудад хариулах үндсэн үүрэгтэй.
- Систем ажиллаж байгаа эсэх?
- Систем хэр хурдтай ажиллаж байна вэ?
- Цаашлаад хэрэглэгчийн нэвтрэх, гүйлгээ хийх зэрэг гол амин үйлдлүүд ажиллаж байна уу?
- Удааширсан, эсвэл унасан системүүд хаана байна?
зэрэг маш энгийн бөгөөд амин үзүүлэлтүүдийг байнгын 24/7 автоматжуулсан байдлаар шалгах нь Synthetic monitoring-н үндсэн үүрэг юм. Сайт зүгээр л ажиллаж байгаагаас эхлээд нэвтэрч болж байгаа эсэх? юм худалдаж авч болж байгаа эсэх гэх мэт гүнзгийрч болох ч бүр маш нарийн хуудас дамжаад үйлдэл хийгээд гэх мэт бүх зүйлсийг шалгах нь үндсэн зорилго нь биш юм.
Систем гэдгээр ямар нэгэн веб сайт, эсвэл API үйлчилгээг ерөнхийлөн ойлгож болно.
Системийг monitor хийх үндсэн аргуудын нэг нь тухайн систем дотроосоо хэрэгтэй мэдээллээ log байдлаар бичих, metric хэлбэрээр дамжуулах гэх мэт үйлдлээр өөрийгөө monitor хийх нөхцөлийг бүрдүүлж буй үед Whitebox monitoring гэж ангилна. Жишээ нь хэр их санах ой хэрэглэж байгаа, cache-д юу хадгалагдсан зэргийг гаднаас нь мэдэх боломжгүй юм. Харин үүний яг эсрэгээр системийн гадна талаас monitor хийхийг Blackbox monitoring гэх бөгөөд төрөл бүрийн хүсэлт явуулах, гадна талаас гаргаж авч болох бүх хэрэгтэй мэдээллийг цуглуулахыг хэлнэ. Synthetic monitoring нь энэхүү ангилалд багтана. Blackbox monitoring-н нэгэн давуу тал нь кодонд нэмэлт өөрчлөлт орохгүй гэдгээрээ илүү түгээмэл ашиглагддаг.
Synthetic monitoring хийхэд танд хэрэгтэй мэдээлэл бол сайтын домэйн хаяг, тухайн домэйнрүү хүсэлт явуулж үр дүнгээ цуглуулах чадамжтай програм 2 байхад л болох юм. Миний ашиглах дуртай хамгийн энгийн програмуудын нэг бол Prometheus Blackbox Exporter юм. Blackbox exporter нь ямар сайтуудруу хандах дүрмээ өөрийн тохиргоондоо хадгалах бөгөөд өөртөө cron буюу байнгын давтамжаар ажиллуулах тохиргоо байдаггүй. Харин энэ ажлыг Prometheus програм гүйцэтгэнэ. Жишээ нь Prometheus нь Blackbox exporter-луугаа 30 секунд тутамд хүсэлт илгээх бөгөөд тэрхүү хүсэлтийн хариуд Blackbox exporter нь өөрийн тохируулагдсан сайтуудруу хандаж мэдээлэл цуглуулаад хариу болгон илгээдэг. Тэрхүү мэдээллийг Prometheus өөрийн санах ойдоо хадгалж авна. Эцэст нь тэр мэдээллийг Alert үүсгэх, Graphic Dashboard үүсгэх гэх мэтээр ашиглана. Alert тохируулахад Prometheus-тэй хослон ажилладаг програм бол Alertmanager. Харин Graphic dashboard зурах ажлыг Grafana гүйцэтгэнэ. Энэхүү дурдагдсан програмууд нь бүгд нээлттэй эхтэй програмууд бөгөөд үнэгүй ашиглах боломжтой.
Харин саяхнаас буюу нэг хоёр жилийн өмнөөс энэхүү орон зайд Grafana Cloud гэх үйлчилгээ хүч түрэн орж ирж байгаа бөгөөд дээр дурдагдсан нээлттэй эхтэй програмуудыг нийлүүлэн SaaS байдлаар үйлчилгээ гаргаж эхэлсэн юм. Сонирхуулахад Grafana labs компани нь одоогоор Prometheus програм хөгжүүлэгчдийн 60-70%-ийг эгнээндээ нэгтгээд байна гэсэн байна.
Grafana Cloud-ийг дурдсан шалтгаан нь эднийх маш боломжийн үнэгүй багцтай. Дэлгэрэнгүй мэдээллийг өөрсдийнх нь хуудас дээрээс харна уу. Grafana cloud нь дан ганц Synthetic monitoring үйлчилгээнээс гадна бүх төрлийн системийг monitor хийх маш өргөн сонголттой, үнэ ч боломжийн тул эхний ээлжинд хэрэглээд үзье гэсэн хүмүүс үнэгүй багц дээр нь бүртгүүлээд ашиглахад буруудахгүй.
За эндээс гол сонирхолтой сэдэврүүгээ орцгооё. Саяхан AWS унаж манай систем хагас өдөр шахуу доголдсон тул өөрсдийн програмаа monitor хийхээс гадна AWS-ийг бас давхар monitor хийчмээр санагдтал өдөр өнгөрч билээ. Энэ зуур Монголын сайтууд маань юу болж байдаг бол гэсэн сониучхан бодолдоо хөтлөгдөн хамгийн том, их хүн ордог гэж бодсон хэдэн сайтуудаа monitor хийгээд үзэхээр шийдлээ. Ингэхийн тулд Grafana cloud-н synthetic monitoring үйлчилгээг ашигласан бөгөөд https://uptime.shinebayar.com/d/fU-WBSqWz/synthetic-monitoring-summary
холбоосоор орон шууд ашиглаж үзэх боломжтойгоор тохирууллаа. Одоогоор санаанд буусан 40 гаруй сайтуудыг monitor хийж эхэлсэн бөгөөд үүнд ихэнх банкууд интернэт банктайгаа, зарим биржүүд, мэдээний сайтууд, үүрэн холбооны операторууд, зар, нислэгийн тийзний компаниуд гэх мэт түгээмэл ангиллын сайтууд багтаж байна. Харамсалтай нь и-баримт болон татварын газрын сайтуудруу гаднаас хандах боломжгүй хэвээр байна. Дээрх холбоосоор орвол таныг ийм хуудас хүлээж авах бөгөөд
сонирхолтой байх болов уу хэмээн time range сонгох, өөр dashboard-руу үсрэх боломжтойгоор тохирууллаа. Дээр гарч буй Last 3 hours гэдэг дээр дараад сүүлийн 14 хоног хүртэлх мэдээллийг харах боломжтой. Мөн latency товч дээр дарж хамгийн удаан болон хурдан ажиллагаатай сайтуудыг үзэх боломжтой. 😎
Дараагийн нэг хэрэгтэй dashboard нь дээрх зураг дээр харагдаж буй холбоосуудын аль нэг дээр дарахад дамжиж ороод харагдах энэхүү dashboard юм. (Холбоос дээр дараад үсрэх үед яг дарсан холбоосоо барьж чадахгүй байгаа алдаа байгаа юм байна.) Энд тухайн сайтын талаарх мэдээлэл илүү дэлгэрэнгүй байдлаар харагдана. Жишээлбэл энэхүү зурагт ikon.mn мэдээний сайт ямар хурдтай ажиллаж байгааг харуулж байна.
Хурдыг тооцоолохдоо Европ, Америк, Сингапур гэсэн 3 бүсээс хандаж шалгаж байхаар тохируулсан. Хурдаас гадна сайтын SSL дуусч байгааа эсэх, хэрэв холбогдоход ямар нэг алдаа гарвал алдааг хэвлэх, uptime хэдэн % зэрэг үндсэн хэрэгтэй мэдээллүүдийг багтаан харуулжээ.
Хэрэв танай байгууллага дотоод хэрэгцээндээ ямар нэгэн monitoring нэвтрүүлж чадаагүй байгаа бол дээрх жишээний дагуу 10 минутын дотор monitoring-той болох боломжтой болж байна. Мөн дээрээс нь 14 хоногийн мэдээллийг үнэгүй хадгалчихна гэхээр давгүй санал байгаа биз. Наад зах нь сайтынхаа SSL-ийг хэзээ дуусч байгааг, 24/7 тасралтгүй ажиллаж чадаж байгаа эсэхийг мэдэх, цаашлаад ямар нэгэн доголдол үүсвэл имэйл болон бусад сувгаар цаг алдалгүй мэдээлэл хүлээж авах зэрэг маш хэрэгтэй боломжуудыг олж авах боломжтой.
Одоогоор зөвхөн гадаад серверүүдээс сайтын хурдыг тодорхойлж байгаа бол яваандаа Монголд сервертэй болчих юм бол Монгол дотроо хэр хурдан ажиллаж байгаа талаар update оруулна аа. 😉