Timapulumutsa nthawi, mitsempha ndi maola a munthu

Ntchito zathu nthawi zambiri zimakhala zachigawo, ndipo makasitomala nthawi zambiri amakhala mautumiki. Koma, kuwonjezera pa ntchito za boma, mabungwe apadera amagwiritsanso ntchito machitidwe athu. Palibe mavuto ndi iwo.

Choncho, ntchito zazikuluzikulu ndi zachigawo, ndipo nthawi zina pamakhala mavuto. Mwachitsanzo, ndi magwiridwe antchito, m'magawo muli opitilira 20k a ogwiritsa ntchito amtengo wapatali panthawi yotulutsa zatsopano pamaseva azogulitsa. Ndi ululu…

Dzina langa ndine Ruslan ndipo ndimathandizira machitidwe azidziwitso a BARS Gulu ndi kupanga bot wakupha kwa ma DBA achiwawa amtundu wina. Positi iyi si ya ofooka mtima - pali zilembo zambiri ndi zithunzi.

Timapulumutsa nthawi, mitsempha ndi maola a munthu

/awo

Ntchito zathu zina zimayenda pa Oracle DBMS. Palinso ma projekiti pa PostgreSQL DBMS. Oracle ili ndi chinthu chodabwitsa - kusonkhanitsa ziwerengero za katundu pa DBMS, zomwe zimasonyeza mavuto omwe alipo komanso kupanga malingaliro othetsera - Automatic Workload Repository (AWR). Panthawi ina (yomwe ili panthawi ya ululu), opanga nthawi zonse amapempha kusonkhanitsa Malipoti a AWR owunikira magwiridwe antchito. Tinapita moona mtima ku seva ya DBMS, tinasonkhanitsa malipoti, tinawatengera kwa ife ndikuwatumiza ku kupanga kuti tifufuze. Pambuyo pa nthawi ya 5 zinakhala zokhumudwitsa ... pambuyo pa 10 zinayamba kukhumudwitsa ...

Mmodzi mwa anzanga nthawi ina adanenanso kuti zonse zomwe zimachitika kangapo ziyenera kukhala zokha. Mpaka nthawi yokwiyitsidwa, kunena zoona, sindinaganizirepo ndikuyesera kupanga zonse zomwe zingatheke, koma nthawi zambiri sizinali zofunikira ndipo zinali zofufuza zambiri m'malo mwa chikhalidwe chogwiritsidwa ntchito.

Kenako ndinaganiza: "Admin safunikira kuti apange lipoti ...". Pambuyo pake, kusonkhanitsa lipoti kumatanthauza kuchita sql script @$ORACLE_HOME/rdbms/admin/awrrpt.sql ndikutenga lipoti kuchokera ku seva kupita kumalo anu ... O inde, sitimalola chitukuko cha kupanga.

Ndiye ine Googled zambiri zofunika, ndinapanga ntchito kuchokera ku nkhani pa maziko mayeso, anathamanga script ndi chozizwitsa - lipoti anapangidwa ndipo akhoza kupulumutsidwa kwanuko. Adapanga magwiridwe antchito pomwe malipoti a AWR amafunikira nthawi zambiri ndikuwuza opanga momwe angawagwiritsire ntchito.

Panthawiyi, munthawi yanga yopuma, nditalankhula ndi @BotFather, ndidadzipangira bot ya Telegraph, kuti ndingosangalala. Ndidasokoneza magwiridwe antchito osavuta pamenepo - onetsani nthawi yamakono, mitengo yosinthira, nyengo, ndikuphunzitsa kutumiza zoyamikira kwa mkazi wanga (ndiye bwenzi) pandandanda. Mwina, panthawiyo, kutumiza zoyamikira kunali ntchito yotchuka kwambiri ya bot yanga, ndipo mkazi wanga anayamikira.

Choncho. Madivelopa amatilembera ife mu Telegalamu, timatumiza lipoti kwa iwo mu Telegalamu ... Bwanji ngati iwo amatilembera osati ife, koma ku bot? Kupatula apo, zikhala bwino kwa aliyense, lipotilo lilandilidwa mwachangu, ndipo koposa zonse, kutilambalala. Umu ndi momwe lingaliro la magwiridwe antchito oyamba a bot anga lidabadwa.

Ndinayamba kukhazikitsa. Ndidachita, momwe ndingathere, mu PHP (ntchito yathu yokha ili mu PHP, ndimayidziwa bwino kuposa Python). Sindine wolemba bwino, kotero sindikuwonetsani khodi yanga :)

