Pomoc Syslog

hubert1977

Entry Technician
Q Associate
13 Kwiecień 2009
40
0
6
46
www.plik.info
QNAP
TS-459U
Ethernet
100 Mbps
Wersja oprogramowania Firmware: 4.2.6 Build 20170628
Model serwera: QNAP TS-459U+
jak używa sysloga

chciałem kontrolować stan drukarek
wydaje mi się że syslog odczytuje protokół snmp wiec była by tam informacja o stanie drukarki
nie wiem tylko jak dodać cokolwiek do tego sysloga - może macie jakiś opis lub ktoś jak dla dziecka napisze jak dodać urządzenie do sysloga
 
snmp i syslog to dwie różne sprawy

- syslog
to demon zbierający informacje od innych demonów/aplicacji/elementów systemowych i logujący je gdzieś tam w plikach, np. w /var/log/messages

- snmp
to protokół umożliwiający monitorowanie (np snmpget/snmpwalk) lub proste zarządzanie urządzeniami (snmpset)

snmp-bridge-mib snmpbulkwalk snmpd snmpdf snmpgetnext snmpkey snmpset snmptable snmptranslate snmptrapd snmpvacm snmpbulkget snmpconf snmpdelta snmpget snmpinform snmpnetstat snmpstatus snmptest snmptrap snmpusm snmpwalk

jeśli chcesz 'monitorować' stan drukarki, np. sprawdzać stan papieru, kolejki etc (jeśli drukarka wspiera snmp, jeśli pracuje tam lpd lub coś podobnego), to potrzebujesz narzędzia opartego o snmp. I to raczej albo dedykowanego (od producenta drukarki) albo jakiegoś 'kombajnu' (może niekoniecznie w stylu hp openview z wtyczkami) który zrozumie drukarkę. albo samemu napisać sobie skrypt który odpytuje określone snmp OIDy.

syslog to może Ci się przydać, jeśli drukarka potrafi wysłać informację np. o braku papieru albo awarii. do tego potrzebujesz włączyć sobie rsyslog w Control Panelu i w drukarce wskazać Twojego NASa jako remote syslog (czy jakkolwiek podobnie brzmi ta opcja w Twojej drukarce). Urządzenia potrafią wysyłać takie informacje także w postaci trapów snmp (patrz akapit wyżej o snmp) i być może nie musisz przejmować się syslogiem, o ile aplikacja snmp będzie mogła takie trapy przyjąć i odpowiednio je zinterpretować.

niestety nie znam QNAPa wystarczająco dobrze, by wskazać jakąś paczkę do obsługi snmp, która spełniałaby opisane wyżej funkcje. rsysloga włączyć w CP łatwo. Ale może można by uruchomić wirtualnego linuxa, darmowych i komercyjnych płatnych narzędzi do obsługi snmp jest multum.
 
wspaniale mi to opisałeś :) dziękuje - sądziłem że skoro na qnap nie ma softu który można wgrać to trzeba wykorzystać to co jest - ale jak się okazuje qnap wciąż jest bez tej nogi którą ja potrzebuje. napisałem sobie taki mini skrypt pod Windows

Kod:
echo Nazwa Drukarki:
snmpwalk -v 2c -c public -On 192.168.0.158 HOST-RESOURCES-MIB::hrDeviceDescr.1
echo uzyty toner
snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.6.1.1
echo pozostalo tonera (procent)
snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.9.1.1
echo ilosc wydrukow
snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.10.2.1.4.1.1
pause

który wyświetla mi co trzeba
tylko że to jest kasza na ekranie (ja wiem co widzę ale .... gdy tylko ja dla reszty rodziny to czarna magia (a dla mnie tylko troszeczkę jaśniejsza))

mam jeszcze jedną drukarkę i też chciałbym ją monitorować (interesują mnie głownie stanu tonera/atramentu)
czy naprawdę nie ma softu, który po wpisaniu odpowiednich adresów MIB dawałby to co trzeba, dla laików ?

może masz jakąś sugestię - co da sie uruchomić na qnapie bez kompilacji i dodawania czegoś dziwnego z netu.
 
Kod:
[~] # snmpget
No hostname specified.
USAGE: snmpget [OPTIONS] AGENT OID [OID]...

  Version:  5.4.2.1
  Web:      http://www.net-snmp.org/
  Email:    net-snmp-coders@lists.sourceforge.net

OPTIONS:
  -h, --help            display this help message
  -H                    display configuration file directives understood
  -v 1|2c|3             specifies SNMP version to use
  -V, --version         display package version number
