Skocz do zawartości

Mrtg Na Fedorze 8


kaktus250

Rekomendowane odpowiedzi

A mozesz pokazac
fdisk -l

???

Tak to wygląda

[root@IZS ~]# fdisk -l

Disk /dev/sda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd178d178

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        9729    77947380   8e  Linux LVM

Disk /dev/dm-0: 78.7 GB, 78718697472 bytes
255 heads, 63 sectors/track, 9570 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1040 MB, 1040187392 bytes
255 heads, 63 sectors/track, 126 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x30307800

Disk /dev/dm-1 doesn't contain a valid partition table
[root@IZS ~]#

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 31
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

masz tam jakas macierz i /dev/sda nie jest rzeczywistym urzadzeniem - nie ma dziwne, ze smartctl glupieje i nie wie jak i z czego ma czytac wskazania

 

Hem, ekhem. Jak się ma twór logiczny (/dev/dm to LVM prawda?) do urządzenia które "leży" pod spodem? Dopóki dyski nie są wetknięte do sprzętowej macierzy/kontrolera RAID, żaden soft nie ma prawa się wtrącać do SMART, ponieważ odczyt powyższego to operacja na kontrolerze dysku.

 

Żeby było śmieszniej, mam identyczny dysk:

 

[root@charon ~]# smartctl -a /dev/sdb
smartctl version 5.38 [i386-redhat-linux-gnu] Copyright © 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.7 and 7200.7 Plus family
Device Model:     ST380011A
Serial Number:    5JV405XE
Firmware Version: 3.06
User Capacity:    80,025,280,000 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Wed Mar 11 15:32:04 2009 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)	Offline data collection activity
				was completed without error.
				Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)	The previous self-test routine completed
				without error or no self-test has ever 
				been run.
Total time to complete Offline 
data collection: 		 ( 430) seconds.
Offline data collection
capabilities: 			 (0x5b) SMART execute Offline immediate.
				Auto Offline data collection on/off support.
				Suspend Offline collection upon new
				command.
				Offline surface scan supported.
				Self-test supported.
				No Conveyance Self-test supported.
				Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
				power-saving mode.
				Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
				No General Purpose Logging support.
Short self-test routine 
recommended polling time: 	 (   1) minutes.
Extended self-test routine
recommended polling time: 	 (  58) minutes.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate     0x000f   061   059   006    Pre-fail  Always       -       48485436
 3 Spin_Up_Time            0x0003   099   098   000    Pre-fail  Always       -       0
 4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       340
 5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
 7 Seek_Error_Rate         0x000f   088   060   030    Pre-fail  Always       -       5081815855
 9 Power_On_Hours          0x0032   073   073   000    Old_age   Always       -       24299
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   098   098   020    Old_age   Always       -       2308
194 Temperature_Celsius     0x0022   041   053   000    Old_age   Always       -       41
195 Hardware_ECC_Recovered  0x001a   061   058   000    Old_age   Always       -       48485436
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   199   000    Old_age   Always       -       1
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 TA_Increase_Count       0x0032   100   253   000    Old_age   Always       -       0

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      2916         -
# 2  Extended offline    Completed without error       00%      1966         -
# 3  Short offline       Completed without error       00%      1552         -
# 4  Short offline       Completed without error       00%      1207         -
# 5  Extended offline    Aborted by host               90%         2         -
# 6  Short offline       Completed without error       00%         2         -

SMART Selective self-test log data structure revision number 1
SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
   1        0        0  Not_testing
   2        0        0  Not_testing
   3        0        0  Not_testing
   4        0        0  Not_testing
   5        0        0  Not_testing
Selective self-test flags (0x0):
 After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

 

Moim zdaniem ten dysk ma uszkodzone firmware. Dlaczego?

 

1. Gdyby było uszkodzone połączenie dysk-płyta, byłyby inne problemy z dyskiem.

2. smartctl zwraca głupoty:

Firmware Version: 8.01

u kolegi

 

Firmware Version: 3.06

u mnie.

 

Trochę zbyt duża rozbieżność.

Odnośnik do komentarza
Udostępnij na innych stronach

W tej sytuacji nie ruszam tego. Wychodzę z założenia " działa - nie ruszać ".

W międzyczasie muszę zwalczyć kwestię squida, tak aby statystyki otwierały się w normalnym czasie.

 

Odnośnie statystyk to poproszę o pomoc kolegę w sprawdzeniu tego co mam. Jeśli mogę ???

 

 

__________________

To jest forum a nie lista mailingowa. Proszę nie cytować całych postów widocznych powyżej. Cytujemy wyłącznie treść, do której odnosimy się bezpośrednio.

