Ringkesan sistem pemantauan hibrida Okerr

Rong taun kepungkur aku wis nggawe postingan Failover prasaja kanggo situs web bab oker. Saiki ana sawetara pangembangan proyek, lan aku uga nerbitake okerr kode sumber sisih server ing mbukak lisensi, pramila aku mutusake kanggo nulis review singkat iki ing Habr.

Ringkesan sistem pemantauan hibrida Okerr
[ ukuran penuh ]

Kanggo sapa bisa kapentingan

Iki bisa dadi kapentingan kanggo sampeyan yen sampeyan kerja ing tim cilik utawa piyambak. Sampeyan ora duwe pemantauan lan sampeyan ora yakin yen sampeyan pancene butuh. Sampeyan salah siji nyoba sawetara populer ngawasi serius "kanggo lanang amba", nanging piye wae "ora njupuk mati" kanggo sampeyan, utawa dianggo ing konfigurasi meh gawan lan ora ngganti urip akeh. Lan uga - yen temtunipun ora rencana kanggo nyedhiakke kabeh karyawan (utawa malah departemen) kanggo ngawasi dashboard paling sethithik saperangan jam dina utawa ngatur.

Apa okerr mboten umum

Sabanjure aku bakal nuduhake fitur menarik saka okerra sing mbedakake saka sawetara sistem ngawasi liyane.

Okerr minangka pemantauan hibrida

Sajrone ngawasi internal, "agen" mlaku ing mesin sing dipantau, sing ngirim data menyang server ngawasi (contone, ruang disk gratis). Nalika njaba, server nindakake mriksa liwat jaringan (contone, ping utawa kasedhiyan situs web). Saben pendekatan duwe watesan. Okerr nggunakake loro opsi. Priksa nang server dileksanakake dening banget cahya (30Kb) agen utawa skrip lan aplikasi dhewe, lan mriksa jaringan dileksanakake liwat sensor okerr ing negara beda.

okerr ora mung lunak, nanging uga layanan

Bagian server saka pemantauan apa wae gedhe lan rumit, angel nginstal lan ngatur, lan mbutuhake sumber daya. Kanthi okerr sampeyan bisa nginstal server ngawasi dhewe (iku free lan opensource), utawa sampeyan mung bisa nggunakake mung bagean klien lan nggunakake layanan saka server kita. Uga gratis.

Yen ngawasi ngidini sampeyan menehi ganti rugi lan nutupi kekurangan linuwih ing server lan aplikasi, banjur ana pitakonan filosofis - sapa sing njaga? Kepiye ngawasi bakal menehi pitutur marang kita babagan masalah yen dhewe "mati" amarga sawetara alasan, kanthi kapisah utawa bebarengan karo sumber daya liyane (contone, saluran menyang pusat data ambruk)? Nalika nggunakake layanan external okerr - masalah iki ditanggulangi - sampeyan bakal nampa tandha malah yen kabeh pusat data karo server sampeyan tanpa daya utawa diserang dening nir.

Mesthi, ana risiko server okerr dhewe ora kasedhiya, iki bener (kaya sing sampeyan ngerti, 90% linuwih tansah dipikolehi kanthi gampang lan "gratis", 99% kanthi minimal gaweyan, lan saben sangang sabanjure eksponensial luwih angel). Nanging, sepisanan, kemungkinan kedadeyan kasebut luwih murah, lan nomer loro, masalah kasebut bisa uga ora dingerteni yen pas karo masalah ing server kita. Yen kita duwe 99.9% linuwih, lan sampeyan duwe 99.9% (nomer ora dhuwur banget), banjur kasempatan Gagal ora dideteksi 0.1% saka 0.1% = 0.0001%. Nambah telung sangang kanggo linuwih meh tanpa gaweyan lan tanpa biaya apik banget!

Kauntungan liyane kanggo ngawasi minangka layanan yaiku panyedhiya hosting utawa studio web bisa nginstal server okerr lan nyedhiyakake akses menyang klien minangka layanan tambahan sing dibayar utawa gratis. Saingan sampeyan mung duwe hosting lan situs web, nanging sampeyan duwe hosting sing dipercaya kanthi pemantauan.

Okerr babagan indikator

Indikator kasebut yaiku "bohlam lampu". Wis rong negara utama - ijo (OK) utawa abang (ERR). Proyek kasebut ngemot akeh indikator sing dikelompokake (contone, dening server). Ing kaca utama proyek, sampeyan langsung weruh manawa kabeh ijo (lan sampeyan bisa nutup), utawa ana sing surem abang lan kudu didandani. Nalika transisi ing antarane negara kasebut, tandha dikirim. Sapisan dina nalika sampeyan nyetel, ringkesan proyek dikirim.

Ringkesan sistem pemantauan hibrida Okerr

