Zadanie polega na administrowaniu małą siecią biurową, a także kilkoma stacjami roboczymi, na których działają głównie Debian i Ubuntu. Istnieją dwa serwery: jedna baza danych i serwer wydruku oraz jeden serwer kopii zapasowych i plików.
Będąc stosunkowo nowym w tej stronie rzeczy, wiedząc wystarczająco dużo, aby w pewnym stopniu pomóc sobie w Linuksie, chciałbym wiedzieć, jakich narzędzi programowych i zadań / nawyków mogę używać / nabywać, aby uczyć się tego pola i być skuteczny podczas tego.
Nie muszę wiedzieć, co jest najlepsze, tylko czego nowicjusz sys-admin może wykorzystać jako pakiet startowy do nauki i używać go jako podstawy do prawidłowego administrowania systemem.
Potrzebuję tych kilku podstawowych narzędzi na początek i tego, co muszę robić regularnie, np .: które logi sprawdzam, kiedy i co monitorować, rodzaj „właściwego” miejsca na początek i do którego mogę reklama jak potrzebuję.
Odpowiedzi:
1
monitorować kluczowe procesy biznesowe [np. - czy baza danych działa i odpowiada na proste zapytania], podstawowe parametry systemu operacyjnego [wolne miejsce na dysku, średnie obciążenie]. można użyć Nagios lub Zabbix na przykład.
2)
gromadzić statystyki w celu ustalenia niektórych poziomów bazowych. w przyszłości będzie to przydatne do planowania zdolności. możesz użyć munina , zabbixa, kaktusów itp.
3)
uruchamiaj zaplanowane automatyczne kopie zapasowe, przechowuj niektóre z nich offline, poza siedzibą. monitoruj, czy się udało, od czasu do czasu sprawdzaj ręcznie, czy możesz odzyskać krytyczne dane. możesz chcieć użyć backupninja do ich orkiestracji lub Zmandy , ale jest o wiele więcej przydatnych narzędzi ..
4
dokument. dla Twojego dobra. nie sądzę, że brak dokumentacji zwiększa bezpieczeństwo pracy. pierwszym, który cierpi z powodu jego braku, jesteś ty, prawdopodobnie szybko zapomnisz o rzeczach.
5
z innych losowych rzeczy:
nauczyć się języka skryptowego - może znasz już go? perl / python / php może być używany do automatyzacji zadań, aw wielu przypadkach lepiej nadaje się niż bash do bardziej skomplikowanych zadań
naucz się swoich narzędzi - to nieskończona lista ... prawdopodobnie najpierw pojawia się ssh. sprawdź to i tamto .
źródło
Praktyka administracji systemem i siecią autorstwa Limoncelli i in. Jest tym, od czego powinieneś zacząć. Technologie będą przychodzić i odchodzić (i mogą być łatwo wyszukiwane w Google zgodnie z wymaganiami), ale informacje w tej książce są ponadczasowe (i bezcenne).
źródło
Kilka podstawowych narzędzi na początek
Google. Niepoważnie. Google to spełnienie marzeń administratora systemu. Nie ma lepszego sposobu na wykorzystanie ogromnej ilości informacji w Internecie. I nie ograniczaj się tylko do wyszukiwania „linux dla początkujących”; jeśli masz konkretne zadanie, które próbujesz wykonać, Google dla tej konkretnej rzeczy. Często znajdziesz znacznie więcej informacji, niż potrzebujesz, a dla początkujących wiele z nich wydaje się innym językiem, ale nauka poprzez działanie jest dobrym sposobem na szybkie odebranie informacji.
Uzupełnianie tabulatorów. Wiersz poleceń systemu Linux umożliwia uzupełnianie wszystkich poleceń, drzew katalogów, nazw katalogów i nazw plików.
Strony podręcznika Każde polecenie i wiele systemowych plików konfiguracyjnych (/ etc / fstab, / etc resolv.conf itp.) Mają strony podręcznika man. Wystarczy wpisać „man nazwa_pliku” lub „man nazwa_pliku”, aby sprawdzić, czy ma to, czego szukasz. Aha i „q” opuszcza stronę podręcznika.
SSH. Jeden z najlepszych sposobów na dostęp do systemu Linux. Prawdopodobnie najlepszy sposób, jeśli nie ma fizycznego dostępu do systemu.
Ekran. Screen to fantastyczna mała aplikacja, która pozwala zamienić jeden terminal w wiele, pozwala ci zejść z drogi / w tle, i pozwala pozostawić rzeczy uruchomione, abyś mógł do nich wrócić później.
Nano Wspomniałeś powyżej, że już tego używasz, ale pomyślałem, że wrzucę moje dwa centy i powiem, że się zgadzam. Vi, Vim i wszystkie te są w porządku, ale uwielbiam prostotę Nano. To jest jak Notatnik w świecie Linuksa.
Znajdź i Grep. Wyszukiwanie jest świetny do przeszukiwania dla plików Grep jest dobre dla poszukiwań w plikach. Oba mogą być używane w bardzo prosty sposób i oba mogą być używane w bardzo skomplikowany sposób, ale oba są całkiem przydatne w obu przypadkach.
Sudo Pozwala działać jak root, nie będąc rootem. Bardzo przydatne.
Plus kilka innych narzędzi, o których wspomnę w kontekście następnej sekcji ...
Rodzaje rzeczy, które musisz robić regularnie
Monitoruj swój system. Monitoruj użycie dysku (df jest przydatnym poleceniem, a także du dla określonych katalogów), monitoruj uruchomione procesy i zadania (za pomocą polecenia ps i górnych poleceń), monitoruj użytkowników zalogowanych do systemu (użytkownicy i komendy będą powiedz to) i monitoruj wykorzystanie sieci (aplikacje takie jak kaktusy są do tego odpowiednie). Jeśli zdarzy ci się mieć dostęp do środowiska X Windows, zawsze uważałem, że GKrellM jest bardzo przydatnym narzędziem do monitorowania systemu.
Kopie zapasowe Na miłość Tuxa, kopie zapasowe. Utwórz kopię zapasową plików konfiguracyjnych, kopii zapasowych katalogów domowych, kopii zapasowej danych aplikacji. Kopie zapasowe Nawet jeśli wszystko, co robisz, to prosto kopiujesz dane z serwera do udziału CIFS / NFS na innym urządzeniu i na zewnętrznym dysku twardym. I tak, powinieneś przechowywać dwie kopie każdej kopii zapasowej i nigdy na tym samym nośniku / systemie. Potraktuj to jako kopie zapasowe swoich kopii zapasowych.
Sprawdź swoje kopie zapasowe. Rutynowo sprawdzaj, czy możesz przywrócić dane z kopii zapasowych do systemów. Puste / uszkodzone / niekompletne kopie zapasowe są tak bezużyteczne, jak długi dzień.
Użyj swoich plików dziennika. Dmesg, / var / log / messages i naprawdę prawie wszystko w okresie / var / log. Jeśli coś nie działa poprawnie i nie wiesz dlaczego, dzienniki mogą nie mieć odpowiedzi, ale na pewno mogą pomóc Ci je znaleźć. Logi i katalogi w / var / log mają rozsądną nazwę, więc znalezienie odpowiedniego dziennika nie powinno być trudne. Nie będziesz musiał stale monitorować każdego pliku dziennika, ale pilnowanie ich pomoże ci zachować zdrowie i bezpieczeństwo systemu.
Aktualizuj swój system. Nie pozwól, aby twoje oprogramowanie działało przez wiele miesięcy bez aktualizacji, ponieważ może to powodować wiele problemów i kłopotów, gdy zmienia się składnia pliku konfiguracyjnego lub zależności. Różne dystrybucje mają różne programy aktualizacji (apt-get, yum itp.), Ale niezależnie od tego, którego używasz, naucz się go i używaj regularnie.
Dbaj o bezpieczeństwo systemu. Używaj rzeczy takich jak iptables, PAM, hosts.allow / hosts.deny i podobne, aby zapobiec niechcianemu dostępowi do systemu i korzystaniu z niego.
Nigdy nie przestawaj się uczyć. Aby kontynuować coś, co powiedziałem wcześniej (uczenie się poprzez działanie), powinieneś przyjrzeć się maszynom wirtualnym. Pobierz VirtualBox (lub jeśli jeszcze masz licencje VMWare) i stań się maszyną wirtualną z systemem Linux. Możesz wybrać dowolną dystrybucję, którą naprawdę chcesz, ale oczywiście najlepiej jest wybrać taką, której używasz w swoim środowisku. Baw się na maszynie wirtualnej .. używaj jej jak piaskownicy. Układaj rzeczy, niszcz rzeczy, badaj, ucz się. Piękno maszyny wirtualnej piaskownicy polega na tym, że nie ma znaczenia, co się z nią stanie. Jeśli całkowicie go wąż, po prostu zrób nowy. Lub zachowaj kopię zapasową oryginału po skonfigurowaniu i użyj go ponownie, gdy zajdzie taka potrzeba.
Jak niektóre inne posty w tym wątku wspominały i do których się nawiązywały, te listy mogą być prawie nieskończone, ale mam nadzieję, że to zapewni dobry początek.
źródło
Jeśli dopiero zaczynasz, a zwłaszcza, że masz kilka systemów Debian (Ubuntu to jądro Debiana), gorąco polecam Debian Reference . To świetny przegląd prawie każdego aspektu administracji systemem i powinien obejmować prawie wszystko, co musisz wiedzieć o utrzymywaniu małego zestawu takich systemów.
Zgadzam się również ze wszystkimi punktami pQd, a dokładniej myślę, że dobrym pomysłem byłoby założenie wiki, która dokumentowałaby wszystkie procesy i konfiguracje. W mojej organizacji używamy Traca, ale każdy silnik wiki powinien to zrobić, po prostu upewnij się, że ma dobry sposób wyświetlania kodu źródłowego, ponieważ jest to przydatne w przypadku małych skryptów i list poleceń.
źródło
Szczerze mówiąc, administracja systemem Linux nie jest dziedziną, do której można po prostu „wskoczyć”.
Jeśli jednak musisz , istnieje kilka dobrych książek na ten temat. O'Reilly ma dwie książki (Linux Network Administration i Linux System Administration), które powinny zacząć.
Osobiście, gdybym był tobą, spędziłbym kilka dni na zabawie z różnymi dystrybucjami, instalowaniu oprogramowania, konfigurowaniu rzeczy typu Nagios / Cacti / Apache2 / SSH / NFS i być może nauce jakiegoś języka skryptowego (używam Perla, ja, ale wielu moich administratorów woli używać Pythona. To naprawdę zależy od ciebie, czego chcesz się nauczyć).
I zdecydowanie naucz się linii poleceń. Nie wracaj do narzędzi graficznych jako kuli.
Dowiedz się vi. Nawet jeśli nauczysz się wystarczająco dobrze, aby dokonywać podstawowych edycji, to dobrze - ale ważne jest, aby nauczyć się vi, ponieważ czasami utkniesz w systemie bez Vim / Nano / Emacs. W takiej sytuacji będziesz szczęśliwy, że spędziłeś dzień lub dwa ucząc się vi.
Jeśli potrzebujesz pomocy, napisz do mnie e-mail (mój e-mail został [usunięty ze względów bezpieczeństwa]) - chętnie pomogę Ci poza ServerFault.
źródło
Jeśli nie masz nic przeciwko instalowaniu aplikacji na serwerach, weź pod uwagę webmin, ponieważ zapewnia on kompleksową obsługę większości operacji logowania i konfiguracji. Skonfiguruj go tak, aby działał przez port wysokiego poziomu za pomocą protokołu SSL, a sam się zwróci w łatwy sposób.
źródło
Powiem ci największą nie tajną administrację systemu i sieci. Jesteś gotowy? Ok, oto jest:
Naucz się podstaw. Pozwól mi rozwinąć.
Każdy (lub tylko o nim) może dowiedzieć się, co robi to lub to konkretne oprogramowanie, i jak nacisnąć ten przycisk na tym narzędziu, aby x, y lub z działały. To nic specjalnego.
Jeśli chcesz być dobrym administratorem sys / net, naucz się podstawowych rzeczy. Jaka jest sekwencja zdarzeń w typowym połączeniu sieciowym? Jaka jest różnica między ramką a pakietem? Co tak naprawdę oznacza średnie obciążenie w systemie Unix? Jaki jest typowy proces uruchamiania komputera (ten sam, jeśli będziesz go śledził od początku do końca, zapewni bogactwo wiedzy).
Po zrozumieniu podstaw i zrozumieniu ich naprawdę dobrze, nałożenie wiedzy na dobry fundament jest znacznie łatwiejsze. Ale jeśli zaczniesz od góry i spróbujesz nauczyć się konkretnych elementów oprogramowania, nie wiedząc, co się dzieje pod spodem, to sprawi, że będziesz ... po prostu kolejnym woźnym z zaawansowanych technologii.
źródło
Najpierw znajdź swoje dzienniki. Większość dystrybucji Linuksa loguje się do / var / log / messages, chociaż widziałem kilka logów do / var / log / syslog. Jeśli coś jest nie tak, najprawdopodobniej w dziennikach będą jakieś istotne informacje. Ponadto, jeśli w ogóle masz do czynienia z pocztą e-mail, nie zapomnij / var / log / mail. Dokładnie sprawdź swoje aplikacje, dowiedz się, czy którakolwiek z nich loguje się gdzieś śmiesznie poza syslog.
Odśwież swoje umiejętności vi. Nano może być tym, czego używają wszystkie fajne dzieciaki, ale doświadczenie nauczyło mnie, że vi jest jedynym edytorem tekstowym, który na pewno jest dostępny w systemie. Kiedy przyzwyczaisz się do skrótów klawiaturowych i zaczniesz tworzyć własne wyzwalacze, vi będzie dla ciebie jak druga natura.
Przeczytaj stronę podręcznika, a następnie uruchom następujące polecenia na każdym komputerze i skopiuj wyniki do swojej dokumentacji:
To posłuży jako początek twojej dokumentacji. Te polecenia pozwalają poznać środowisko i mogą pomóc w zawężeniu problemów w przyszłości.
Przejrzyj swoje dzienniki i wyszukaj „błąd” lub „błąd”. To da ci wyobrażenie o tym, co nie działa tak, jak powinno. Twoi użytkownicy podzielą się z Tobą opinią o tym, co jest nie tak, słuchaj uważnie tego, co mają do powiedzenia. Nie rozumieją systemu, ale widzą go w inny sposób niż ty.
Jeśli masz problem, sprawdź rzeczy w tej kolejności:
Miejsce na dysku (df-h): Linux i niektóre aplikacje działające w systemie Linux robią bardzo dziwne rzeczy, gdy zabraknie miejsca na dysku. Może to wydawać się niepowiązane, dopóki nie sprawdzisz i nie znajdziesz systemu plików w 100% zapełnionego.
Top: Top poinformuje cię, jeśli masz jakiś proces, który utknął tam, pochłaniając wszystkie dostępne cykle procesora. Nic nie powinno zużywać 99% procesora przez dłuższy okres czasu. Jeśli jest to legalny proces, prawdopodobnie powinien się zmieniać w górę iw dół. Gdy jesteś na szczycie, sprawdź ...
Obciążenie systemu: Obciążenie systemu powinno zwykle być mniejsze niż 3 na standardowym serwerze lub stacji roboczej. Obciążenie systemu zależy od procesora, pamięci i we / wy.
Pamięć (wolna-m): użycie pamięci RAM w Linuksie jest trochę inne. Często zdarza się, że serwer zużywa prawie całą pamięć RAM. Nie panikuj, jeśli to zobaczysz, jest to głównie pamięć podręczna i zostanie wyczyszczona w razie potrzeby. Należy jednak zwrócić szczególną uwagę na ilość używanych zamian. Jeśli to możliwe, trzymaj to tak blisko zera, jak to możliwe. Niewystarczająca pamięć może prowadzić do różnego rodzaju problemów z wydajnością.
Dzienniki: Wróć do swoich dzienników, uruchom tail -500 / var / log / messages | więcej i zacznij czytać i sprawdzać, co się dzieje. Mamy nadzieję, że dzienniki będą w stanie wskazać kierunek, w którym należy iść dalej.
Dobrze utrzymany serwer Linux może działać przez lata bez problemów. Właśnie zamknęliśmy jeden, który działał przez 748 dni, i zamknęliśmy go tylko dlatego, że dokonaliśmy migracji aplikacji na nowy sprzęt. Mamy nadzieję, że pomoże to zmoczyć stopy i zapewni dobry start.
I ostatnia rzecz: zawsze wykonaj kopię pliku konfiguracyjnego, który zamierzasz zmienić, i zawsze kopiuj zmieniany wiersz i komentuj oryginał, podając powód jego zmiany. Dzięki temu nabierzesz zwyczaju dokumentowania podczas podróży i może uratować Twoją skórę przez 9 miesięcy.
źródło
dobre pytanie.
Moja rada. Naucz się korzystać z powłoki.
Standardem jest bash. Możesz po prostu wpisać help, aby uzyskać dokumentację.
uczyć się fajki "|" aby uzyskać dane wyjściowe z jednego polecenia na wejście drugiego polecenia.
Ostatnia rzecz pomogła mi dawno temu: Linux One Page Manual
pracuj ciężko, nigdy się nie poddawaj.
Za 3-4 lata będziesz miał wystarczającą wiedzę i wiele rzeczy pochodzi od siebie :)
źródło