Za administratora sistema početnika: kako stvoriti red iz haosa

Za administratora sistema početnika: kako stvoriti red iz haosa

Ja sam FirstVDS sistem administrator, a ovo je tekst prvog uvodnog predavanja iz mog kratkog kursa o pomoći kolegama početnicima. Stručnjaci koji su nedavno počeli da se bave administracijom sistema suočavaju se sa nizom istih problema. Kako bih ponudio rješenja, obavezao sam se da napišem ovu seriju predavanja. Neke stvari u njemu su specifične za hosting tehničke podrške, ali općenito, mogu biti korisne, ako ne za sve, onda za mnoge. Zato sam prilagodio tekst predavanja da ga podijelim ovdje.

Nije bitno kako se zove vaša pozicija - bitno je da ste vi u stvari uključeni u administraciju. Stoga, krenimo od onoga što administrator sistema treba da radi. Njegov glavni zadatak je dovesti stvari u red, održavati red i pripremiti se za buduća povećanja reda. Bez administratora sistema, server postaje nered. Dnevnici se ne pišu, ili su u njima upisane pogrešne stvari, resursi nisu optimalno raspoređeni, disk je ispunjen svim vrstama smeća i sistem počinje polako da umire od tolikog haosa. Mirno! Sistem administratori u vašoj osobi počinju rješavati probleme i eliminirati nered!

Stubovi sistemske administracije

Međutim, prije nego počnete rješavati probleme, vrijedi se upoznati sa četiri glavna stuba administracije:

  1. Dokumentacija
  2. Templating
  3. Optimizacija
  4. Automatizacija

Ovo su osnove. Ako ne izgradite svoj radni tok na ovim principima, on će biti neučinkovit, neproduktivan i općenito će imati malo sličnosti sa stvarnom administracijom. Pogledajmo svaki posebno.

Dokumentacija

Dokumentacija ne znači čitanje dokumentacije (iako se bez nje ne može), već i njeno održavanje.

Kako čuvati dokumentaciju:

  • Jeste li naišli na novi problem koji nikada prije niste vidjeli? Napišite glavne simptome, metode dijagnoze i principe eliminacije.
  • Jeste li smislili novo, elegantno rješenje za uobičajeni problem? Zapišite ga tako da ga ne morate ponovo osmišljavati za mjesec dana od sada.
  • Jesu li vam pomogli da shvatite pitanje koje niste razumjeli? Zapišite glavne točke i koncepte, nacrtajte dijagram za sebe.

Glavna ideja: ne biste trebali potpuno vjerovati vlastitom pamćenju kada savladavate i primjenjujete nove stvari.

Na vama je u kom formatu ćete to uraditi: to može biti sistem sa beleškama, lični blog, tekstualni fajl, fizička beležnica. Glavna stvar je da vaša evidencija ispunjava sljedeće zahtjeve:

  1. Nemoj predugo. Istaknite glavne ideje, metode i alate. Ako razumijevanje problema zahtijeva uranjanje u mehaniku dodjeljivanja memorije niskog nivoa u Linuxu, nemojte prepisivati ​​članak iz kojeg ste ga naučili - navedite vezu do njega.
  2. Unosi bi vam trebali biti jasni. Ako je linija race cond.lockup ne dozvoljava vam da odmah shvatite šta ste opisali ovom linijom - objasnite. Za razumijevanje dobre dokumentacije nije potrebno pola sata.
  3. Pretraga je veoma dobra karakteristika. Ako pišete blog postove, dodajte oznake; ako ste u fizičkoj bilježnici, zalijepite male naljepnice s opisima. Nema puno smisla u dokumentaciji ako potrošite onoliko vremena tražeći odgovor u njoj koliko biste potrošili rješavajući pitanje od nule.

Za administratora sistema početnika: kako stvoriti red iz haosa

Ovako može izgledati dokumentacija: od primitivnih bilješki u notepadu (slika iznad), do punopravne višekorisničke baze znanja s oznakama, pretraživanjem i svim mogućim pogodnostima (ispod).

Za administratora sistema početnika: kako stvoriti red iz haosa