Saben indikator okerr wis dibangun ing kahanan kang ngganti negara (ing Zabbix iki disebut pemicu). Contone, beban rata-rata kudu ora luwih saka 2 (mesthi bisa dikonfigurasi). Lan kanggo saben mriksa internal (muat rata-rata, disk free, ...) ana watchdog. Yen sakperangan alesan kita ora nampa konfirmasi sukses ing wektu sing wis ditemtokake, kesalahan dicathet lan tandha dikirim.

Pola kerja sing biasa yaiku mriksa email ing wayah esuk, lan ndeleng ringkesan ing antarane surat liyane (kita jadwalake nalika wiwitan kerja). Yen kabeh iku ok ing, kita nindakake iku penting liyane (nanging aman, kita bisa cepet katon ing dashboard okerra lan priksa manawa kabeh iku ijo ing wayahe). Yen tandha teka, kita nanggepi.

Mesthi wae, sampeyan mung bisa nyimpen indikator "informasi" (kanggo ndeleng gambar jaringan saka pemantauan), nanging kabeh wis rampung kanthi gampang, gampang lan cepet nggawe indikator khusus kanggo ngawasi otomatis lan ngirim tandha.

Tujuan sing sampeyan nyetel okerr ing tandha, supaya sampeyan bisa nggawe indikator ing menit, bisa "turu" kanggo setahun, mung nampa nganyari, lan nalika taun mengko soko rusak, murup lan dikirim. waspada. Nalika sampeyan nate nggawe indikator mbayar, sampeyan langsung sinau babagan masalah kasebut, sadurunge wong liya. Bisa uga dheweke ndandani sadurunge ana sing weruh. Soko sing diunggahake cepet ora dianggep tiba!

Keamanan

Iku bakal dadi isin yen sampeyan nyetel ngawasi kanggo nambah linuwih, nanging minangka asil, sampeyan diserang liwat jaringan liwat, lan ana cukup akèh kerentanan jaringan ing piranti ngawasi beda (Zabbix, Nagios).

Agen (okerrmod saka paket okerrupdate) mlaku ing sistem ora server jaringan, nanging klien. Mulane, ora ana port tambahan sing mbukak ing server sing dipantau, klien gampang nggarap firewall utawa NAT lan angel banget (aku bakal ngomong "ora mungkin") kanggo hack jaringan, amarga ing prinsip ora ngrungokake jaringan. soket.

Jangkoan pemantauan lengkap

Saiki aturan kita sinau babagan kabeh masalah teknis saka okerr. Yen dumadakan aturan wis nerak (okerr ora ngelekake bab kedadeyan caket (yen iki bisa) utawa sing wis kedaden) - kita nambah mriksa kanggo okerr.

Priksa njaba

Set sing cukup khas:

  • ping
  • status http
  • mriksa validitas lan kesegaran sertifikat SSL (bakal ngelingake yen bakal kadaluwarsa)
  • mbukak port TCP lan spanduk ing
  • http grep (kaca [ora kudu] ngemot teks tartamtu)
  • sha1 hash kanggo nyekel owah-owahan kaca.
  • DNS (rekaman DNS kudu duwe nilai tartamtu)
  • WHOIS (bakal ngelingake yen domain bakal dadi ala)
  • Antispam DNSBL (pemeriksaan host marang 50+ dhaptar ireng antispam bebarengan)

Priksa internal

Uga, pesawat cukup standar (nanging gampang expandable).

  • df (ruang disk kosong)
  • mbukak rata-rata
  • opentcp (mbukak soket ngrungokake TCP - bakal menehi kabar yen ana sing diwiwiti utawa nabrak)
  • uptime - mung uptime ing server. Bakal menehi kabar yen wis diganti (yaiku server wis kakehan)
  • klien_ip
  • dirsize - digunakake kanggo nglacak nalika rootfs mesin virtual ngluwihi ukuran sing diidini, tanpa ngenalake watesan sing ketat, lan ukuran direktori ngarep pangguna
  • kosong lan ora kosong - monitor file sing kudu kosong (utawa ora kosong). Contone, log kesalahan saka server okerr dhewe kudu kosong, lan yen ana malah baris ing, Aku bakal nampa kabar lan mriksa. Nanging mail.log ing server mail ngirim ora kosong (N menit sawise rotasi). Lan kadhangkala kosong kanggo kita sawise nganyari sistem, nalika logrotate ora bisa miwiti maneh rsyslog kanthi bener.
  • linecount - nomer baris ing file (kaya wc -l). Kita nggunakake minangka panggantos sing luwih alus kanggo kosong, nalika log kesalahan isih bisa tuwuh, nanging mung alon-alon (contone, Googlebot tekan sawetara kaca sing ditutup). Ana watesan 2 baris ing 20 menit. Yen luwih dhuwur, bakal ana tandha

