Testowane na: [OpenBSD]

MRTG

MRTG (Multi Router Traffic Grapher) jest narz�dziem s�u��cym do monitorowania i wizualizacji niemal�e dowolnych wielko�ci zwi�zanych z dzia�aniem systemu komputerowego, pocz�wszy od ruchu sieciowego (do analizy kt�rego zosta� zaprojektowany i kt�rym si� zajmiemy), poprzez obci��enie procesora, pami�ci, zaj�to�� dysku i wiele, wiele innych. Istnieje mo�liwo�� dostarczenie dowolnych wielko�ci, o ile je tylko dostarczymy w zjadliwym przez MRTG formacie. MRTG generuje stron� HTML zawieraj�c� wykresy w formacie .png, kt�re dostarczaj� na �ywo graficzne wykresy ruchu jaki odbywa si� na naszych interfejsach. U�ywa on w du�ej mierze przeno�nej implementacji SNMP napisanej w ca�o�ci w Perlu, dlatego te� potrzebujemy jakiejkolwiek zewn�trznej paczki SNMP."

Pozwoli�em sobie zacytowa� fragment artyku�u autorstwa Artura Kulda, kt�ry znajduje si� TU.

W artykule opisz� proces instalacji i konfiguracji SNMPD, oraz MRTG (na przyk�adzie miernika sieci oraz obci��enia procesora). Przy pisaniu artyku�u korzysta�em z:



SNMPD

Najpierw zainstalujmy pakiet net-SNMP (Simple Network Managment Protocol).
Przechodzimy wi�c do portu Net-SNMP i go instalujemy:

> cd /usr/ports/net/net-snmp/ && make install clean

W zale�no�ci od mocy naszej maszyny, instalacja mo�e troch� potrwa� :). Pod udanej instalacji otrzymujemy porad� od autor�w, co nale�y wpisa� w /etc/rc.local, aby monitor SNMP uruchamia� si� razem z systemem:

To have snmpd start at boot time, you must edit /etc/snmp/snmpd.conf
and uncomment the following in /etc/rc.local.

#if [ -x /usr/local/sbin/snmpd ]; then
# echo -n ' snmpd'; /usr/local/sbin/snmpd
#fi

This will start snmpd and use /etc/snmp/snmpd.conf for the configuration.
The snmpconf tool can be used to help edit your configuration files. See
snmpconf(1), snmpd(8), and snmpd.conf(5) for more options.

Chyba nie musz� t�umaczy� tego dla u�ytkownik�w OpenBSD :).
Gdy ju� wyedytujemy rc.local, czas na konfiguracj� samego SNMP. W tym celu pos�u�ymy si� skryptem przygotowanym przez autor�w.

> /usr/local/bin/snmpconf -i -g basic_setup

Pomo�e nam to utworzy� standardow� konfiguracj� SNMPd. A wi�c do rzeczy. Odpalamy snmpconf:

The following installed configuration files were found:

1: /etc/snmp/snmpd.conf

Would you like me to read them in? Their content will be merged with the
output files created by this session.

Valid answer examples: "all", "none","3","1,2,5"

Read in which (default = all): all, lub po prostu sam [ENTER]

Skrypt pyta nas, kt�ry plik z konfigiem chcemy edytowa� (wybieramy ten podstawowy). Teraz dostajemy pytanie, czy chcemy utworzy� podstawowe informacje o systemie. Domy�lnie jest 'y' (chcemy). Wciskamy wi�c ENTER i je podajemy.

>
The location of the system: Serwerownia
The contact information: Admin@serwera.pl

Teraz skrypt pyta nas, czy chcemy ustawi� warto�� identyfikatora sysServices.0. Tak, chcemy... Wklepujemy wi�c ENTER przy pytaniu:

Do you want to properly set the value of the sysServices.0 OID (if you don't
know, just say no)? (default = y):

Nast�pnie podajemy za pomoc? 0 i 1 dalsze dane. (0 - oznacza n, czyli NO, 1 - y,czyli YES). Wybieramy 0 przy pytaniach:

does this host offer physical services (eg, like a repeater) [answer 0 or
1]: 0
does this host offer datalink/subnetwork services (eg, like a bridge):
0

Chyba, �e serwer z uruchomionym SNMPd robi za jaki? mostek lub 'repeater'. Nastepnie podajemy warto�� 1 przy pytaniach:

does this host offer internet services (eg, supports IP): 1
does this host offer end-to-end services (eg, supports TCP): 1
does this host offer application services (eg, supports SMTP): 1

Teraz b�dziemy ustawia� wa�ny aspekt konfiguracji, jakim jest dost�p i co za tym idzie bezpiecze�stwo serwera. SNMPd mo�e odbiera� zapytania (i na nie odpowiada�) z r�nych adres�w sieciowych. Nam zale�y tylko, aby demon komunikowa� si� tylko z nami na 'localho�cie'. W zabezpieczaniu du�� rol� odgrywa 'spo�eczno��'. Jest to swoisty login dost�powy do zapyta� SNMPd. Domy�lne warto�ci 'private' i 'public' s? znane szerokiej rzeszy do�wiadczonych u�ytkownik�w system�w, a co za tym idzie, ka�dy taki osobnik b�dzie m�g� potem "odpytywa�" nasz serwer. Nazwa spo�eczno�ci powinna by� unikalna i trudna do odgadni�cia przez potencjalnego "u�yszkodnika". Ja, na potrzeby artyku�u wymy�li�em nazw� spo�eczno�ci: MisieWCiapki. Z pomoc� tej spo�eczno�ci b�dziemy p�niej odpytywa� SNMPd, i ustawimy MRTG. Skonfigurujemy r�wnie� nasze SNMPd, aby pracowa�o w trybie "tylko odczyt".

Do you want to configure the agent's access control? (default = y):[ENTER]

Na powy�sze pytanie odpowiadamy wi�c twierdz�co. Nast�pnie jeste�my pytani o spos�b dost�pu do protoko�u SNMPv3. Nie jest on nam potrzebny, jak i protok� SNMPv1/v2c w trybie odczyt/zapis. Odpowiadamy wi�c przecz�co na poni�sze pytania:

Do you want to allow SNMPv3 read-write user based access (default = y): n
Do you want to allow SNMPv3 read-only user based access (default = y): n
Do you want to allow SNMPv1/v2c read-write community access (default = y): n

Nast�pnie jeste�my pytani czy chcemy aby SNMPv1/2c pracowa�o w trybie 'tylko odczyt'. Odpowiadamy twierdz�co, a nast�pnie ustawiamy spo�eczno�� i host:

Do you want to allow SNMPv1/v2c read-only community access (default = y): y

Configuring: rocommunity
Description:
a SNMPv1/SNMPv2c read-only access community name
arguments: community [default|hostname|network/bits] [oid]

The community name to add read-only access for: MisieWCiapki
The hostname or network address to accept this community name from [RETURN for all]:
localhost
The OID that this community should be restricted to [RETURN for no-restriction]: [ENTER]

Finished Output: rocommunity MisieWCiapki localhost

Je�eli nie mamy zamiaru dodawa� innej spo�eczno�ci to w poni�szym pytaniu odpowiadamy przecz�co.

Do another rocommunity line? (default = y):n

Nast�pnie jeste�my pytani, czy chcemy u�ywa� "pu�apki". S�u�y ona do wysy�ania danych do innego komputera, w przypadku gdy pozycje MIB zostan� wyzerowane. Nie jest to nam potrzebne, wi�c odpowiadamy przecz�co:

Do you want to configure where and if the agent will send traps? (default = y):n

Dobrn�li�my ju� do sekcji, kt�ra opisuje co mamy monitorowa�. Chcemy monitorowa� np wolne miejsce na dysku, odpowiadamy wi�c twierdz�co na poni�sze pytanie:

Do you want to configure the agent's ability to monitor various aspects of
your system? (default = y):y