Bot imakhala pamakampani athu ndipo imatha kupeza ma projekiti ena, kuphatikiza nkhokwe zomwe mukufuna. Kuti ndisavutike ndi magawo mu timu kapena ndi menyu, ndidayika izi pazokambirana zamagulu ndi zidziwitso zowunikira. Mwanjira iyi bot imadziwa nthawi yomweyo kuti ndi malo ati omwe angatengere lipotilo.

Atalandira lamulo ngati /awo N, kumene N ndi chiwerengero cha maola athunthu omwe lipoti likufunika (mwachisawawa - ola la 1), ngakhale kwa sabata, ngati deta siinayambenso kuyambiranso, bot nthawi yomweyo imayamba kugwira ntchito, kusonkhanitsa lipoti, kulisindikiza ngati tsamba lawebusayiti ndipo nthawi yomweyo (pafupi pomwepo) limapereka ulalo ku lipoti lomwe likufunika kwambiri.

Tsatirani ulalo ndipo nayi, lipoti la AWR:

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Monga momwe zimayembekezeredwa, opanga mapulogalamuwa adalimbana ndi kutulutsa malipoti otere, ndipo ena adatithokoza.

Atayamikira ubwino wa gululi, oyang'anira polojekiti ochokera kumadera ena ankafuna zomwezo, popeza amalandira zambiri kuchokera kwa makasitomala ndipo akuda nkhawa ndi machitidwe ndi kupezeka kwa machitidwe. Ndawonjezera bot kumacheza ena. Amagwiritsabe ntchito, ndipo ndine wokondwa nazo.

Pambuyo pake, ogwira nawo ntchito ku CIT adadziwa momwe timasonkhanitsira malipoti ndipo adafuna kutero. Sindinawawonjezere pamacheza athu, ndidapanga macheza osiyana ndi m'badwo wa malipoti pandandanda komanso popempha.

/pgBadger

Tilinso ndi mapulogalamu ena mu PHP molumikizana ndi PostgreSQL. Ndidakhazikitsa zosonkhanitsira malipoti a pgBadger kwa omwe akufunika pogwiritsa ntchito mfundo yomweyi - pamacheza amagulu. Poyamba ankagwiritsa ntchito, koma kenako anasiya. Magwiridwe ake adadulidwa ngati osafunikira.

/ntchito

Dipatimenti yathu imakhala ndi ma shift usiku ndipo, motero, ili ndi ndondomeko. Ili mu Mapepala a Google. Sikoyenera nthawi zonse kuyang'ana ulalo, tsegulani tchati, dziyang'aneni nokha ... Mmodzi mwa anzanga akale adaseweranso ndi bot yake ya Telegraph ndikuyiyambitsa pazokambirana za dipatimenti yathu. zidziwitso za kuyamba kwa kusintha kwa ntchito kwa ogwira ntchito m'madipatimenti. Bot imagawa ndandanda, imasankha munthu yemwe ali pantchitoyo pofika tsiku lomwe lilipo ndipo, malinga ndi ndandanda kapena pempho, lipoti yemwe ali pantchito lero. Zinakhala zazikulu komanso zothandiza. Zowona, sindinakonde mawonekedwe a mauthengawo. Komanso, kwa ogwira ntchito ku dipatimenti ina (mwachitsanzo, BC "Medicine"), zokhudza anthu amene ali ntchito mbali zina si zofunika kwenikweni, koma muyenera kudziwa amene ali pa ntchito "Medicine" pakakhala mavuto. Ndinaganiza "kubwereka" magwiridwe antchito, koma kusintha zomwe sindimakonda. Ndinapanga mtundu wauthenga kuti ukhale wabwino kwa ine ndi ena, ndikuchotsa zambiri zosafunika.

/tnls

Nditayesa kupanga makina pogwiritsa ntchito Telegraph bot, malingaliro osiyanasiyana adawonekera, koma ndimafuna kuchita zinthu zofunika kwambiri. Ndinaganiza zotsogolera ziwerengero pa zopempha. Kuti tipeze ma projekiti a makasitomala athu, takhazikitsa zomwe zimatchedwa "jump server" kapena seva yotumizira. Malumikizidwe a VPN amakwezedwa pamenepo, kenako madoko ogwiritsira ntchito, nkhokwe ndi zina zothandizira zimatumizidwa ku netiweki yathu yapafupi kudzera pa ssh, kuti tipeze ma projekiti a antchito athu mosavuta, popanda vuto ndi kulumikizana kwa VPN. Zomwe muyenera kuchita ndikukhazikitsa kulumikizana kwa VPN ku netiweki yathu yamakampani.