SNMP Version 1 or 2c specific
  -c COMMUNITY          set the community string
SNMP Version 3 specific
  -a PROTOCOL           set authentication protocol (MD5|SHA)
  -A PASSPHRASE         set authentication protocol pass phrase
  -e ENGINE-ID          set security engine ID (e.g. 800000020109840301)
  -E ENGINE-ID          set context engine ID (e.g. 800000020109840301)
  -l LEVEL              set security level (noAuthNoPriv|authNoPriv|authPriv)
  -n CONTEXT            set context name (e.g. bridge1)
  -u USER-NAME          set security name (e.g. bert)
  -x PROTOCOL           set privacy protocol (DES|AES)
  -X PASSPHRASE         set privacy protocol pass phrase
  -Z BOOTS,TIME         set destination engine boots/time
General communication options
  -r RETRIES            set the number of retries
  -t TIMEOUT            set the request timeout (in seconds)
Debugging
  -d                    dump input/output packets in hexadecimal
  -D TOKEN[,...]        turn on debugging output for the specified TOKENs
                           (ALL gives extremely verbose debugging output)
General options
  -m MIB[:...]          load given list of MIBs (ALL loads everything)
  -M DIR[:...]          look in given list of directories for MIBs
  -P MIBOPTS            Toggle various defaults controlling MIB parsing:
                          u:  allow the use of underlines in MIB symbols
                          c:  disallow the use of "--" to terminate comments
                          d:  save the DESCRIPTIONs of the MIB objects
                          e:  disable errors when MIB symbols conflict
                          w:  enable warnings when MIB symbols conflict
                          W:  enable detailed warnings when MIB symbols conflict
                          R:  replace MIB symbols from latest module
  -O OUTOPTS            Toggle various defaults controlling output display:
                          0:  print leading 0 for single-digit hex characters
                          a:  print all strings in ascii format
                          b:  do not break OID indexes down
                          e:  print enums numerically
                          E:  escape quotes in string indices
                          f:  print full OIDs on output
                          n:  print OIDs numerically
                          q:  quick print for easier parsing
                          Q:  quick print with equal-signs
                          s:  print only last symbolic element of OID
                          S:  print MIB module-id plus last element
                          t:  print timeticks unparsed as numeric integers
                          T:  print human-readable text along with hex strings
                          u:  print OIDs using UCD-style prefix suppression
                          U:  don't print units
                          v:  print values only (not OID = value)
                          x:  print all strings in hex format
                          X:  extended index format
  -I INOPTS             Toggle various defaults controlling input parsing:
                          b:  do best/regex matching to find a MIB node
                          h:  don't apply DISPLAY-HINTs
                          r:  do not check values for range/type legality
                          R:  do random access to OID labels
                          u:  top-level OIDs must have '.' prefix (UCD-style)
                          s SUFFIX:  Append all textual OIDs with SUFFIX before parsing
                          S PREFIX:  Prepend all textual OIDs with PREFIX before parsing
  -L LOGOPTS            Toggle various defaults controlling logging:
                          e:           log to standard error
                          o:           log to standard output
                          n:           don't log at all
                          f file:      log to the specified file
                          s facility:  log to syslog (via the specified facility)

                          (variants)
                          [EON] pri:   log to standard error, output or /dev/null for level 'pri' and above
                          [EON] p1-p2: log to standard error, output or /dev/null for levels 'p1' to 'p2'
                          [FS] pri token:    log to file/syslog for level 'pri' and above
                          [FS] p1-p2 token:  log to file/syslog for levels 'p1' to 'p2'
  -C APPOPTS            Set various application specific behaviours:
                          f:  do not fix errors and retry the request
[~] #