dobrze, postaram się

Więc mam tak w mrtg.conf

Title[hda_free]: /dev/sda Calkowite/Uzywane miejsce
PageTop[hda_free]: <H1>/dev/sda Calkowite/Uzywane miejsce</H1>
Options[hda_free]: nobanner,growright,gauge,noinfo,nopercent
Target[hda_free]: `/etc/mrtg/get_free sda`
MaxBytes[hda_free]: 80025280000
AbsMax[hda_free]:   80025280000
kilo[hda_free]: 1024
YLegend[hda_free]: Calkowite/Uzywane
LegendI[hda_free]:
LegendO[hda_free]:

Ponieważ mam taki wynik [root@IZS mrtg]# fdisk -l

Disk /dev/sda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd178d178

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        9729    77947380   8e  Linux LVM

Disk /dev/dm-0: 78.7 GB, 78718697472 bytes
255 heads, 63 sectors/track, 9570 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1040 MB, 1040187392 bytes
255 heads, 63 sectors/track, 126 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x30307800

Disk /dev/dm-1 doesn't contain a valid partition table
[root@IZS mrtg]#

 

to wpisałem 80025280000

I pokazuje na osi Y 0, 50,100,150, 200 M i granatową kreskę poziomą na wysokościok 10

A z kolei

[root@IZS mrtg]# df
System plików      bl.  1K B        użyte dostępne %uż. zamont. na
/dev/mapper/VolGroup00-LogVol00
                     74464368   2519292  68101392   4% /
/dev/sda1               194442     12316    172087   7% /boot
tmpfs                   253512         0    253512   0% /dev/shm
[root@IZS mrtg]#

Dobrze to jest ?. Na osi Y myslałem że będzie ok 80 lub 100 Gb ?

Edytowane przez kaktus250
Usunięcie zbędnych cytatów
Odnośnik do komentarza
Udostępnij na innych stronach

W przypadku wolnego miejsca, powinieneś raczej napisać

df -k

i odpowiednio zmodyfikować skrypt, żeby czytał dane z tej partycji którą chcesz monitorować.

 

Możesz także zaadaptować część skryptów z poniższych linków:

http://return.dnsalias.net/wiki/index.php/...wer_www#Skrypty

http://www.nekochan.net/wiki/index.php/MRT...MP#Scripts_used

Odnośnik do komentarza
Udostępnij na innych stronach

Chyba mam jakieś zaszłości z IRIXa :P

 

[edit] Cholera, chyba mi na oczy padło!

 

#!/bin/bash
DATA=`df -k /dev/mapper/VolGroup00-LogVol00 | tail -1`
TOTAL=`echo $DATA | cut -f2 -d" "`
FREE=`echo $DATA | cut -f3 -d" "`
echo "$TOTAL * 1024" | bc
echo "$FREE * 1024" | bc
echo 0
echo 0

 

Taki skrypt powinien zwracać potrzebne wartości - parametr jest zbędny. Wystarczy:

 

Target[hda_free]: `/etc/mrtg/get_free`

Odnośnik do komentarza
Udostępnij na innych stronach

Chyba mam jakieś zaszłości z IRIXa :P

 

[edit] Cholera, chyba mi na oczy padło!

 

#!/bin/bash
DATA=`df -k /dev/mapper/VolGroup00-LogVol00 | tail -1`
TOTAL=`echo $DATA | cut -f2 -d" "`
FREE=`echo $DATA | cut -f3 -d" "`
echo "$TOTAL * 1024" | bc
echo "$FREE * 1024" | bc
echo 0
echo 0

 

Taki skrypt powinien zwracać potrzebne wartości - parametr jest zbędny. Wystarczy:

 

Target[hda_free]: `/etc/mrtg/get_free`

A tu jest taki skrypt lusers

#!/bin/sh

FOO1=`/usr/bin/w |tail +3 |awk '{print $3}' |grep '\-' |wc -l`
FOO2=`/usr/bin/w |tail +3 |wc -l`

UPT=`/usr/bin/uptime |awk '{if(NF==13){printf("%s days %s hours\n",$3,$5);}else \
if(NF==12){printf("%s days %s hours\n",$3,$5);}else{printf("%s\n%s hours\n",100,$3);}}'`
H=`hostname -f`
echo 0
echo $FOO2
echo $UPT
echo $H

 

wywoływany z mrtg.conf

Target[lusers]: `/etc/mrtg/lusers`
MaxBytes[lusers]: 100
Options[lusers]: gauge,growright,nopercent,noinfo,nobanner,,nolegend,noborder
YLegend[lusers]: Zalogowanych
ShortLegend[lusers]: users
LegendI[lusers]: Zalogowanych uzytkownikow lokalnie
LegendO[lusers]: Zalogowanych uzytkownikow zdalnie
Title[lusers]: Liczba zalogowanych uzytkownikow
PageTop[lusers]: <h1>Liczba zalogowanych uzytkownikow</h1>