Ziwerengero za zopempha zasonyeza kuti nthawi zambiri, imodzi mwa ngalandeyo ikalephera (pakakhala zovuta zapaintaneti, chifukwa cha kutha kwa nthawi, mwachitsanzo), anthu amalumikizana nafe za kubwezeretsanso mwayi wopeza ntchitoyo. Nthawi zambiri, kungoyambitsanso kulumikizana ndikokwanira ndipo zonse zili bwino. Tichite nokha. Nali lamulo:
Timapulumutsa nthawi, mitsempha ndi maola a munthu

"Mukugwera" muzinthu zomwe mukufuna, sankhani polojekiti yanu, dikirani kamphindi ndipo aliyense ali wokondwa komanso wokhutira ...

Atalandira lamulo, ndikuyenda pang'ono kwa ma byte ndi ma bits, bot imagwirizanitsa ndi seva yotumizira, podziwa pasadakhale kuti kutumiza kuyenera kuyambiranso, ndikuchita ntchito yake - kubwezeretsanso kugwirizana kwa polojekitiyo. Ndinalemba malangizo kuti muthane ndi vutoli nokha. Ndipo anthu adalumikizana nafe pokhapokha ngati chida choperekedwa sichinagwire ntchito...

/ecp_to_pem

Ziwerengero zina zikuwonetsa kuti nthawi zambiri ndikofunikira kutembenuza EDS Crypto Pro mu mtundu wa pem(maziko64) zophatikizira zosiyanasiyana, ndipo tili nazo zambiri. Ntchito: tengani chidebe, koperani ku kompyuta ya Windows yokhala ndi zida za P12FromGostCSP (zolipidwa, mwa njira), sinthani kukhala pfx, kenako sinthani pfx pogwiritsa ntchito OpenSSL (mothandizidwa ndi GOST encryption) kuti pem. Sizothandiza kwambiri, koma mumazifuna pang'onopang'ono zala zanu.

Google yabweranso kudzapulumutsa. Zapezeka zothandiza munthu wina wachifundo. Ndinazisonkhanitsa monga momwe zinalembedwera mu README - zinagwira ntchito. Ndinaphunzitsa bot kuti igwire ntchito ndi zofunikira ndipo ndinasintha nthawi yomweyo.
Timapulumutsa nthawi, mitsempha ndi maola a munthu

Pofika nthawi yomaliza, lamulo linaperekedwa kuti lisinthe ku mtundu watsopano wachinsinsi - gost-2012. Monga ndikukumbukira, zofunikira panthawiyo zinkangogwira ntchito ndi GOST yakale (2001), mwinamwake inali ntchito ina yofanana ndi munthu wina wachifundo, sindikukumbukira bwino.
Pambuyo pakusintha kupita ku GOST yatsopano, magwiridwe antchito a bot adachotsedwa pazifukwa zachitetezo. Anakhazikitsa mu chidebe cha docker.

Dockerfile, ngati wina angafunike:

FROM ubuntu:16.04                                                                                                                                                                        
RUN apt update && apt -y install git sudo wget unzip gcc g++ make &&                        
   cd /srv/ && git clone https://github.com/kov-serg/get-cpcert.git &&                     
   cd get-cpcert && chmod +x *.sh && ./prepare.sh && ./build.sh &&                         
   mkdir -p /srv/{in,out} &&                                                               
   echo '#!/bin/bash' > /srv/getpem.sh &&                                                  
   echo 'cd /srv/get-cpcert' >> /srv/getpem.sh &&                                          
   echo './get-cpcert /srv/in/$CONT.000 $PASS > /srv/out/$CONT.pem' >> /srv/getpem.sh &&   
   chmod +x /srv/getpem.sh                                                                  ENTRYPOINT /srv/getpem.sh

Kuti mutembenuzire, muyenera kuyika chidebe choyambirira (cholembera ngati xxx.000) mu /srv/in directory, ndikutenga pem yomalizidwa ku /srv/out.

Kusintha:

 docker run -t -i -e CONT='<имя директории с контейнером(без ".000")>' -e PASS='<пароль для контейнера>' -v /srv/in:/srv/in -v /srv/out:/srv/out --name ecptopem <адрес нашего репозитория>/med/ecptopem:latest 

/emstop ndi /emstart