Priksa internal sing menarik

Yen sampeyan wis maca "diagonal" nganti titik iki, saiki bakal luwih menarik kanggo maca kanthi teliti.

serep

Ngawasi serep ing direktori. File serep kita duwe jeneng kaya "ServerName-20200530.tar.gz". Kanggo saben server ing okerr, indikator ServerName-DATE.tar.gz digawe (tanggal nyata diganti baris "DATE"). Anane serep sing seger lan ukurane uga dipantau (contone, ora bisa kurang saka 90% saka serep sadurunge).

Apa sing kudu ditindakake supaya serep anyar bisa dilacak sawise kita miwiti nggawe lan nyelehake ing direktori iki? ora ana apa-apa! Iki minangka pendekatan sing trep yen sampeyan kudu nindakake "apa-apa" amarga:

  • Nindakake "apa-apa" cukup cepet, ngirit wektu
  • Iku angel kanggo lali kanggo nindakake "ora apa-apa"
  • Iku angel kanggo nindakake "apa-apa" salah, karo kesalahan. Ora ana cara sing paling dipercaya

Yen dumadakan file serep seger mandheg katon, bakal ana tandha. Yen, contone, sampeyan wis mateni salah siji saka server, lan kudu ora ana maneh serep, sampeyan kudu mbusak indikator (liwat antarmuka web utawa saka cangkang liwat API).

maxfilesz