Ne samo da nećete morati dvaput tražiti iste odgovore, već će dokumentiranje biti od velike pomoći u učenju novih tema (napomene!), poboljšat će vaše paukovo čulo (sposobnost dijagnosticiranja složenog problema jednim površnim pogledom), i dodaće organizaciju vašim akcijama. Ako je dokumentacija dostupna vašim kolegama, to će im omogućiti da shvate šta ste i kako ste tamo gomilali kada niste tamo.

Templating

Templating je kreiranje i korištenje šablona. Da biste riješili većinu tipičnih problema, vrijedi kreirati određeni predložak akcije. Za dijagnosticiranje većine problema treba koristiti standardizirani slijed koraka. Kada ste nešto popravili/instalirali/optimizirali, performanse ovog nečega treba provjeriti pomoću standardiziranih kontrolnih lista.

Šablon je najbolji način da organizujete svoj radni tok. Koristeći standardne procedure za rješavanje najčešćih problema, dobijate puno cool stvari. Na primjer, korištenje kontrolnih lista omogućit će vam da dijagnosticirate sve funkcije koje su važne za vaš rad i odbacite dijagnozu nevažne funkcionalnosti. A standardizirane procedure će minimizirati nepotrebno bacanje i smanjiti vjerovatnoću greške.

Prva važna tačka je da procedure i kontrolne liste takođe moraju biti dokumentovane. Ako se samo oslanjate na memoriju, možete propustiti neku zaista važnu provjeru ili operaciju i sve pokvariti. Druga važna stvar je da se sve prakse šablona mogu i trebaju mijenjati ako situacija to zahtijeva. Ne postoje idealni i apsolutno univerzalni šabloni. Ako postoji problem, ali ga provjera šablona nije otkrila, to ne znači da nema problema. Međutim, prije nego počnete testirati neke malo vjerojatne hipotetičke probleme, uvijek je vrijedno prvo napraviti brzi test šablona.

Optimizacija

Optimizacija govori za sebe. Proces rada treba maksimalno optimizirati u smislu vremena i troškova rada. Postoji bezbroj opcija: naučite prečice na tastaturi, skraćenice, regularne izraze, dostupne alate. Potražite praktičnije upotrebe ovih alata. Ako naredbu pozovete 100 puta dnevno, dodijelite je prečici na tipkovnici. Ako trebate da se redovno povezujete na iste servere, napišite pseudonim u jednoj riječi koji će vas tamo povezati:

Za administratora sistema početnika: kako stvoriti red iz haosa

Upoznajte se sa različitim opcijama dostupnim za alate - možda postoji pogodniji terminalski klijent, DE, menadžer međuspremnika, pretraživač, klijent e-pošte, operativni sistem. Saznajte koje alate koriste vaše kolege i prijatelji - možda ih biraju s razlogom. Kada dobijete alate, naučite kako ih koristiti: naučite tipke, skraćenice, savjete i trikove.

Optimalno koristite standardne alate - coreutils, vim, regularne izraze, bash. Za posljednja tri postoji ogroman broj divnih priručnika i dokumentacije. Uz njihovu pomoć, možete brzo prijeći iz stanja „Osjećam se kao majmun koji lomi orahe laptopom“ do „Ja sam majmun koji koristi laptop da naručim sebi kreker za orahe“.

Automatizacija

Automatizacija prenijet će teške operacije iz naših umornih ruku u neumorne ruke automatike. Ako se neka standardna procedura izvodi u pet komandi istog tipa, zašto onda ne umotati sve ove komande u jednu datoteku i pozvati jednu naredbu koja preuzima i izvršava ovu datoteku?

Sama automatizacija je 80% pisanja i optimizacije vaših vlastitih alata (i još 20% pokušava da ih natjera da rade kako bi trebali). To može biti samo napredni jednoliner ili ogroman svemogući alat sa web sučeljem i API-jem. Glavni kriterij ovdje je da kreiranje alata ne bi trebalo da oduzima više vremena i truda od količine vremena i truda koje će vam alat uštedjeti. Ako provedete pet sati pišući skriptu koja vam više nikada neće trebati, za zadatak za koji bi vam trebalo sat ili dva da ga riješite bez skripte, ovo je vrlo loša optimizacija toka posla. Na kreiranje alata možete potrošiti pet sati samo ako vam to dozvoljavaju broj, vrsta zadataka i vrijeme, što nije čest slučaj.