Na wykresie linia niebieska na pozomie zero, innej lini nie ma.

Nic się nie wyświetla co by pomogło, dlaczego.

Odnośnik do komentarza
Udostępnij na innych stronach

Podstawa, to debugging skryptów zanim je podepniesz do mrtg. Czy rzeczony skrypt zwraca poprawne wartości uruchamiany ręcznie?

 

Kilka wskazówek:

 

cho 0
echo $FOO2
echo $UPT
echo $H

Jest jedna linia, bo pierwsza wartość to 0.

 

Pokombinuj z opcjami wyświetlania:

Options[lusers]: gauge,growright,nopercent,noinfo,nobanner,,nolegend,noborder

Nie wszystkie muszą działać - zależy jaką masz wersję.

http://oss.oetiker.ch/mrtg/doc/mrtg-reference.en.html

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Doszedłem do wniosku że muszę uruchamiać z crona skrypt uruchamiający mrtg, czyli skrypt run_mrtg - potem będę poprawiać działanie skryptów statystyk

Zrobiłem kilka prób uruchamiania run_mrtg z crona, ale nie chodzi to. Zrobiłem tak.

w /etc/crontab dopisałem:

*/5 **** root /etc/mrtg/run_mrtg

nie poszło, potem zrobiłem tak:

*/5 **** root env LANG=C /usr/bin/mrtg --logging /var/log/mrtg.log /etc/mrtg/mrtg.conf > /dev/null 2>&1

potem tak:

*/5 **** root env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.conf --logging /var/log/mrtg.log > /dev/null 2>&1

Za każdym razem w po zmianie w crontab robiłem: /etc/rc.d/init.d/crond restart

W pliku /var/log/cron

dostawałem oczywiście co 5 min:

Mar 19 14:20:01 IZS CROND[29324]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok)
Mar 19 14:25:01 IZS CROND[29335]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok)
Mar 19 14:30:01 IZS CROND[29392]: (root) CMD (LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok)

plik run_mrtg

env LANG=C /usr/bin/mrtg --logging /var/log/mrtg.log /etc/mrtg/mrtg.conf > /dev/null 2>&1

 

Jak uruchamiam ręcznie z konsoli run_mrtg jest ok, powstaje w /var/log plik mtrg.log i tam jest komunikat że ok .

Jak z crona to w tym pliku nie widać komunikatu o uruchomieniu mrtg.

Gdzie robię błąd, pewnie coś ze scieżkami ?

 

-------------------------------------

1.Proszę właściwie stosowac znaczniki [code][/code] (do 15 linijek) lub [codebox][/codebox]

2.To nie jest lista dyskusyjna tylko forum - nie cytuj w całości postów poprzednika.

Edytowane przez WalDo
Edycja znaczników, usunięcie zbędnych cytatów
Odnośnik do komentarza
Udostępnij na innych stronach

Po co kombinujesz? Czemu nie zrobiłeś tak jak tutaj? Zapewniam, że działa.

 

p.s. W Twoich przykładach nie ma np. spacji pomiędzy gwiazdkami. Nie wiem czy to ma znaczenie.

Jakoś sam cron zaskoczył i jest ok.

Mam inne pytanie.

Mrtg zrobiłem głównie po to by się przygotować do Niceshapera.

Na stronie http://niceshaper.jedwabny.net/ jest opis do Niceshapera i rysunek wykresów z mrtg.

Jak zrobić taki wykres ? Tam jest download i upload. Czy to jest to samo co obciążenie łącza na karcie sieciowej ?

Nie bardzo znam się na języku C i też nie do końca potrafię interpretować zwrotne informacje ze skryptów podłączanych do mrtg. (_z tąd_ → stąd) ORT te problemy. proszę o pomoc w zrobieniu takiego skryptu który daje wykres jak na

http://niceshaper.jedwabny.net/

Odnośnik do komentarza
Udostępnij na innych stronach

Widzisz, kolego, sam sobie strzeliłeś gola.

 

http://rtfm.killfile.pl/#cel

 

Jak zrobić taki wykres ? Tam jest download i upload. Czy to jest to samo co obciążenie łącza na karcie sieciowej ?

 

Dlaczego nie napisałeś tego w pierwszym poście? Moim zdaniem, bez jakiejś arytmetyki, nie da się "wyłuskać" aktualnego obciążenia interfejsu, bez SNMP. Owszem, są programy typu iftop czy iptraf, ale to są programy interaktywne.

 

