Linux.sensors: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Wir wollen die CPU Temperatur ermitteln und über das SNMP Protokoll einem Überwachungsserver lesbar machen.
== Temperaturen überwachen mit sensors ==
== Temperaturen überwachen mit sensors ==


1) Paket "sensors" muss installiert sein
* Paket "sensors" muss installiert sein
2) Folgender "Setup" muss durchlaufen werden:
 
Zitat [http://www.linux-fuer-alle.de/doc_show.php?docid=243]
 
Im Prinzip löscht man einfach nur das Kernelmodul "i2c_sensor" mit
 
  modprobe i2c_sensor


Danach führt man das Script  
Danach führt man das Script  
Zeile 14: Zeile 9:
   sensors-detect  
   sensors-detect  


aus. Bei dem Script habe ich eigentlich nur solange die Enter-Taste gedrückt, bis es durchgelaufen war. Natürlich habe ich die Ausgaben gelesen, aber ich wüsste nicht, warum ich schlauer sein sollte, als die Leute, die die Software entwickelt und sinnvolle Werte angenommen haben. Das Script erzeugt die Datei /etc/sysconfig/lm_sensors. Ist dies getan und hat das Script entsprechende Chips gefunden und dort eingetragen, dann kopiert man wie angegeben das Startscript rüber
aus. Bei dem Script habe ich eigentlich nur solange die Enter-Taste gedrückt, bis es durchgelaufen war. Natürlich habe ich die Ausgaben gelesen, aber ich wüsste nicht, warum ich schlauer sein sollte, als die Leute, die die Software entwickelt und sinnvolle Werte angenommen haben. Das Script erzeugt die Datei /etc/sysconfig/lm_sensors.  


  cp /usr/share/doc/packages/sensors/prog/init/lm_sensors.init.suse /etc/init.d/lm_sensors  
<code>
   
chkconfig --add lm_sensors
  ## openSuSE 11
  rclm_sensors start
  cp /etc/sysconfig/lm_sensors /etc/init.d/lm_sensors
</code>


Wer möchte, dass nach jedem Neustart die Möglichkeit besteht, CPU-Temperatur und andere Messwerte zu Überwachen, der sollte noch
nun kann durch Aufruf von  
 
  chkconfig --add lm_sensors
  rclm_sensors start
 
kann durch Aufruf von  


<code>
   sensors  
   sensors  
</code>


der Gesundheitszustand der Hardware abgefragt werden.
der Gesundheitszustand der Hardware abgefragt werden.
=== Nur ein Ausflug: Temperaturen der Festplatten ===


Untersützt die Festplatte die "Smart" Technologie, kann man in der Regel mit diesem Befehl die Temparatur auslesen:
Untersützt die Festplatte die "Smart" Technologie, kann man in der Regel mit diesem Befehl die Temparatur auslesen:
Zeile 36: Zeile 30:
   smartctl -s on -a -d ata /dev/sda | grep Temp
   smartctl -s on -a -d ata /dev/sda | grep Temp


== Systemparameter übers Netzwerk auslesbar machen mit snmpd ==


=== SNMP Verknüpfung ===
* Paket "snmp" muss installiert sein


==== Test ====
chkconfig --add snmpd
 
=== "public" für alle zugänglich machen ===
 
<code>
rocommunity public 192.168.115.0/24
</code>
 
ohne eine einschränkende 127.0.0.1 (=default) wird der Benutzerkreis erweitert.
 
rcsnmpd start
 
 
=== Test ===


<code>
<code>
Zeile 45: Zeile 53:
</code>
</code>


==== Umsetzen der symbolischen id in eine Numerische ====
=== Umsetzen der symbolischen id in eine Numerische ===


snmpwalk -On -v1 -c orgamon localhost LM-SENSORS-MIB::lmTempSensorsValue.1
snmpwalk -On -v1 -c orgamon localhost LM-SENSORS-MIB::lmTempSensorsValue.1
.1.3.6.1.4.1.2021.13.16.2.1.3.1 = Gauge32: 34000
.1.3.6.1.4.1.2021.13.16.2.1.3.1 = Gauge32: 34000


==== Abfrage der CPU Temperatur mit Indy.Delphi ====
=== Abfrage der CPU Temperatur mit Indy.Delphi ===


<code>
<syntaxhighlight lang="pascal">
   with IdSNMP1 do
   with IdSNMP1 do
   begin
   begin
Zeile 60: Zeile 68:
   
   
     Query.Clear;
     Query.Clear;
     Query.MIBAdd('1.3.6.1.4.1.2021.13.16.2.1.3.2','''''',ASN1_GAUGE);
     Query.MIBAdd('1.3.6.1.4.1.2021.13.16.2.1.3.2',",ASN1_GAUGE);
     Query.PDUType:=PDUGetRequest;
     Query.PDUType:=PDUGetRequest;
   
   
Zeile 70: Zeile 78:
     active:=false;
     active:=false;
   end;
   end;
</code>
</syntaxhighlight>

Aktuelle Version vom 22. Februar 2024, 19:26 Uhr

Wir wollen die CPU Temperatur ermitteln und über das SNMP Protokoll einem Überwachungsserver lesbar machen.

Temperaturen überwachen mit sensors

  • Paket "sensors" muss installiert sein

Danach führt man das Script

 sensors-detect 

aus. Bei dem Script habe ich eigentlich nur solange die Enter-Taste gedrückt, bis es durchgelaufen war. Natürlich habe ich die Ausgaben gelesen, aber ich wüsste nicht, warum ich schlauer sein sollte, als die Leute, die die Software entwickelt und sinnvolle Werte angenommen haben. Das Script erzeugt die Datei /etc/sysconfig/lm_sensors.

chkconfig --add lm_sensors
rclm_sensors start

nun kann durch Aufruf von

 sensors 

der Gesundheitszustand der Hardware abgefragt werden.

Nur ein Ausflug: Temperaturen der Festplatten

Untersützt die Festplatte die "Smart" Technologie, kann man in der Regel mit diesem Befehl die Temparatur auslesen:

 smartctl -s on -a -d ata /dev/sda | grep Temp

Systemparameter übers Netzwerk auslesbar machen mit snmpd

  • Paket "snmp" muss installiert sein
chkconfig --add snmpd

"public" für alle zugänglich machen

rocommunity public 192.168.115.0/24

ohne eine einschränkende 127.0.0.1 (=default) wird der Benutzerkreis erweitert.

rcsnmpd start


Test

snmpwalk -v1 -c public localhost LM-SENSORS-MIB::lmTempSensorsValue.1

Umsetzen der symbolischen id in eine Numerische

snmpwalk -On -v1 -c orgamon localhost LM-SENSORS-MIB::lmTempSensorsValue.1 .1.3.6.1.4.1.2021.13.16.2.1.3.1 = Gauge32: 34000

Abfrage der CPU Temperatur mit Indy.Delphi

  with IdSNMP1 do
  begin
    Host:='192.168.115.191';
    Community :='public';
    active:=true;
 
    Query.Clear;
    Query.MIBAdd('1.3.6.1.4.1.2021.13.16.2.1.3.2',",ASN1_GAUGE);
    Query.PDUType:=PDUGetRequest;
 
    if SendQuery then
      listbox4.Items.add( Reply.Value[0] )
    else
      listbox4.items.add('ERROR');
 
    active:=false;
  end;