Nglacak ukuran file paling gedhe (biasane: /var/log/*). Iki ngidini sampeyan nyekel masalah sing ora bisa ditebak, contone, sandhi brute force utawa ngirim spam liwat server.

runstatus/runline

Iki rong modul proxy penting kanggo mbukak program liyane ing server. Runstatus nglaporake kode metu program menyang indikator. Contone, okerr ora (mbutuhake) modul kanggo mriksa sing layanan systemd mlaku. Iki rampung liwat runstatus (ndeleng ngisor). Runline - laporan menyang server baris sing program mrodhuksi. Tuladhane, temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" ing konfigurasi Runline ing server kita nggawe jeneng server indikator: suhu kanthi suhu prosesor.

sql

Nglakokake query numerik menyang MySQL lan laporan asil menyang indikator. Ing kasus sing prasaja, sampeyan bisa nindakake, contone, "PILIH 1" - iki bakal mriksa manawa DBMS kanthi sakabehe bisa digunakake.

Nanging aplikasi sing luwih menarik yaiku, umpamane, nglacak jumlah pesenan ing toko online. Yen sampeyan ngerti yen sampeyan duwe 100 utawa luwih pesenan saben jam, sampeyan bisa nyetel watesan minimal kanggo 100 utawa 80. Banjur yen dodolan tiba-tiba mudhun, sampeyan bakal nampa tandha lan sampeyan bisa nemtokake.

Elinga yen ora ketompo apa sebab sing ora bisa ditebak iki kedadeyan:

  • Server mung ora kasedhiya (de-energized utawa tanpa jaringan), lan tandha teka saka kasunyatan sing indikator "bosok".
  • Server kakehan barang, kerjane alon-alon utawa paket ilang, ora trep kanggo pangguna lan dheweke lunga tanpa tuku.
  • Server kalebu ing dhaptar spam lan mail saka iku ora ditampa, pangguna ora bisa ndhaftar
  • Anggaran kampanye iklan wis entek, spanduk ora muter.

Ana uga sawetara alasan, lan kabeh mau ora bisa foreseen ing advance, lan iku teknis angel kanggo trek. Nanging sampeyan bisa kanthi gampang ngawasi parameter pungkasan (pesenan) lan nemtokake manawa kahanan kasebut curiga lan kudu ditangani.

Indikator logis

Ngidini panggunaan ekspresi Boolean (sintaksis Python) liwat modul ngevalidasi(artikel ing Habré). Data saka proyek lan indikator kasedhiya kanggo ekspresi. Contone, ing bab bab SQL mriksa ndhuwur, sampeyan bisa uga wis ngeweruhi titik banget - sak dina kita bisa duwe 100 sales saben jam, nanging ing wayah wengi - 20, lan iki umum, ora masalah. Aku kudu piye? Indikator bakal terus gupuh ing wayah wengi.

Sampeyan bisa nggawe rong indikator, awan lan wengi. Nggawe loro "bisu" (ora bakal ngirim tandha). Lan nggawe indikator logis sing mbutuhake indikator dina dadi OK sadurunge 20:00, lan sawise 20:00 iku cukup kanggo indikator wengi OK.

Conto liyane nggunakake indikator logis yaiku eskalasi. Contone, manajer proyek mbatalake tandha (ora perlu nindakake iki, admin kudu nanggapi masalah normal), nanging langganan indikator logis sing dadi abang yen ana indikator ing proyek kasebut ora didandani sajrone wektu sing diwenehake.

Kajaba iku, sampeyan bisa nyetel wektu sing diidini kanggo kerja, contone, saka 3 nganti 5 am. Kita ora peduli yen server lan situs nabrak sajrone wektu iki. Nanging ing 5:00 padha kudu bisa. Yen ora bisa digunakake ing wektu liyane - waspada. Indikator logis uga ngijini sampeyan kanggo njupuk menyang akun redundansi server. Yen sampeyan duwe 5 server web, banjur admin bisa mateni 1-2 server sawayah-wayah. Nanging yen ana kurang saka 3 saka 5 server ing perang, bakal ana tandha.

Conto ing ndhuwur ora fungsi oker, ora sawetara fitur sing kudu diaktifake lan diatur. Okerra ora duwe kabeh fungsi kasebut, nanging ana modul logis sing ngidini sampeyan ngetrapake fungsi kasebut (Kira-kira kaya ing basa pamrograman - yen kita duwe operator aritmetika, mula kita ora butuh fungsi khusus kanggo ngitung 20% ​​PPN. saka basa, sampeyan bisa nindakake dhewe supaya cocog karo kabutuhan).

Logic Indikator mbokmenawa salah siji saka sawetara topik relatif Komplek ing okerr, nanging kabar apik iku sampeyan ora kudu Master nganti sampeyan kudu. Nanging ing wektu sing padha, padha banget nggedhekake kabisan, nalika tetep sistem dhewe cukup prasaja.

Nambahake mriksa dhewe

Aku pancene kaya kanggo ngirim idea sing okerr ora pesawat saka ewu kir siap kanggo kabeh kesempatan, nanging ing nalisir - pisanan kabeh - engine prasaja karo kemampuan prasaja kanggo nggawe kir dhewe. Nggawe mriksa dhewe ing okerr ora tugas kanggo peretas, sistem co-pangembang, utawa paling majeng pangguna okerr, nanging tugas layak kanggo admin sing nginstal Linux pisanan sasi kepungkur.

Priksa upah minimum ditindakake liwat modul runstatus:

Baris iki ing config runstatus bakal menehi kabar yen / bin / true dumadakan ora miwiti utawa ngasilake soko liyane saka 0.

true_OK=/bin/true

Mung siji baris - lan kene kita wis sethitik ditambahi fungsi okerr.

Malah cek kasebut wis duwe nilai: yen tiba-tiba server sampeyan nabrak, indikator sing cocog ing server okerr ora bakal dianyari kanthi pas wektune, lan sawise wektu wis liwati, tandha bakal katon.

Priksa iki bakal menehi kabar yen server apache2 wis nabrak (uga, sampeyan ora ngerti ...):

apache_OK="systemctl is-active --quiet apache2"

Dadi, yen sampeyan nggunakake basa pamrograman apa wae, lan paling ora bisa nulis skrip cangkang, sampeyan wis bisa nambah pamriksa dhewe.

Luwih angel - sampeyan bisa nulis (ing basa apa) modul dhewe kanggo okerrmod. Ing kasus sing paling gampang katon kaya iki:

#!/usr/bin/python3

print("STATUS: OK")

Apa ora angel banget? Modul kasebut kudu mriksa dhewe lan ngasilake asil menyang STDOUT. Modul sing luwih rumit menehi, contone, iki:

$ okerrmod --dump df
NAME: pi:df-/
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 49.52%, 13.9G/28.2G used, 13.0G free
STATUS: 49.52

NAME: pi:df-/boot
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 84.32%, 53.1M/62.9M used, 9.9M free
STATUS: 84.32

Nganyari sawetara pratondho bebarengan (dipisahake karo baris kosong), nggawe yen perlu, nuduhake rincian verifikasi lan tag sing gampang kanggo nemokake indikator sing dibutuhake ing dashboard.

Telegram

Ana bot Telegram @OkerrBot. Sampeyan ora perlu clutter telpon karo aplikasi kapisah (Aku ora seneng sing kanggo Pyaterochka sampeyan kudu siji aplikasi karo peta, kanggo Lenta liyane, kanggo MTS katelu, lan ing kanggo kabeh wong, everyone, everyone). Siji telegram cukup. Liwat telegram sampeyan bisa langsung nampa tandha, mriksa status proyek lan menehi prentah kanggo mriksa maneh kabeh indikator masalah. We ninggalake téater / pesawat, ora nyimpen driji ing pulsa kanggo rong jam, nguripake telpon, menet tombol siji ing chatbot, lan priksa manawa kabeh iku nggoleki.

Kaca Status

Saiki, kaca status meh kudu diduweni kanggo bisnis apa wae sing duwe IT, sikap tanggung jawab marang linuwih lan ngurmati klien / pangguna.

Bayangake kahanan - pangguna pengin nindakake, ndeleng informasi utawa pesen, lan ana sing ora bisa. Dheweke ora ngerti apa sing kedadeyan, ing sisih endi masalah kasebut lan kapan bakal dirampungake. Mungkin perusahaan sampeyan mung duwe situs web sing ora fungsional? Utawa apa break nem sasi kepungkur lan bakal didandani ing rong taun? Nanging sampeyan kudu tuku kulkas saiki, wis ana ing grobag ... Lan iku prakara temen beda nalika wong weruh ana sing salah karo sampeyan (paling ora iku cetha yen masalah ora ana ing sisih dheweke), masalah wis ditemokaké, sing wis digunakake ing, lan Mungkin malah wrote mudhun wektu kira-kira kanggo koreksi. Pangguna bisa langganan lan nampa kabar email nalika masalah didandani lan bisa nindakake apa sing dikarepake (tuku kulkas).

Ringkesan sistem pemantauan hibrida Okerr

Masalah lan downtime kedadeyan kanggo kabeh wong. Nanging pangguna lan mitra luwih percaya marang wong sing luwih transparan lan tanggung jawab babagan pendekatan kasebut.

kene review 10 proyek liyane sing ngijini sampeyan kanggo nggawe kaca status. Ing ngisor iki conto kaya apa kaca proyek kasebut Python и Dropbox. kaca status okerr.

Failover

Supaya ora nggawe artikel iki luwih suwe, aku bakal ngrujuk maneh ing artikel sadurunge - Failover prasaja kanggo situs web . Yen sampeyan bisa nggawe server duplikat, banjur nggunakake failover, sampeyan ora bakal duwe downtime dawa - sanalika masalah dideteksi, pangguna bakal kanthi otomatis dialihake menyang server serep sing digunakake. Lan misale jek kula iki menarik banget, fitur padhang sing arang kasedhiya ing ngendi wae.

Syarat sistem sing kurang

Kanggo server okerr, kita nggunakake mesin karo RAM saka 2Gb. Kanggo sensor jaringan, malah 512Mb cukup. Bagian klien umume meh nol. (Kantong plastik okerrupdate abot 26 Kb, nanging mbutuhake Python3 lan perpustakaan standar). Klien nganggo skrip cron, saengga ora duwe konsumsi memori sing terus-terusan. Antarane mesin sing diawasi, kita duwe sensor (VPS super murah kanthi RAM 512Mb) lan Raspberry Pi. Bisa uga tanpa bagean klien ngirim nganyari liwat curl! (ndeleng ngisor)

Njupuk iki menyang akun - okerr, mbokmenawa paling gratis sistem ngawasi saka sing kasedhiya, amarga malah kanggo nggunakake liyane free sistem mbukak-sumber kaya Zabbix utawa Nagios, sampeyan kudu nyedhiakke sumber daya (server) kanggo, lan iki wis dhuwit. Kajaba iku, sawetara pangopènan server isih dibutuhake. Kanthi okerr, bagean iki bisa dibusak. Utawa sampeyan ora kudu nyopot lan nggunakake server dhewe, gumantung apa sing paling disenengi.

API lan integrasi menyang piranti lunak proprietary

Arsitektur prasaja lan mbukak. okerr wis cukup prasaja API, sing gampang digarap. Perlu nggawe 1000 indikator? Siji skrip cangkang saka 3-4 baris bakal nindakake iki. Apa sampeyan kudu ngatur maneh 1000 indikator? Iku uga gampang banget. Contone, kita pengin mriksa maneh kabeh sertifikat HTTPS saka sensor Rusia:

#!/bin/sh

for indicator in `okerrclient --api-filter sslcert`
do
    echo set location for $indicator
    okerrclient --api-set location=ru retest=1 --name $indicator
done

Sampeyan bisa nganyari indikator nggunakake modul klien kita, sanajan tanpa, mung liwat curl.

# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK

# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/

Sampeyan bisa nganyari indikator langsung saka program sampeyan. Contone, ngirim sinyal deg-degan supaya okerr ngerti sing mlaku lan mundhakaken weker yen tabrakan utawa freezes. Miturut cara, komponen okerr apa mung - okerr ngawasi dhewe, lan masalah ing meh wae modul bakal dideteksi lan generate tandha bab masalah. (Lan ing kasus iki "meh" - lagi dicenthang saka server liyane)

Iki kode (disederhanakake) ing bot telegram kita:

from okerrupdate import OkerrProject, OkerrExc

op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
        os.getpid(), dhms(uptime), commands_cnt))

Ana perpustakaan kanggo nganyari indikator saka program Python okerrupdate, kanggo basa liyane ora ana perpustakaan, nanging sampeyan bisa nelpon script okerrupdate utawa nggawe panjalukan HTTP kanggo server okerr.

Carane okerr mbantu kita

Okerr ngganti urip kita. Pancen. Mbok sistem ngawasi liyane bisa nindakake padha, nanging nggarap okerr gampang lan prasaja kanggo kita lan wis kabeh fungsi sing kita needed (kita nambah apa ora duwe). Miturut cara, yen ana sawetara fitur ilang, takon lan aku bakal nambah (Aku ora janji, nanging aku pengin okerr sistem ngawasi paling apik kanggo proyek cilik-menengah). Utawa luwih apik, nambah dhewe - iku gampang.

Kita bisa urip kanthi prinsip "sinau babagan kabeh masalah saka kerra." Yen dumadakan ana masalah sing kita ora sinau saka okerr, kita nambah mriksa kanggo okerr. (ing kasus iki, kanthi "kita" tegese kita minangka pangguna sistem, dudu pangembang). Wiwitane iki umum, nanging saiki wis dadi arang banget.

Ngawasi

Liwat okerr kita ngawasi ukuran log ing kabeh server. Mesthi wae, ora bisa maca kanthi maca saben baris log kanthi mripat, nanging mung ngawasi tingkat wutah wis menehi akeh. Liwat iki, kita nemokake email spam lan telusuran tembung sandhi brute force, lan nalika sawetara aplikasi "golek", ana sing ora bisa digunakake lan bola-bali mbaleni (saben nambahake sawetara baris menyang log. ).

sertifikat SSL. Meh sanalika sawise diluncurake LetsEncrypt pelanggan kita wiwit nyediakake sertifikat SSL gratis kanggo para klien (udakara sewu). Lan ternyata mung neraka kanggo administrasi! Kasunyatane yaiku situs kasebut "urip", klien kanthi periodik njaluk supaya nindakake apa wae, programer nindakake. Dheweke bisa kanthi bebas nransfer situs kasebut menyang DocumentRoot liyane, umpamane. Utawa tambahake Rewrite tanpa syarat menyang konfigurasi virtualhost. Alami, sawise iki, nganyari maneh sertifikat otomatis rusak. Saiki kita duwe kabeh SSL sarwa dumadi ditambahake kanggo okerr otomatis liwat liyane saka keperluan migunani saka paket a2conf. Ayo diluncurake a2okerr.py - lan yen sawetara situs anyar katon ing server, bakal kanthi otomatis katon ing okerr. Yen dumadakan sakperangan alesan certificate ora gawe anyar, telung minggu sadurunge certificate kadaluwarsa, kita ngerti, lan kita bakal ngerti apa iku ora dianyari, asu kuwi. a2certbot.py saka paket padha - iku mbantu akèh karo iki (langsung mriksa masalah paling kamungkinan - lan nyerat apa wis dicenthang uga, lan ngendi ana paling kamungkinan masalah).

Kita ngawasi tanggal kadaluwarsa kabeh domain kita. Lan kabeh server mail kita sing ngirim mail uga dicenthang marang 50+ blacklists beda. (Lan kadhangkala padha tiba ing wong-wong mau). Ngomong-ngomong, apa sampeyan ngerti yen server email Google uga didaftar ireng? Mung kanggo self-testing, kita ditambahaké mail-wr1-f54.google.com kanggo server teliti, lan iku isih ing SORBS blacklist! (Iki babagan nilai "anti-spammers")

Serep - Aku wis wrote ndhuwur carane gampang kanggo ngawasi karo okerr. Nanging kita ngawasi loro serep paling anyar ing server kita lan (nggunakake sarana kapisah sing nggunakake okerr) serep sing kita upload kanggo Amazon Glacier. Lan, ya, masalah kedadeyan saka wektu kanggo wektu. Ora gumun yen padha nonton.

Kita nggunakake indikator eskalasi. Iku nuduhake yen sawetara masalah wis ora didandani kanggo dangu. Lan aku dhewe, nalika ngrampungake sawetara masalah, kadhangkala aku bisa lali babagan. Eskalasi minangka pangeling sing apik, sanajan sampeyan ngawasi dhewe.

Sakabèhé, aku yakin manawa kualitas karya kita wis tambah akeh. Meh ora ana downtime (utawa klien ora duwe wektu kanggo sok dong mirsani. Cukup shh!), Nalika jumlah karya wis dadi luwih cilik lan kahanan kerja wis dadi luwih tenang. Kita wis dipindhah saka karya darurat karo patching bolongan karo tape kanggo karya kalem lan diukur, nalika akeh masalah sing diprediksi ing advance lan ana wektu kanggo nyegah. Malah masalah sing wis kedaden uga dadi luwih gampang kanggo ndandani: sepisanan, kita mangerteni bab mau sadurunge klien gupuh, lan sareh, asring kedaden sing masalah ana hubungane karo karya anyar (nalika aku nindakake siji bab, aku nyuwil liyane) - dadi panas Iku luwih gampang kanggo ngambah kanggo menehi hasil karo.

Nanging ana kasus liyane ...

Apa sampeyan ngerti yen ing Debian 9 sing populer (Regangan) paket populer kaya phpmyadmin isih ana (suwene pirang-pirang wulan!) ing status sing rawan? (CVE-2019-6798). Nalika kerentanan kasebut muncul, kita kanthi cepet nutupi kanthi cara sing beda-beda. Nanging aku nyetel ngawasi kaca keamanan-tracker ing okerr kanggo ngerti yen solusi "ayu" bakal metu (liwat jumlah SHA1 isi). Indikator twitched kula kaping pirang-pirang, kaca diganti, nanging sampeyan bisa ndeleng, isih (wiwit Januari 2019!) Ora nuduhake yen masalah wis ditanggulangi. Mungkin, kanthi cara, ana sing ngerti apa masalahe yen paket penting kasebut isih rentan luwih saka setahun?

Wektu liyane ing kahanan sing padha: sawise kerentanan ing SSH, perlu nganyari kabeh server. Lan nalika sampeyan nyetel tugas, sampeyan kudu ngontrol eksekusi. (Bawahan cenderung salah paham, lali, bingung, lan salah). Mulane, pisanan kita ditambahaké mriksa versi SSH kanggo okerr ing kabeh server, lan liwat okerr kita mesthekake yen nganyari padha mbalek metu ing kabeh server. (Trep! Aku milih jinis iki saka indikator, lan sampeyan bisa langsung ndeleng kang server wis versi). Nalika kita yakin yen tugas wis rampung ing kabeh server, kita mbusak indikator kasebut.

Kaping pirang-pirang ana kahanan sing ana masalah tartamtu, banjur ilang dhewe. (mbokmenawa akrab kanggo kabeh wong?). Nalika sampeyan ngelingi, nalika sampeyan mriksa-lan ora ana sing kudu dipriksa-kabeh wis bisa digunakake kanthi apik. Nanging banjur rusak maneh. Iki kedadeyan, contone, karo produk sing diunggah menyang Amazon Marketplace (MWS). Ing sawetara titik, persediaan sing dimuat ora bener (jumlah barang sing salah lan rega sing salah). We figured metu. Nanging kanggo ngerteni, penting kanggo ngerteni masalah kasebut langsung. Sayange, MWS, kaya kabeh layanan Amazon, rada alon, mula mesthi ana keterlambatan, nanging tetep, kita bisa paling ora ngerti hubungane antarane masalah lan skrip sing nyebabake (kita mriksa, macet. menyang okerr, lan mriksa langsung nampa tandha).

Kasus sing menarik bubar ditambahake menyang koleksi dening hoster Eropa sing gedhe lan larang, sing digunakake pelanggan. Dumadakan, ALL server kita ilang saka radar! Pisanan, pelanggan dhewe (luwih cepet tinimbang okerra!) Ngerti yen situs sing digarap dheweke ora mbukak lan nggawe tiket babagan iki. Nanging ora mung siji situs sing mudhun, nanging kabeh! (Natasha, kita ngeculake kabeh!). Ing kene Okerr wiwit ngirim bungkus sikil dawa karo kabeh pratondho sing murup kanggo dheweke. Gupuh, gupuh, kita mlayu ing bunderan (apa maneh sing bisa ditindakake?). Banjur kabeh wungu. Pranyata ana pangopènan rutin ing pusat data (saben pirang-pirang taun) lan, mesthi, kita kudu dielingake. Nanging sawetara masalah kedadeyan lan dheweke ora ngelingake kita. Inggih, serangan jantung luwih akeh, kurang serangan jantung. Nanging sawise kabeh dibalekake, sampeyan kudu mriksa maneh kabeh! Aku ora bisa mbayangno carane aku bakal nindakake karo tangan. Okerr dites kabeh ing sawetara menit. Ternyata umume server mung sementara ora kasedhiya, nanging bisa digunakake. Sawetara padha overloaded, nanging uga ngadeg munggah minangka ngirim. Kabeh losses, kita ilang loro serep, kang miturut makutha kudu wis digawe lan dimuat nalika banana lengkap iki arep ing. Aku malah ora keganggu nggawe, mung sedina mengko tandha teka sing kabeh OK, serep wis katon. Aku emg kaya conto iki amarga okerr diaktifake metu banget migunani ing kahanan sing kita wis ora malah panginten ing advance, nanging iku tujuan ngawasi - kanggo nolak ranyono.

Kanggo sensor Okerr, kita nggunakake hosting paling murah (ing endi kualitas lan linuwih ora penting, padha asuransi saben liyane). Dadi, kita bubar nemokake hosting sing apik banget lan super murah, benchmarks apik tenan. Nanging ... kadhangkala ternyata sambungan metu saka mesin virtual digawe saka IP liyane (tanggane). Kaelokan. Client_ip modul karo https://diagnostic.opendns.com/myip entuk IP sing salah. Lan saka log server indikator kasebut jelas manawa nganyari uga teka saka IP tetanggan iki. Ayo dadi menehi hasil karo dhukungan saiki. Iku apik yen kita ngeweruhi iki ing wektu tentrem. Nanging, umpamane, asring kedadeyan yen akses didaftar miturut dhaptar putih IP - lan yen server kadhangkala kedhip kaya iki kanggo wektu sing cendhak - sampeyan bisa nyoba nyekel masalah iki kanggo wektu sing suwe.

Ya, siji liyane - amarga kita ngomong babagan hosting VPS - kita mesthi nggunakake sing murah (hetzner, ovh, scaleway). Aku seneng banget babagan benchmark lan stabilitas. Kita uga nggunakake Amazon EC2 sing luwih larang kanggo proyek liyane. Dadi, thanks kanggo okerr, kita duwe pendapat informed dhewe. Loro-lorone tiba. Lan aku ora bakal ujar manawa sajrone pengamatan sing dawa, hosting murah kaya hetzner katon kurang stabil tinimbang EC2. Mulane, yen sampeyan ora diikat karo fitur Amazon liyane, kenapa mbayar luwih? 🙂

Apa sabanjuré?

Yen ing tataran iki aku durung wedi sampeyan adoh saka Okerr, banjur nyoba! Sampeyan bisa langsung menyang link iki akun demo okerr (Klik saiki!) Nanging elinga yen mung ana siji akun demo kanggo kabeh wong, dadi yen sampeyan nindakake apa wae, wong liya ing akun sing padha bisa uga ngganggu sampeyan ing wektu sing padha. Utawa (luwih apik) ndhaftar liwat link menyang offsite okerr - kabeh iku prasaja, tanpa SMS. Yen sampeyan ora seneng nggunakake email sing asli, sampeyan bisa nggunakake email sing bisa digunakake, kayata mailinator (aku nyaranake getnada.com). Akun kasebut bisa uga dibusak saka wektu, nanging bakal apik kanggo dites.

Sawise registrasi, sampeyan bakal dijaluk latihan (nglakoni sawetara tugas latihan sing ora angel banget). Watesan awal cilik banget, nanging kanggo latihan utawa siji server cukup. Sawise ngrampungake latihan, watesan (umpamane, jumlah indikator maksimal) bakal ditambah.

Saka dokumentasi - pisanan kabeh WIKI ing sisih server lan ing klien (okerrupdate wiki). Nanging yen ana sing ora jelas, nulis kanggo ndhukung (ing) okerr.com utawa ninggalake tiket - kita bakal nyoba ngatasi kabeh kanthi cepet.

Yen sampeyan nggunakake kanthi serius lan watesan tambah iki ora cukup, nulis kanggo ndhukung lan kita bakal nambah (gratis).

Apa sampeyan pengin nginstal server okerr ing server sampeyan? kene repositori okerr-dev. Disaranake nginstal ing mesin virtual sing resik, banjur sampeyan bisa nindakake kanthi skrip instalasi. Ing mesin virtual sampeyan - ora ana watesan :-). Inggih, maneh, yen ana kedadeyan, kita bakal tansah nyoba nulungi.

Kita pengin proyek iki njupuk mati, supaya donya dadi luwih dipercaya thanks kanggo kita. Thanks kanggo piranti lunak lan layanan gratis, jagad iki dadi luwih ramah lan berkembang kanthi dinamis. Sumber kasebut bisa disimpen ing github gratis, lan kanggo mail sampeyan bisa nggunakake gmail gratis. Kita nggunakake gratis produk anyar kanggo dhukungan. Kanggo samubarang iki, sampeyan ora perlu mbayar kanggo server, sampeyan ora perlu download lan ngatur, lan sampeyan ora perlu kanggo ngatasi macem-macem masalah operasional. Saben proyek anyar, saben tim langsung duwe email, repositori lan CRM. Lan kabeh iki kualitas dhuwur banget lan gratis lan langsung. Kita arep padha kanggo ngawasi - perusahaan cilik lan proyèk bisa nggunakake okerr free lan malah ing tataran lair lan wutah duwe linuwih proyèk serius diwasa.

Source: www.habr.com