takie coś się wyświetla
a może chodziło Ci o ten mój skrypt ?
wygląda tak
Kod:
# echo Nazwa Drukarki:
Nazwa Drukarki:
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 HOST-RESOURCES-MIB::hrDeviceDescr.1
.1.3.6.1.2.1.25.3.2.1.3.1 = STRING: HP LaserJet Professional P1606dn
[~] # echo uzyty toner
uzyty toner
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.6.1.1
.1.3.6.1.2.1.43.11.1.1.6.1.1 = STRING: "CE278A"
[~] # echo pozostalo tonera (procent)
-sh: syntax error near unexpected token `('
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.9.1.1
.1.3.6.1.2.1.43.11.1.1.9.1.1 = INTEGER: 40
[~] # echo ilosc wydrukow
ilosc wydrukow
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.10.2.1.4.1.1
.1.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 66448
[~] # pause
 
ah - ja nie o tym - sorka
pokaz wynik z tego

upload_2017-7-27_14-20-38.png
 
Kod:
[~] #
[~] # Echo off
-sh: Echo: command not found
[~] # #snmpwalk -v 2c -c public 192.168.0.158
[~] # echo Nazwa Drukarki:
Nazwa Drukarki:
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 HOST-RESOURCES-MIB::hrDeviceDescr.1
.1.3.6.1.2.1.25.3.2.1.3.1 = STRING: HP LaserJet Professional P1606dn
[~] # echo uzyty toner
uzyty toner
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.6.1.1
.1.3.6.1.2.1.43.11.1.1.6.1.1 = STRING: "CE278A"
[~] # echo pozostalo tonera (procent)
-sh: syntax error near unexpected token `('
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.11.1.1.9.1.1
.1.3.6.1.2.1.43.11.1.1.9.1.1 = INTEGER: 40
[~] # echo ilosc wydrukow
ilosc wydrukow
[~] # snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.10.2.1.4.1.1
.1.3.6.1.2.1.43.10.2.1.4.1.1 = Counter32: 66448
[~] # pause
[~] #
[\code]
 
Ja tam jeszcze wiem na szczęście co widzę - ale dla brata, który jest całkiem noga w temacie tego rodzaju zapis staje się koszmarkiem
drukarka atramentowa ma 4 tonery wiec co linia pisze coś innego o stanie tonera. wyłapać trudno co jest co
jest jakiś program który by to wszytko obrobił ?
po prostu nie chciałbym widzieć adresu MIB tylko sam wynik

niech to sie wyświetla dla ludzi a nie dla komputerów

masz jakiś pomysł jak taki ciąg obrobić ?
 
po prostu nie chciałbym widzieć adresu MIB tylko sam wynik

awk?

Kod:
snmpwalk -v 2c -c public -On 192.168.0.158 SNMPv2-SMI::mib-2.43.10.2.1.4.1.1 | awk '{print $4}'

$4 to czwarta kolumna zakładając standardowy znak odstępu między kolumnami (tj spacja)

awk znajdziesz w wielu narzędziach dla Windy, m.in. GnuWin32
Gawk for Windows

(w QNAPie oczywiście masz wbudowanego awk'a)
 
pozwolę się wtrącić...
widziałem, że na dodatkowym repozytorium do qnapa (qnapclub.eu) jest paczka cacti, można tym elegancko zbierać dane po snmp. Wiem, że to kombajn, ale można dane generować nawet w formie wykresów.
 
pozwolę się wtrącić...
widziałem, że na dodatkowym repozytorium do qnapa (qnapclub.eu) jest paczka cacti, można tym elegancko zbierać dane po snmp. Wiem, że to kombajn, ale można dane generować nawet w formie wykresów.

wow. nieźle. sam chętnie potestuję.

natomiast ostrzegam w jednej sprawie... tak, cacti to kombajn, korzystający z PHP, serwra WWW, baz danych. Nastawiony przede wszystkim na urządzenia sieciowe (rutery, switche.. u mnie także zarządzalne zasilanie /NPS/NPU/ czy serwery /cpu, procesy, userzy/), choć dzięki wtyczkom, skryptom, gotowymi paczkami wystruganymi pod konkretne rozwiązania można monitorować nim absolutnie wszystko, łącznie z wilgotnością ziemi w ogródku.

jak się zna OIDy i wie, jak odczytywać tablice/indeksy (czasem informacja nie jest wprost do odnalezienia przez snmpget, trzeba odczytać tablicę X żeby znaleść indeks do interfejsu Z i dopiero wtedy można odczytać parametr Y z tego interfejsu)

Użycie cacti do sprawdzenia stanu toneru przypomina nieco użycie koparki do skopania ogródka. albo czołgu do zestrzelenia komara.

nie wiem, czy nie prościej byłoby- idąc tym tropem- znaleźć MRTG lub RRDTool i napisać sobie prosty skrypt odczytujący OIDa i generujący PNG, którego potem można by wrzucić do udostępnianego folderu.

Nawet odpalenie snmpget w cronie i zapisanie wyniku do pliku tekstowego (wraz z sygnaturą czasową) a potem odpalenie Excela do zrobienia wykresu wydaje się być prostrze niż skonfigurowanie Cacti. ;)
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. syslog