Automatizacija ne znači nužno pisanje punopravnih skripti. Na primjer, da biste kreirali gomilu objekata istog tipa sa liste, sve što vam treba je pametan jednoliner koji će automatski raditi ono što biste radili ručno, prebacujući se između prozora, uz hrpu copy-paste-a.

Zapravo, ako administrativni proces izgradite na ova četiri stuba, možete brzo povećati svoju efikasnost, produktivnost i kvalifikacije. Međutim, ovu listu treba dopuniti još jednom stavkom, bez koje je rad u IT-u gotovo nemoguć - samoobrazovanje.

Samoobrazovanje sistem administratora

Da biste bili makar i malo kompetentni u ovoj oblasti, morate stalno učiti i učiti nove stvari. Ako nemate ni najmanju želju da se suočite s nepoznatim i shvatite to, vrlo brzo ćete zaglaviti. U IT-u se stalno pojavljuju svakakva nova rješenja, tehnologije i metode, a ako ih ne proučavate barem površno, na putu ste neuspjeha. Mnoga područja informacijske tehnologije stoje na vrlo složenoj i obimnoj osnovi. Na primjer, rad mreže. Mreže i internet su posvuda, susrećete se s njima svaki dan, ali kada zadubite u tehnologiju koja stoji iza njih, otkrit ćete ogromnu i vrlo složenu disciplinu čije proučavanje nikada nije šetnja parkom.

Ovu stavku nisam uvrstio na listu jer je ključna za IT općenito, a ne samo za sistemsku administraciju. Naravno, nećete moći odmah da naučite apsolutno sve – jednostavno fizički nemate dovoljno vremena. Stoga, kada se obrazujete, treba da zapamtite potrebne nivoe apstrakcije.

Ne morate odmah naučiti kako funkcionira upravljanje internom memorijom svakog pojedinačnog uslužnog programa i kako je u interakciji s Linux upravljanjem memorijom, ali dobro je znati što je RAM shematski i zašto je potreban. Ne morate znati kako su TCP i UDP zaglavlja strukturno različita, ali bi bilo dobro razumjeti osnovne razlike u načinu rada protokola. Ne morate naučiti šta je slabljenje signala u optici, ali bi bilo lijepo znati zašto se stvarni gubici uvijek nasljeđuju među čvorovima. Nema ničeg lošeg u tome da znate kako određeni elementi funkcionišu na određenom nivou apstrakcije i da ne razumete nužno apsolutno sve nivoe kada apstrakcije uopšte nema (naprosto ćete poludeti).

Međutim, u vašem polju razmišljanje na nivou apstrakcije „pa, ovo je stvar koja vam omogućava da prikazujete web stranice“ nije baš dobro. Naredna predavanja će biti posvećena pregledu glavnih oblasti kojima se administrator sistema mora baviti kada radi na nižim nivoima apstrakcije. Pokušaću da ograničim količinu pregledanog znanja na minimalni nivo apstrakcije.

10 naredbi sistemske administracije