Tsiku lina, Oracle DBA wozizira kwambiri, wodziwa zambiri mu kayendetsedwe ka DBMS ndi chitukuko, adapeza ntchito ku kampani yathu. Ndipo nthawi yomweyo anali ndi vuto lolumikizana ndi ma seva a DBMS ndi ssh: sadziwa komwe angalumikizane kapena momwe angalumikizire, mwayiwu sunafotokozedwe momveka bwino, kapena sangathe kutumiza zomwe akufunikira kwa iyemwini. Chabwino, ndife okondwa kuthandiza, tidamuuza momwe angalumikizire, ndikumutumizira Enterprise Manager. Koma zinthu sizinayende bwino ndi ssh. Mmodzi mwa anzanga adalongosola mophweka: DBA yoyera :) Tinaganiza kuti ngati tifunika kusintha chinachake pa seva, tizichita tokha.

EM nthawi zina imawonongeka ndi katundu wolemetsa, ndikuyambitsanso ... muyenera kulumikiza kudzera pa ssh ndikuyambitsanso kudzera pa terminal. "Admins ndi abwino pa izi," mnzathu watsopano adaganiza. Zolemetsa zolemetsa pa DBMS sizachilendo kwa ife, ndipo zopempha kuti tiyambitsenso EM ndizofala. Ndiye zochitika zomwezo: kukangana, kukwiya komanso kufunafuna njira yothetsera vutoli. Chifukwa chake mumagulu omwewo macheza malamulo otsatirawa adawonekera: /emstop ndi /emstart.

Timapulumutsa nthawi, mitsempha ndi maola a munthu

/kupha

Ngati pali mpikisano wamphamvu pa database, ndipo izi zimachitika nthawi zina, ndikofunikira kutsitsa mwachangu database. Njira yofulumira kwambiri ndiyo kupha njira yovuta ... Kuti muchite izi, gwirizanitsani kudzera ssh, kupha -9... Bot idzathandiza!

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Alexey adayamikira timuyi ndipo adayipatsa dzina lachikondi - "Chikala" kapena mfuti.
Tsiku lina, nditawona momwe Alexey adayesera ndikuvutikira, kulowa / kupha xxx nthawi iliyonse panjira iliyonse, ndidaganiza zowonjezera "migolo yambiri" pamfuti yathu:

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Ndi bwino! Zonse ndi zanu, Alexey, ingogwirani ntchito, wokondedwa!

Mwachibadwa, gulu lofunika chotero linali lochepa kulowa ndi user_id - "foolproof". Powona momwe Lesha amapha njira pa seva yachinsinsi, anthu angapo adayesa kuyika lamulo ndi nambala yachisawawa, koma simungapusitse bot wanga wanzeru, nthawi yomweyo anakana.

/alertlog

Chabwino, mwina, ndidapanga lamulo:
/alertlog <chiwerengero cha mizere> - pezani nambala yodziwika ya mizere ya alertlog
Bot imakoka alertlog ndikuitumiza ku ntchito yathu, monga pastebin, yotchedwa pyste, ndikutumiza ulalo ku phala ku macheza opempha.

/ cheke

Kenako panabwera pempho kuyang'anira momwe ntchito yathu ikugwiritsidwira ntchito. Mpaka pano, chithandizo chaukadaulo cha projekiti chinasonkhanitsa izi pamanja. Osatengera! Oyesa athu olimba mtima apanga mayeso a izi. Cholemba chotsatiracho sichosavuta kuwerenga; wogwiritsa ntchito wosadziwa amatenga nthawi yayitali kuti amvetsetse ndipo sakutsimikiza kuti awonetsa zofunikira. Ndipo sitikonda kuchita ndi manja athu zomwe sitingathe kuchita ndi manja athu ... Ntchito yatsopano ya bot!

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Lamulo la / cheke likuwonetsa menyu osavuta komanso osavuta; nthawi ino anyamata athu adaphunzira kugwiritsa ntchito lamuloli popanda malangizo!

Mukasankha chinthu chomwe mukufuna, m'malo mwa menyu, zidziwitso za kuyamba kwa mayeso zimawonekera, kuti ogwiritsa ntchito osaleza mtima asayese mayeso athu nthawi 100500:

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Malingana ndi chinthu chosankhidwa cha menyu, kuyesedwa kwapadera kumayambitsidwa kuchokera ku intaneti yathu, kuchokera ku makina omwe bot amakhala (jmeter imakonzedweratu pamenepo, mayesero oyenerera ali ...) kapena mwachindunji kuchokera ku data center (kuchokera ku a. makina okonzekera pafupi ndi pulogalamuyo), kuti asaphatikizepo kulumikizana kwa maukonde poyesa kuchedwa, kapena kuchepetsa kuchepera.

Mukamaliza kuyesa ndikulandira chipikacho, bot imayigawa ndikutulutsa zotsatira zake mu mawonekedwe "owerengeka ndi anthu":

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Kutolera ma metrics

