Wyszukiwanie w witrynie

Jak tworzyć i dostarczać raporty o aktywności systemu przy użyciu zestawów narzędzi systemu Linux — część 3


Jako inżynier systemowy często będziesz musiał generować raporty pokazujące wykorzystanie zasobów systemu, aby między innymi upewnić się, że: 1) są one wykorzystywane optymalnie, 2) zapobiegają wąskim gardłom i 3) zapewniają skalowalność.

Oprócz dobrze znanych natywnych narzędzi systemu Linux, które służą do sprawdzania użycia dysku, pamięci i procesora – żeby wymienić tylko kilka przykładów, Red Hat Enterprise Linux 7 udostępnia dwa dodatkowe zestawy narzędzi poprawiające dane, które można gromadzić na potrzeby raportów: sysstat i dstat.

W tym artykule opiszemy oba, ale zacznijmy od przeglądu użycia klasycznych narzędzi.

Natywne narzędzia dla systemu Linux

Dzięki df będziesz mógł raportować wykorzystanie miejsca na dysku i i-węzła według systemu plików. Musisz monitorować jedno i drugie, ponieważ brak miejsca uniemożliwi zapisanie kolejnych plików (i może nawet spowodować awarię systemu), podobnie jak wyczerpanie się i-węzłów spowoduje, że nie będziesz mógł połączyć kolejnych plików z odpowiadającymi im danymi struktur, dając w ten sposób ten sam efekt: nie będzie można zapisać tych plików na dysku.


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

Dzięki du możesz oszacować wykorzystanie przestrzeni plików według pliku, katalogu lub systemu plików.

Zobaczmy na przykład, ile miejsca zajmuje katalog /home, w którym znajdują się wszystkie osobiste pliki użytkownika. Pierwsze polecenie zwróci całkowitą przestrzeń aktualnie używaną przez cały katalog /home, podczas gdy drugie wyświetli także zdezagregowaną listę według podkatalogów:


du -sch /home
du -sch /home/*

Nie przegap:

  1. 12 przykładów poleceń „df” do sprawdzania wykorzystania miejsca na dysku w systemie Linux
  2. 10 przykładów poleceń „du” do sprawdzania użycia plików/katalogów na dysku

Kolejnym narzędziem, którego nie może zabraknąć w Twoim zestawie narzędzi, jest vmstat. Pozwoli Ci szybko zobaczyć informacje o procesach, wykorzystaniu procesora i pamięci, aktywności dysku i nie tylko.

Jeśli zostanie uruchomiony bez argumentów, vmstat zwróci średnie od ostatniego ponownego uruchomienia. Chociaż tej formy polecenia można używać od czasu do czasu, bardziej pomocne będzie pobranie pewnej liczby próbek wykorzystania systemu, jedna po drugiej, z określonym odstępem czasowym pomiędzy próbkami.

Na przykład,


vmstat 5 10

zwróci 10 próbek pobieranych co 5 sekund:

Jak widać na powyższym obrazku, dane wyjściowe vmstat są podzielone według kolumn: procs (procesy), pamięć, zamiana, io, system i procesor. Znaczenie każdego pola można znaleźć w sekcjach OPIS POLA na stronie podręcznika vmstat.

Gdzie może się przydać vmstat? Przyjrzyjmy się zachowaniu systemu przed i podczas aktualizacji mniam:


vmstat -a 1 5

Należy pamiętać, że w miarę modyfikowania plików na dysku zwiększa się ilość aktywnej pamięci, a także liczba bloków zapisywanych na dysku (bo) i czas procesora, który jest dedykowane procesom użytkowników (nas).

Lub podczas zapisywania dużego pliku bezpośrednio na dysk (spowodowane przez dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

W tym przypadku widać jeszcze większą ilość bloków zapisywanych na dysk (bo), czego można było się spodziewać, ale też wzrost ilości czasu procesora, jaki musi on czekać Operacje we/wy do wykonania przed przetworzeniem zadań (wa).

Nie przegap: Vmstat – monitorowanie wydajności systemu Linux

Inne narzędzia dla Linuksa

Jak wspomniano we wstępie do tego rozdziału, istnieją inne narzędzia, których można użyć do sprawdzenia statusu i wykorzystania systemu (dostarczane są nie tylko przez Red Hat, ale także przez inne główne dystrybucje ich oficjalnie wspieranych repozytoria).

Pakiet sysstat zawiera następujące narzędzia:

  1. sar (zbieranie, raportowanie i zapisywanie informacji o aktywności systemu).
  2. sadf (wyświetl dane zebrane przez sar w wielu formatach).
  3. mpstat (statystyki związane z procesorami raportów).
  4. iostat (raportuje statystyki procesora i statystyki we/wy dla urządzeń i partycji).
  5. pidstat (raportuje statystyki dla zadań systemu Linux).
  6. nfsiostat (raportuj statystyki wejścia/wyjścia dla NFS).
  7. cifsiostat (raport statystyk CIFS) i
  8. sa1 (zbieraj i przechowuj dane binarne w pliku dziennych danych o aktywności systemu.
  9. sa2 (pisz codzienny raport w katalogu /var/log/sa).

podczas gdy dstat dodaje kilka dodatkowych funkcji do funkcjonalności zapewnianej przez te narzędzia, a także więcej liczników i elastyczność. Ogólny opis każdego narzędzia można znaleźć, uruchamiając odpowiednio yum info sysstat lub yum info dstat lub sprawdzając poszczególne strony podręcznika po instalacji.

Aby zainstalować oba pakiety:


yum update && yum install sysstat dstat

Główny plik konfiguracyjny sysstat to /etc/sysconfig/sysstat. W tym pliku znajdziesz następujące parametry:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

Gdy zainstalowany jest sysstat, dodawane są dwa zadania cron i włączane w /etc/cron.d/sysstat. Pierwsze zadanie uruchamia narzędzie do rozliczania aktywności systemu co 10 minut i przechowuje raporty w pliku /var/log/sa/saXX, gdzie XX to dzień miesiąca.

Zatem /var/log/sa/sa05 będzie zawierał wszystkie raporty aktywności systemu od 5-go dnia miesiąca. Zakłada się, że używamy wartości domyślnej zmiennej HISTORY w powyższym pliku konfiguracyjnym:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

Drugie zadanie generuje codzienne podsumowanie rozliczania procesu o 23:53 każdego dnia i przechowuje je w plikach /var/log/sa/sarXX, gdzie XX ma takie samo znaczenie jak w poprzednim przykładzie:


53 23 * * * root /usr/lib64/sa/sa2 -A

Na przykład możesz chcieć wyprowadzić statystyki systemowe od 9:30 do 17:30 szóstego dnia miesiąca w pliku .csv plik, który można łatwo wyświetlić za pomocą LibreOffice Calc lub Microsoft Excel (to podejście pozwoli również na tworzenie wykresów lub wykresów):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Alternatywnie możesz użyć flagi -j zamiast -d w powyższym poleceniu sadf, aby wyświetlić statystyki systemowe w formacie JSON, który może być przydatny, jeśli na przykład chcesz wykorzystać dane w aplikacji internetowej.

Na koniec zobaczmy, co ma do zaoferowania dstat. Pamiętaj, że jeśli zostanie uruchomiony bez argumentów, dstat domyślnie przyjmuje -cdngy (skrót od odpowiednio procesora, dysku, sieci, stron pamięci i statystyk systemu) i dodaje jeden linia co sekundę (wykonanie można przerwać w dowolnym momencie za pomocą Ctrl + C):


dstat

Aby wyprowadzić statystyki do pliku .csv, użyj flagi –output, po której następuje nazwa pliku. Zobaczmy, jak to wygląda w LibreOffice Calc:

Zdecydowanie radzę sprawdzić stronę podręcznika dstat wraz ze stroną podręcznika sysstat w formacie PDF dla wygody czytania. Znajdziesz kilka innych opcji, które pomogą Ci stworzyć niestandardowe i szczegółowe raporty aktywności systemu.

Nie przegap: Sysstat – narzędzie do monitorowania aktywności związanej z użytkowaniem Linuksa

Streszczenie

W tym przewodniku wyjaśniliśmy, jak używać zarówno natywnych narzędzi systemu Linux, jak i określonych narzędzi dostarczanych z RHEL 7 w celu tworzenia raportów na temat wykorzystania systemu. W pewnym momencie zaczniesz polegać na tych raportach jak na najlepszych przyjaciołach.

Prawdopodobnie korzystałeś z innych narzędzi, których nie omówiliśmy w tym samouczku. Jeśli tak, możesz podzielić się nimi z resztą społeczności wraz z innymi sugestiami/pytaniami/komentarzami, które możesz mieć – korzystając z poniższego formularza.

Oczekujemy na kontakt zwrotny.