Dakle, naučili smo četiri glavna stuba i temelj. Možemo li početi rješavati probleme? Ne još. Prije nego što to učinite, preporučljivo je da se upoznate s takozvanim „najboljim praksama“ i pravilima lijepog ponašanja. Bez njih ćete vjerovatno učiniti više štete nego koristi. Dakle, počnimo:

  1. Neke od mojih kolega smatraju da je prvo pravilo „ne škodi“. Ali ja sam sklon da se ne slažem. Kada pokušavate da ne naudite, ne možete ništa učiniti - previše radnji je potencijalno destruktivno. Mislim da je najvažnije pravilo - "napravi rezervnu kopiju". Čak i ako napravite neku štetu, uvijek se možete vratiti i neće sve biti tako loše.

    Uvijek trebate napraviti sigurnosnu kopiju kada vrijeme i mjesto to dozvoljavaju. Morate napraviti sigurnosnu kopiju onoga što ćete promijeniti i onoga što rizikujete da izgubite zbog potencijalno destruktivne akcije. Preporučljivo je provjeriti sigurnosnu kopiju na integritet i prisutnost svih potrebnih podataka. Sigurnosnu kopiju ne treba brisati odmah nakon što ste sve provjerili, osim ako ne trebate osloboditi prostor na disku. Ako lokacija to zahtijeva, napravite sigurnosnu kopiju na vašem osobnom serveru i izbrišite je nakon tjedan dana.

  2. Drugo najvažnije pravilo (koje i sam često kršim) je "ne skrivaj". Ako ste napravili rezervnu kopiju, napišite gdje, da je vaše kolege ne traže. Ako ste uradili neke neočigledne ili složene radnje, zapišite: ići ćete kući, a problem se može ponoviti ili pojaviti kod nekog drugog, a vaše rješenje će se pronaći pomoću ključnih riječi. Čak i ako uradite nešto što dobro znate, vaše kolege možda neće.
  3. Treće pravilo ne treba objašnjavati: „nikada ne činite nešto čije posledice ne znate, zamišljate ili ne razumete“. Nemojte kopirati komande sa interneta ako ne znate šta rade, pozovite man i prvo ih analizirajte. Nemojte koristiti gotova rješenja ako ne možete razumjeti šta ona rade. Držite izvršenje zamagljenog koda na apsolutnom minimumu. Ako nemate vremena da to shvatite, onda radite nešto pogrešno i trebali biste pročitati sljedeću tačku.
  4. "Test". Nove skripte, alate, jednostruke i komande treba testirati u kontrolisanom okruženju, a ne na klijentskoj mašini, ako postoji čak i minimalan potencijal za destruktivne akcije. Čak i ako ste napravili sigurnosnu kopiju svega (i jeste), zastoj nije najbolja stvar. Kreirajte poseban server/virtual/chroot za ovo i testirajte tamo. Je li nešto pokvareno? Tada ga možete pokrenuti u "borbi".

    Za administratora sistema početnika: kako stvoriti red iz haosa

  5. "kontrola". Minimizirajte sve operacije koje ne kontrolirate. Jedna kriva ovisnosti o paketu može povući dolje pola sistema, a -y zastavica postavljena za uklanjanje yum daje vam priliku da vježbate svoje vještine oporavka sistema od nule. Ako akcija nema nekontroliranih alternativa, sljedeća točka je gotova sigurnosna kopija.
  6. "provjera". Provjerite posljedice svojih radnji i da li je potrebno da se vratite na rezervnu kopiju. Provjerite je li problem zaista riješen. Proverite da li se greška reprodukuje i pod kojim uslovima. Provjerite šta možete pokvariti svojim postupcima. Izlišno je vjerovati u naš rad, ali nikako provjeravati.
  7. "komuniciraj". Ako ne možete riješiti problem, pitajte svoje kolege da li su se susreli s tim. Ako želite da primenite kontroverznu odluku, saznajte mišljenje svojih kolega. Možda će ponuditi bolje rješenje. Ako niste sigurni u svoje postupke, razgovarajte o njima sa svojim kolegama. Čak i ako je ovo vaše područje stručnosti, novi pogled na situaciju može razjasniti mnogo toga. Ne stidite se sopstvenog neznanja. Bolje je postaviti glupo pitanje, izgledati kao budala i dobiti odgovor, nego ne postaviti pitanje, ne dobiti odgovor i na kraju biti budala.
  8. "Ne odbijajte neopravdano pomoć". Ova tačka je suprotna od prethodne. Ako vam se postavi glupo pitanje, pojasnite i objasnite. Traže nemoguće - objasniti da je nemoguće i zašto, ponuditi alternative. Ako nemate vremena (stvarno nemate vremena, a ne želje) - recite da imate hitno pitanje, puno posla, ali ćete to kasnije riješiti. Ako kolege nemaju hitne zadatke, ponudite im da ih kontaktirate i delegirajte pitanje.
  9. "Dajte povratne informacije". Da li je neko od vaših kolega počeo da koristi novu tehniku ​​ili novi scenario i da li nailazite na negativne posledice ove odluke? Prijavi to. Možda se problem može riješiti u tri reda koda ili pet minuta usavršavanja tehnike. Da li ste naišli na grešku u svom softveru? Prijavite grešku. Ako se može reproducirati ili ne treba reproducirati, najvjerovatnije će biti popravljeno. Izrazite svoje želje, sugestije i konstruktivne kritike i postavite pitanja za diskusiju ako se čine relevantnim.
  10. "Traži povratnu informaciju". Svi smo mi nesavršeni, baš kao i naše odluke, i najbolji način da provjerite ispravnost svoje odluke je da je iznesete na raspravu. Ako ste nešto optimizovali za klijenta, zamolite ih da nadgledaju rad možda usko grlo u sistemu nije tamo gde ste tražili. Napisali ste skriptu za pomoć - pokažite je svojim kolegama, možda će pronaći način da je poboljšaju.

