OpenVPN müştərisinin işləmə müddətini up və down qarmaqları ilə necə ölçmək olar
OpenVPN-in işləmə müddəti sayğacı yoxdur. up qarmağından dövr möhürü saxlayın, down zamanı silin, çıxın və yenidən başlatmalar və nüsxələr arasında dürüst saxlayın.
İdarə paneli bağlantının davam etdiyi müddəti göstərən rəqəm istəyir və OpenVPN bunu təqdim etmir. Müştəri tunelinin nə vaxt qalxdığını bilir, ancaq sessiya vəziyyəti itirilməzdən əvvəl kimisə həmin anı qeyd edərsə. Dəstəklənən yer up qarmağıdır və saxlamağa dəyər dəyər formatlanmış sətir deyil, xam dövr saniyəsidir. Bundan sonrası hesabdır, üstəlik rəqəmin dürüst qalıb-qalmadığını həll edən bir neçə sıralama qaydası.
Qarmaqların həqiqətən işlədiyini təsdiqləyin
Heç nə qurmadan əvvəl qarmağın işə düşdüyünü sübut edin. Minimal müştəri konfiqurasiyası script-security 2 və açıq up və down yolları tələb edir; təhlükəsizlik sətri olmadan OpenVPN skripti icra etməkdən imtina edir və bunu açıq deyir. Eyni zamanda up-restart və down-pre əlavə edin ki, yenidən başlatma və sökmə yolları proqnozlaşdırıla bilən davransın.
Qarmağın ilk versiyasını öz mühitini fayla əlavə edən və başqa heç nə etməyən hala gətirin. Bu, sizə build-inizin həqiqətən ixrac etdiyi dəyişən adlarını göstərir, məsələn dev və script_type, başqa versiyadan xatırladığınız adlar əvəzinə. Bir qoşulma və bir ayrılma işlədin, sonra faylı oxuyun. Heç nə görünmürsə, burada dayanın, çünki heç vaxt işləməyən qarmaq üzərində qurulmuş zaman möhürü dizaynı həftələrlə monitorinq nasazlığı kimi görünəcək.
Qarmağın hansı istifadəçi kimi işlədiyini yoxlayın. user və group təyin edildikdə OpenVPN skriptləri işlətməzdən əvvəl imtiyazları atır, ona görə root-un yaza bildiyi qovluq qarmaq üçün bağlı ola bilər. Yolu öz qabığınızın deyil, xidmətin baxış bucağından seçin.
Bir dövr dəyəri qeyd edin və onu qəsdən silin
up qarmağına bir sətir lazımdır, date +%s > /run/openvpn-client.started, yol hər nüsxə üçün uyğunlaşdırılmalıdır. Dövr dəyəri sonradan dil, saat qurşağı və format suallarından qaçır və monitorinq agentinin öz saatı ilə müqayisə edə biləcəyi eyni rəqəmdir.
Silmə yazmaq qədər vacibdir. down qarmağı faylı boşaltmalı və ya silməlidir və down-pre bunu interfeys bağlanmazdan əvvəl edir, bu da faylın artıq getmiş tuneli təsvir etdiyi pəncərəni aradan qaldırır. up-restart sonra daxili yenidən başlatmada möhürü yeniləyir, ilkin dəyəri yerində qoymur. Bu cütlük olmadan ping fasiləsinə görə yenidən başlatma tunel yenidən qurularkən durmadan artan bir rəqəm yaradır.
Düzgün ömürlü yer seçin. /run altındakı fayl yenidən yükləmədə yox olur, bu da reallığa uyğundur, halbuki /tmp altındakı fayl gözlənilməz təmizlənə bilər və konfiqurasiya qovluğundakı fayl yanıldıcı şəkildə qalır. İcazələri elə qurun ki, onu yalnız xidmət istifadəçisi və monitorinq oxuyucusu oxuya bilsin.
İşləmə müddətini log sətirlərinə güvənmədən hesablayın
Saxlanan saniyəni oxuyun, cari saniyəni oxuyun, çıxın. Fayl yoxdursa və ya boşdursa, dürüst cavab aktiv tunelin olmamasıdır, işləmə müddətinin sıfır olması deyil, çünki bu iki vəziyyət fərqli xəbərdarlıqlar doğurmalıdır. Monitorinq yükündə xam saniyələri saxlayın, günləri və saatları göstərmə qatında formatlayın. İxrac edənin içində yuvarlaqlaşdıran formatlayıcı insident zamanı kiminsə istəyəcəyi dəqiqliyi atır.
Log zaman möhürlərini analiz etmək cazibədar qısa yoldur və üç yerdə uğursuz olur: format hansı seçimlər qoyulubsa ona uyğun gəlir, rotasiya tarixçəni silir və yenidən qoşulmalar bir davamlı tunel deyil, ayrı sessiyalar kimi görünür. Qarmaq hadisəni bir dəfə, baş verdiyi anda qeyd edir.
Yoxlama başqa hostda işləyəndə müddəti deyil, zaman möhürünü göndərin ki, oxuyucu öz saatını tətbiq etsin. Kiçik mənfi nəticə onda pozulmuş qarmaq deyil, saat sürüşməsi kimi oxunur.
Yenidən qoşulmaları, yenidən başlatmaları və çoxsaylı nüsxələri əhatə edin
Bir hostda iki tunel iki fayl tələb edir, açarları xidmətin artıq istifadə etdiyi nüsxə adıdır. Ortaq yol deməkdir ki, ən son bağlantı hər profilin başlama vaxtını üzərinə yazır və simptom ikinci tunel başlayanda geriyə sıçrayan bir rəqəmdir.
Yenidən qoşulma davranışı ayrıca testə layiqdir, çünki ağlabatan dizaynın səssizcə yanlış şeyi bildirdiyi yer elə oradır. Peer-i ataraq və ya prosesə siqnal verərək yenidən başlatmanı məcbur edin, sonra interfeys vəziyyətini faylla müqayisə edin. Zaman möhürü tunelin qayıtdığı anda irəli getməlidir.
Server tərəfində status faylı hər müştəri üçün connected-since dəyəri daşıyır və bu fərqli suala cavab verir: server o peer-i ən son nə vaxt görüb. Onu əvəz kimi deyil, çarpaz yoxlama üçün istifadə edin, çünki təsvir etdiyi sessiya ilə birlikdə yox olur. Ölçmələrin heç biri tunelin arxasındakı tətbiqin sağlamlığı haqqında heç nə demir.
Sıralama xətalarını tutan üç yoxlamanı işlədin
Normal qoşulma, məcburi yenidən qoşulma və təmiz dayanma sınağını keçirin, hər birindən sonra interfeys siyahısını və faylı birlikdə oxuyun. Təmiz dayanmadan sonra hələ də mövcud olan möhür və ya interfeys siyahısında olmayan tuneli təsdiqləyən fayl birbaşa qarmaq sıralamasına işarə edir. Yoxlamaları xidmət istifadəçisi kimi və xidmətin yolları ilə işlədin, çünki root qabığı başqa fayl görə və inamlı yanlış cavab verə bilər. Sonra faylı oxuyan yavaş bir sorğulayıcı buraxın və onun fayla heç vaxt yazmadığını təsdiqləyin.
Hər altmış saniyədə bir sorğu xəbərdarlığı əhatə edir və heç bir qarmaq o sorğulayıcının diri qalmasından asılı olmamalıdır. Bu iki məsuliyyəti ayrı saxlayın və tərəflərdən biri yenidən yerləşdirildikdə rəqəm etibarlı qalır.