Ja osobiście nie znam konsolowego programu, z którego dałoby się "wygrepować" aktualne obciążenie interfejsu. Czegoś na kształt solarisowych *stat'ów.

Odnośnik do komentarza
Udostępnij na innych stronach

Widzisz, kolego, sam sobie strzeliłeś gola.

 

http://rtfm.killfile.pl/#cel

 

 

 

Dlaczego nie napisałeś tego w pierwszym poście? Moim zdaniem, bez jakiejś arytmetyki, nie da się "wyłuskać" aktualnego obciążenia interfejsu, bez SNMP. Owszem, są programy typu iftop czy iptraf, ale to są programy interaktywne.

 

Ja osobiście nie znam konsolowego programu, z którego dałoby się "wygrepować" aktualne obciążenie interfejsu. Czegoś na kształt solarisowych *stat'ów.

Ja nie uważam że to był stracony czas bo się nauczyłem czegoś nowego. Ale jak będzie trzeba zrobię to jeszcze raz z SNMP :) Ale może podpowiesz mi co sądzisz o tym ? To jest bez SNMP.

http://www.zoozool.pl/mrtg/

tu jest cześć skryptu mrtg.cfg

#ETHERNET eth0
Target[eth0]: `/etc/mrtg/eth eth0`
Options[eth0]: growright,noinfo,nobanner,noborder,,nolegend,bits
## 10 MB/s
MaxBytes[eth0]: 1250000
Unscaled[eth0]: ymwd
#ShortLegend[eth0]: B/s
YLegend[eth0]: Bitow na sekunde
LegendO[eth0]: Wyslano:
LegendI[eth0]: Przyjeto:
Title[eth0]: Obciazenie lacza na eth0
PageTop[eth0]: <h1>Obciazenie lacza na eth0</h1>

 

i skrypt eth - podaje w całości z haszami

#!/bin/sh
#case "$1" in "$*")
#input=`cat /proc/net/dev |grep eth0 |tr ":" " " |awk '{print$10}'`
#output=`cat /proc/net/dev |grep eth0 |tr ":" " " |awk '{print$2}'`

    input=`cat /proc/net/dev |grep $1 |tr ":" " " |awk '{print$10}'`
    output=`cat /proc/net/dev |grep $1 |tr ":" " " |awk '{print$2}'`

echo $output
echo $input
#;;
#esac

# wypisz jak dugo system ju dziaa
uptime | sed -e 's/^.*up *//g' -e 's/, *[0-9] *u.*$//g'

# wypisz co monitorujesz
# hostname

Zobacz i powiedz co o tym sądzisz. Czy ten skrypt robi obciążenie karty i daje te parametry co trzeba ? Mnie to działa ale chyba nie tak jak powinno.

Nie wiem co te instrukcje robią. Nie znam się za bardzo na tych skryptach.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Ja nie uważam że to był stracony czas bo się nauczyłem czegoś nowego. Ale jak będzie trzeba zrobię to jeszcze raz z SNMP. Ale może podpowiesz mi co sądzisz o tym ? To jest bez SNMP.

 

Nigdzie nie napisałem, że czas był stracony. Łatwiej byłoby dojść do celu, gdyby był znany od początku ;)

 

Zobacz i powiedz co o tym sądzisz. Czy ten skrypt robi obciążenie karty i daje te parametry co trzeba ? Mnie to działa ale chyba nie tak jak powinno.

Nie wiem co te instrukcje robią. Nie znam się za bardzo na tych skryptach.

 

Nie daje. Moja odpowiedź wcześniej nie wzięła się z powietrza. Szukałem programów, oraz miejsc w systemie skąd możnaby było to wyciągnąć. I nie ma.

 

To co uzyskujesz to wyniki kumulatywne. Żeby uzyskać to co chcesz, trzeba:

 

1. Odczytać poprzednią ilość bajtów które przeszły przez interfejs

2. Policzyć obciążenie przez np:

2.1 Zliczenie bajtów w jednostce czasu

2.2 Odjęcie od poprzednio odczytanej wartości

2.3 Podzielenie różnicy przez jednostkę czasu

3. Zapisać ilość bajtów które przeszły przez interfejs

 

Żeby uzyskać jakieś miarodajne wyniki, należałoby próbkować interfejs przez ok. 5 sekund (IMHO). Kwestia jednostek to sprawa drugorzędna.

 

Niektóre rzeczy da się zrobić bardzo łatwo omijając SMNP. Inne jak widać nie.

 

p.s. A stronka spoko.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

×
×
  • Dodaj nową pozycję...