8. modulis · 8.3
Jūsu servera uzraudzība
8. modulis: Rezerves kopijas un uzraudzība · Lasīšanas laiks: 10 min.
Mācīšanās mērķis: Pēc šīs nodarbības Jūs varēsiet noteikt, ko savā serverī uzraudzīt (no ārpuses un no iekšpuses), kādi sliekšņi ir saprātīgi un kā panākt, lai paziņojums Jūs patiešām sasniegtu, bet Jūs nenoslīktu paziņojumos.
Pamatjēdzieni: uzraudzība no ārpuses, uzraudzība no iekšpuses, darbspējas laiks (uptime), http pārbaude, porta pārbaude, sertifikāta derīguma beigas, diska vieta, atmiņa, slodze (load), sirdspuksts (heartbeat, dead man's switch), slieksnis, paziņojumu kanāls, trauksmju nogurums, pakalpojumu sniedzēja grafiki
Kāpēc uzraudzīt?
Bez uzraudzības Jūs par problēmām uzzināt no saviem klientiem vai neuzzināt vispār. Vietne, kas nedarbojas kopš sestdienas, sertifikāts, kuram beidzās derīgums, disks, kas piepildījās, rezerves kopēšana, kas jau trīs nedēļas klusi neizdodas: tās visas ir lietas, ko varējāt pamanīt laikus. Uzraudzība nozīmē: programma nepārtraukti vēro un brīdina Jūs, ja kaut kas nav kārtībā.
Laba uzraudzība atbild uz diviem jautājumiem:
- Vai lietotājam tas darbojas? To mēra no ārpuses.
- Vai drīz kaut kas sabojāsies? To mēra no iekšpuses: disks, atmiņa, atjauninājumi, rezerves kopijas.
No ārpuses: ko redz lietotājs
Uzraudzība no ārpuses darbojas uz citas iekārtas, nevis uz Jūsu servera, vēlams pie cita pakalpojumu sniedzēja. Tas ir loģiski: ja Jūsu serveris nedarbojas, tas pats vairs nevar brīdināt.
| Pārbaude | Ko tā dara | Kāpēc |
|---|---|---|
| http(s) | katru minūti ielādē lapu un pārbauda statusa kodu (200) un, ja vajag, kādu vārdu lapā | vietne patiešām darbojas, ne tikai serveris |
| ports | izveido savienojumu, piemēram, ar portu 22 vai 443 | pakalpojums klausās un ir sasniedzams |
| ping | nosūta ICMP paketi | serveris ir dzīvs (bet tas neko nepasaka par Jūsu vietni) |
| sertifikāts | nolasa sertifikātu un tā derīguma beigu datumu | brīdina krietni pirms derīguma beigām |
| DNS | vaicā A ierakstu | nosaukums joprojām norāda uz pareizo serveri |
Sertifikāts ir pelnījis īpašu uzmanību. Let's Encrypt sertifikāti ir derīgi īsu laiku un tiek atjaunoti automātiski (nodarbība 7.3), bet, ja atjaunošana klusi neizdodas, Jūs to pamanāt tikai tad, kad apmeklētāji saņem brīdinājumu. Let's Encrypt kopš 2025. gada jūnija vairs nesūta atgādinājuma e-pastus par sertifikātiem, kuru derīgums beidzas, un pats iesaka izmantot uzraudzību. Sertifikāta pārbaude, kas brīdina, ja derīgums ir mazāks par 14 dienām, tātad nav greznība.
Izplatīta programma, ar ko to darīt pašam, ir Uptime Kuma, ko Jūs nodarbībā 9.4 instalēsiet konteinerā. Vēlams to neizvietot uz tā paša servera, kas tai jāuzrauga, vai arī apvienot to ar otru, ārēju pārbaudi. Ir arī trešo pušu pakalpojumi, kas dara to pašu; izvēlieties sev piemērotu un pievērsiet uzmanību tam, kur tie atrodas, ja paziņojumos var būt Jūsu klientu dati.
No iekšpuses: kas drīz sabojāsies
Dažas problēmas no ārpuses var redzēt tikai tad, kad ir jau par vēlu. Tās mēra pašā serverī:
| Ko | Kā to redzēt | Saprātīgs slieksnis |
|---|---|---|
| Diska vieta | df -h | brīdinājums virs 80%, trauksme virs 90% |
| Inodes (failu skaits) | df -i | tāpat; disks var būt "pilns" ar miljoniem mazu failu |
| Atmiņa | free -h, paziņojumi "Out of memory" žurnālā journalctl -k | katrs OOM paziņojums ir signāls |
| Slodze (load) | uptime, top | ilgstoši lielāka par vCPU skaitu |
| Kļūmīgi pakalpojumi | systemctl --failed (nodarbība 6.1) | katrs kļūmīgs pakalpojums |
| Atjauninājumi un restartēšana | /var/run/reboot-required, apt list --upgradable (nodarbība 4.2) | drošības atjauninājums, kas vecāks par divām dienām |
| Rezerves kopijas | Jūsu rezerves kopēšanas skripta beigas (nodarbība 8.2) | katra neizdevusies vai neizpildīta palaišana |
To var izdarīt ar vienkāršu skriptu un taimeri (nodarbība 6.3), kas, pārsniedzot slieksni, nosūta paziņojumu, vai ar uzraudzības programmu, kurai serverī ir aģents (zināmi atvērtā koda piemēri ir Netdata un Prometheus kopā ar node_exporter). Sāciet ar mazumiņu: disks, kļūmīgi pakalpojumi un rezerves kopijas atklāj lielāko daļu problēmu.
Jūsu pakalpojumu sniedzēja paneļa grafiki (procesors, atmiņa, tīkls, disks par periodu no dienas līdz gadam) ir lielisks papildinājums tendenču novērošanai: ja Jūsu disks katru mēnesi pieaug par dažiem procentiem, Jūs zināt, kad tas būs pilns. WebOké tie atrodas VPS ekrānā; pie citiem pakalpojumu sniedzējiem līdzīgi. Parasti tie nesūta paziņojumus, tāpēc uzraudzību tie neaizstāj.
Sirdspuksts: paziņojums, kad nekas nenotiek
Dažas lietas jāuzrauga tieši pēc signāla neienākšanas. Labākais piemērs ir nakts rezerves kopēšana: ja skripts pat nesāk darboties (taimeris izslēgts, serveris izslēgts, skripts bojāts), tad nav arī kļūdas paziņojuma.
Risinājumu sauc par sirdspukstu (heartbeat) jeb dead man's switch: Jūsu uzraudzība katru dienu gaida signālu. Rezerves kopēšanas skripts beigās, tikai tad, ja viss ir izdevies, nosūta nelielu http pieprasījumu uz fiksētu, slepenu Jūsu uzraudzības URL:
restic backup ... && restic check && curl -fsS -m 10 https://status.example.com/api/push/Xyz123abc?status=up >/dev/nullJa signāls kādu dienu nepienāk, Jūs saņemat paziņojumu. Uptime Kuma šim nolūkam ir monitora tips Push; ir arī pašizvietojamas programmas, piemēram, Healthchecks. Tā ar vienu rindiņu Jūs uzraugāt, vai rezerves kopēšana patiešām notika.
Paziņojumi, kas pienāk, un ne pārāk daudz
Paziņojums, ko neviens nelasa, nav uzraudzība. Parūpējieties par trim lietām:
- Paziņojumu kanāls, ko Jūs patiešām redzat: push ziņojums tālrunī, tērzēšanas kanāls, SMS. E-pasts der, bet tikai tad, ja Jūsu serveris var uzticami sūtīt e-pastu, turklāt e-pastu viegli nepamanīt. Svarīgākajiem paziņojumiem izmantojiet divus kanālus.
- Neatkarīgs no tā, ko uzraugāt. Ja e-pastu par pilnu disku sūta pats serveris, tas nepienāks, kad disks būs pilns. Uzraudzība no ārpuses un sirdspuksts to novērš.
- Maz, bet pamatoti. Ja katru dienu saņemat desmit paziņojumus, ar kuriem neko nedarāt, Jūs sāksiet tos ignorēt, arī to vienu, kuram ir nozīme. To sauc par trauksmju nogurumu. Iestatiet sliekšņus tā, lai paziņojums nozīmētu: Jums kaut kas jādara. Ļaujiet paziņojumam ieslēgties tikai pēc vairākām neveiksmīgām pārbaudēm pēc kārtas (piemēram, trīs reizes), lai viena pazudusi pakete Jūs nepamodinātu.
Pārbaudiet savus paziņojumus: uz brīdi izslēdziet kādu pakalpojumu un skatieties, vai paziņojums pienāk un cik ilgi tas aizņēma.
Ko nevajag darīt
- Uzraudzības lapas, kas atvērtas visiem, ar iekšējiem nosaukumiem un adresēm. Publiska statusa lapa ir pieļaujama, bet rādiet tajā tikai to, ko apmeklētāji drīkst zināt.
- Uzraudzības administratora konts bez stipras paroles un 2FA. Kas tiek Jūsu uzraudzībā, var izslēgt paziņojumus.
- Aģenti ar vairāk tiesībām, nekā nepieciešams. Uzraudzības aģentam parasti nav jābūt root.
Kopsavilkums
- No ārpuses uzraugiet, vai viss darbojas (http, ports, sertifikāts, DNS), no citas iekārtas, un no iekšpuses, vai drīz kaut kas nesabojāsies (disks, atmiņa, pakalpojumi, atjauninājumi, rezerves kopijas).
- Sertifikātiem vajadzīga sava pārbaude: Let's Encrypt kopš 2025. gada jūnija vairs nesūta atgādinājuma e-pastus.
- Sirdspuksts ziņo, ja signāls nepienāk; ideāli rezerves kopijām un ieplānotiem uzdevumiem.
- Izvēlieties paziņojumu kanālu, ko Jūs patiešām redzat un kas nav atkarīgs no paša servera, un iestatiet sliekšņus tā, lai katrs paziņojums prasītu rīcību.
- Pakalpojumu sniedzēja grafiki rāda tendences, bet parasti nesūta paziņojumus.
Tests (quiz)
Uzdevums
Uzdevums O8.3: Jūsu uzraudzības saraksts. Izveidojiet savam serverim uzraudzības sarakstu: kuras pārbaudes no ārpuses (ar kādu intervālu un no kurienes), kuras no iekšpuses (ar sliekšņiem), kuri sirdspuksti un pa kuru kanālu pienāk paziņojumi. Iestatiet vismaz vienu ārēju http vai sertifikāta pārbaudi un vienu sirdspukstu (piemēram, rezerves kopēšanai) un pārbaudiet paziņojumu, uz brīdi izslēdzot kādu pakalpojumu. Pierakstiet, cik ilgi pagāja, līdz paziņojums pienāca.
Uzdevums O8.3: Jūsu uzraudzības saraksts
Šo uzdevumu veicat paši; neviens to nepārbauda. Atzīmējiet, ko esat izdarījuši, un atzīmējiet uzdevumu kā paveiktu.
Pārbaude no ārpuses uz citas iekārtas (vēlams pie cita pakalpojuma sniedzēja), ik pēc 1 līdz 5 minūtēm ar dažiem atkārtojumiem. Sertifikāts 14 dienas, disks 80/90%, systemctl --failed, heartbeat tikai pēc veiksmīgas dublēšanas. Paziņojumi, kas neprasa rīcību: noņemt vai paaugstināt slieksni.
Jūsu atzīmes un piezīmes paliek tikai šajā pārlūkprogrammā; mēs tās nekur nesūtām. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums ir paveikts.
Vairāk lasīt
- Vairs nav piekļuves Jūsu VPS: ko darīt tagad?
- Let's Encrypt, Expiration Notification Service Has Ended: https://letsencrypt.org/2025/06/26/expiration-notification-service-has-ended
- Uptime Kuma (GitHub): https://github.com/louislam/uptime-kuma