Nie chcemy jednak (p�ki co) monitorowa� proces�w, wi�c odpowiadamy 'n' na pytanie:

Do you want to configure the agents ability to monitor processes? (default = y): n

Teraz dostajemy pytanie, czy chcemy monitorowa� dyski. Tak, chcemy:

Do you want to configure the agents ability to monitor disk space? (default = y):y

Przechodzimy do sekcji dodawania informacji o dyskach (partycjach). Ja dla przyk�adu dodam tylko /home, ale Wy mo�ecie doda� wszystkie. Opcja MIN oznacza, ile mo�e by� minimalnie wolnego miejsca, zanim u�ytkownik zostanie ostrze�ony.

Configuring: disk
Description:
Check for disk space usage of a partition.
The agent can check the amount of available disk space, and make
sure it is above a set limit.

disk PATH [MIN=100000]

PATH: mount path to the disk in question.
MIN: Disks with space below this value will have the Mib's errorFlag set.
Can be a raw byte value or a percentage followed by the %
symbol. Default value = 100000.

The results are reported in the dskTable section of the UCD-SNMP-MIB tree

Enter the mount point for the disk partion to be checked on: /home
Enter the minimum amount of space that should be available on /home: 5%

Finished Output: disk /home 5%
Do another disk line? (default = y): n

Na koniec jeste�my pytani, czy chcemy monitorowa� �rednie obci��enie i rozmiar plik�w. Na pocz�tek si� obejdziemy bez tego:

Do you want to configure the agents ability to monitor load average?
(default = y): n
Do you want to configure the agents ability to monitor file sizes? (default
= y): n

I to by by�o tyle na pocz�tek naszej przygody z SNMP. Otrzymujemy informacj�:

The following files were created:

snmpd.conf installed in /usr/local/share/snmp

Nast�pnie kopiujemy sobie ten konfig na miejsce domy�lnego (pami�taj�c o zrobieniu kopii).

> cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
> cp /usr/local/share/snmp/snmpd.conf /etc/snmp/snmpd.conf

Je�eli mamy ju� uruchomiony SNMPD, prze�adowujemy go, lub uruchamiamy od nowa. Najwygodniej jest podczas uruchamiania SNMPD wskazywa� na plik z konfiguracj�:

> /usr/local/sbin/snmpd -c /etc/snmp/snmpd.conf

(Je�eli wybierzesz ten spos�b, to pami�taj o dodaniu �cie�ki do konfiga w rc.local). Czas na testy. Gdy upewnimy sie, �e SNMPD dzia�a, wydajemy polecenie:

> snmpwalk -v 1 -c MisieWCiapki localhost \ .1.3.6.1.4.1.2021.11.9.0UCD-SNMP-MIB::ssCpuUser.0 = INTEGER: 0

Powinni�my otrzyma� warto�� (w procentach) czasu, jaki zu�ywa nasz CPU na wykonywanie program�w u�ytkownika. List� wszystkich warto�ci mo�na otrzyma�, kieruj�c wynik snmpwalk do jakiego� pliku:

> snmpwalk -v 1 -c MisieWCiapki localhost > wynik.txt

Przydatnym programem jest te� snmptranslate, kt�ry wy�wietla wiele przydatnych informacji dotycz�cych poszczeg�lnych pozycji MIB (dla wnikliwych polecam dokumentacj�). Instalacj� i konfiguracj� SNMPD mo�emy uzna� za zako�czon�. Teraz zajmiemy si�..

MRTG

Przechodzimy do portu z MRTG i go instalujemy:

> cd /usr/ports/net/mrtg && make install clean

Nast�pnie, gdy ju� mamy MRTG na pok�adzie, tworzymy plik konfiguracyjny. Pami�tajmy, by zmieni� nazw� domy�lnemu plikowi w /etc:

> cp /etc/mrtg.cfg /etc/mrtg.cfg.bak
> cfgmaker MisieWCiapki@localhost > /etc/mrtg.cfg