Ako ove prakse stalno primjenjujete u svom radu, većina problema će prestati biti problem: ne samo da ćete smanjiti broj vlastitih grešaka i falsifikata na minimum, već ćete imati priliku i da ispravite greške (u oblik rezervnih kopija i kolege koji će vam savjetovati da napravite rezervnu kopiju). Dalje - samo tehnički detalji, u kojima se, kao što znamo, krije đavo.

Glavni alati sa kojima ćete morati da radite više od 50% vremena su grep i vim. Šta može biti jednostavnije? Pretraživanje teksta i uređivanje teksta. Međutim, i grep i vim su moćni višenamenski alati koji vam omogućavaju da efikasno pretražujete i uređujete tekst. Ako vam neka Windows notepad dozvoljava da jednostavno upišete/izbrišete red, onda u vim-u možete učiniti skoro sve sa tekstom. Ako mi ne vjerujete, pozovite komandu vimtutor s terminala i počnite učiti. Što se tiče grepa, njegova glavna snaga je u regularnim izrazima. Da, sam alat vam omogućava da prilično fleksibilno postavite uvjete pretraživanja i izlazne podatke, ali bez RegExp-a ovo nema puno smisla. I morate znati regularne izraze! Barem na osnovnom nivou. Za početak, savjetovao bih vam da pogledate ovo видео, pokriva osnove regularnih izraza i njihovu upotrebu u sprezi sa grep. O da, kada ih kombinujete sa vim-om, dobijate VRHNU MOĆ mogućnost da radite stvari sa tekstom koji morate da označite sa 18+ ikona.

Od preostalih 50%, 40% dolazi iz coreutils alata. Za coreutils možete pogledati listu na wikipedia, a priručnik za cijelu listu nalazi se na web stranici GNU. Ono što nije obuhvaćeno ovim setom je u komunalnim uslugama POSIX. Ne morate naučiti sve ključeve napamet, ali je od pomoći da barem otprilike znate šta osnovni alati mogu učiniti. Ne morate ponovo izmišljati točak sa štaka. Nekako sam trebao zamijeniti prijelome redova razmacima u izlazu iz nekog uslužnog programa, a moj bolesni mozak je iznjedrio konstrukciju poput sed ':a;N;$!ba;s/n/ /g', prišao je kolega i metlom me otjerao od konzole, a onda riješio problem pisanjem tr 'n' ' '.

Za administratora sistema početnika: kako stvoriti red iz haosa

Savjetovao bih vam da zapamtite šta svaki pojedinačni alat radi i ključeve za najčešće korištene komande za sve ostalo postoji čovjek; Slobodno pozovite čovjeka ako sumnjate. I svakako pročitajte samog čovjeka - sadrži važne informacije o tome šta ćete pronaći.

Poznavajući ove alate, moći ćete efikasno riješiti značajan dio problema sa kojima ćete se susresti u praksi. U sljedećim predavanjima ćemo pogledati kada koristiti ove alate i okvire za osnovne usluge i aplikacije na koje se primjenjuju.

S vama je bio prviVDS sistemski administrator Kirill Tsvetkov.

izvor: www.habr.com

Dodajte komentar