Ntchitoyi yafika ndipo oyang'anira polojekiti omwe ali ndi chidwi alandira ntchitoyi kumadera awo. Ndipo woyang'anira ntchito wina wachifundo anati: "Ndikufuna kukhala ndi ziwerengero za nthawi!" Wina wochokera ku CIT adamuuza kuti zingakhale bwino kuyang'anira zonsezi ku Zabbix. Zabbix, ndiye Zabbix ...

Ndinaganiza kuti ndiyenera kukonzekera kufunikira kobwereza yankho ... Ndinayika lingalirolo mu chidebe cha docker. Mu chidebe, jmeter imayambitsidwa pa ndandanda (kamodzi mphindi 10 zilizonse), imayika chipikacho pamalo enaake, php imayigawa ndikuwonetsa zofunikira monga tsamba lawebusayiti. Zabbix, pogwiritsa ntchito fungulo la web.page.get, amalandira tsamba ili, amasankha nthawi zonse deta yofunikira pazinthu zina zomwe amadalira ndikupanga graph.

Timapulumutsa nthawi, mitsempha ndi maola a munthu

Ndikuganiza kuti sizinali zoipa. Poyang'ana graph, ife, choyamba, timawona pafupifupi liwiro la pulogalamuyo, ndipo ngati nsonga zapezeka pa graph, timadziwa komwe kuli "pulagi". Ndi zophweka. Mpaka pano zakhala zikufunidwa kudera limodzi lokha, koma ndakonzeka kubwerezanso kwa omwe akufuna.

Kupititsa patsogolo ntchito

Ziwerengero za ntchito zofananira posachedwapa zapangitsa kuti pakhale malingaliro ambiri osavuta ndikuthandizira ntchito. Pazinthu zina, pa ma seva ogwiritsira ntchito, pakufunika kukhazikitsa zotengera zazikulu za Crypto Pro, pali zambiri, ndipo siginecha ya digito imatha pakapita nthawi. Nthawi zina ntchito ziwiri zimafika patsiku. Koma ndidawona kuti ndizosayenera kugwiritsa ntchito bot pazolinga izi ndipo ndidaganiza kuti ndipanga magwiridwe antchitowo mwachindunji. Mwachibadwa ndi chilolezo ndi kufufuza ufulu wopezera. Ngati muli ndi mwayi wofunikira, chinthu chowonjezera cha menyu chidzakhalapo kuti mugwire ntchito ndi siginecha ya digito, kukhazikitsa, kuchotsa, kuwonera zambiri, ndi zina zotero. Ntchitoyi ikupangidwa panopa. Monga momwe zinakhalira, izi sizovuta kwambiri, muyenera kungowerenga malangizo omwe alipo pang'ono, yang'anani zitsanzo zamakhodi, funsani anzanu odziwa zambiri pa chitukuko, ndiyeno chitani. Panthawi yofufuza, malingaliro adatuluka owonjezera pakugwiritsa ntchito. Sindipanga mapulani a Napoleon - pali chitukuko, aliyense aziganizira zazake. Koma ngakhale ndizosangalatsa, ndikuchita ndekha.

Mapulani

Monga ndanenera, malingaliro ambiri osiyanasiyana adabadwa kuti agwiritse ntchito bot yathu osati - mwachizoloŵezi, tinene, malingaliro a "zochita zokha", ambiri a iwo adayiwalika, popeza ndinalibe nthawi yowalemba. Tsopano ndimayesetsa kulemba chilichonse chimene chimabwera m’maganizo mwanga, ndipo ndimalimbikitsa ena kuti achite chimodzimodzi.

Koma Alexey saiwala kupereka zofuna zake. Zaposachedwa:
/kill_sql SQL_ID - kupha magawo onse ndi pempho la SQL_ID ili
/kupha_block - kupha gawo lotsekereza mizu
/kuwonetsa_em - Onetsani chithunzi cha EM ntchito
Ndi munthu wochenjera, akufuna kusoka DBA kuchokera pafoni yake =)

Umu ndi momwe timagwirira ntchito kuti tipindule ndi Motherland!

Kodi mumachotsa bwanji ntchito zachizolowezi komanso zosasangalatsa?

Ndikuyembekeza kuti kuwerengako kunakhala kosangalatsa, ndipo mwinamwake ngakhale kothandiza kwa wina, ndipo ndinalibe nthawi yotopetsa owerenga ... Zabwino zonse kwa ife tonse.

Source: www.habr.com

Kuwonjezera ndemanga