Edytujemy teraz nasz plik konfiguracyjny /etc/mrtg.cfg

# Podajemy �cie�k� do pliku, w kt�rym b�dziemy zapisywa� info

WorkDir: /home/karol/public_html/mrtg

#Poni�ej mamy troch� informacji o naszym systemie
#Domy�lnie mamy konfiguracje interfejs�w sieciowych
#Odhashujmy te, kt�re chcemy monitorowa�
#Ja poda�em tylko przyk�ad dla g�ownego interfejsu
#Pami�tajcie, aby w konfigu poda� w�asne IP i w�asny interfejs sieci�wki
#

### Interface 2 >> Descr: 'rl0' | Name: '' | Ip: '212.33.82.196' | Eth:
'00-0c-xx-xx-xx-xx' ###
### The following interface is commented out because:
### * has a speed of 0 which makes no sense

Target[siec]: 2:MisieWCiapki@localhost:
SetEnv[siec]: MRTG_INT_IP="212.33.82.196" MRTG_INT_DESCR="rl0"
MaxBytes[siec]: 1250000
Title[siec]: SatanBSD.org (inet)
PageTop[siec]: <h1>SatanBSD.org (inet)</h1>
<table>
<tr><td>System:</td> <td>SatanBSD.org (inet)</td></tr>
<tr><td>Description:</td><td>rl0 </td></tr>
<tr><td>Max Speed:</td> <td>100.0 Mbits/s</td></tr>
<tr><td>Ip:</td> <td>212.33.82.196 (SatanBSD.org)</td></tr>
</table>

#
#A to przyk�adowy konfig wy�wietlaj�cy info o zu�yciu CPU
#

Title[cpu]: SatanBSD.org - Zu�ycie CPU
YLegend[cpu]: Zu�ycie CPU
WithPeak[cpu]:wmy
MaxBytes[cpu]:100
Target[cpu]:.1.3.6.1.4.1.2021.11.9.0&.1.3.6.1.4.1.2021.11.10.0:MisieWCiapki@localhost
ShortLegend[cpu]:CPU
LegendI[cpu]: CPU u�ytkownik�w
LegendO[cpu]: CPU systemowe
Legend1[cpu]: Zu�ycie procesora (u�ytkownicy)
Legend2[cpu]: Zu�ycie procesora (system)
Legend3[cpu]: Max. 5 min. zu�ycie procesora (u�ytkownicy)
Legend4[cpu]: Max. 5 min. Zu�ycie procesora (system)
Options[cpu]: growright, gauge
PageTop[cpu]: <h1>Zu�ycie CPU na SatanBSD.org>/h1>

Zapisujemy plik i sprawdzamy efekt naszej pracy:

> /usr/local/bin/mrtg /etc/mrtg.cfg

Na pocz�tku mo�emy dosta� komunikat w stylu:

Rateup WARNING: /usr/local/bin/rateup could not read the primary log file for cpu

Po prostu nie by�o jeszcze �adnych zapisanych wynik�w. Po parokrotnym wywo�aniu mrtg, ostrze�enia powinny znikn��.
Mo�emy r�wnie� wygenerowa� stron� indeks�w naszych statystyk:

> /usr/local/bin/indexmaker /etc/mrtg.cfg > /home/karol/public_html/mrtg/index.html

Potem wystarczy wej�� na stron� WWW i zobaczy� wynik.
Na samym ko�cu dodajemy wpis do crona, kt�ry uruchomi MRTG co 5 min:

*/5 * * * * /usr/local/bin/mrtg /etc/mrtg.cfg

I to by by�o chyba na tyle...
Dodatek: St�d mo�na pobra� skrypt, kt�ry wypisze nam w postaci listy wszystkie pozycje MIB do pliku *.html (lub innego po modyfikacji), oraz je opisz�. (Opis u�ycia w �rodku skryptu).

Przydatne linki:


Oryginalny artyku� znajduje si� w serwisie BSD4U.
Autor: Karol 'lofix' Gogiel.
Powr�t na g�r� strony...