Tag: software

IPMI sensor thresholds anpassen

eines meiner supermicro motherboards mit integriertem IPMI onboard moser seit wochen rum, dass die BIOS batterie leer sein sollte. ist sie nicht… ich hab sie schon zweimal getauscht und mich mit einem messgeraet von dem zustand der batterie (CR2032 knopfzelle) ueberzeugt. das bekloppte IPMI ding schickte mir zwischen einer handvoll und einhundert emails am tag, dass da was nicht stimmt. mit onkel google habe ich nichts vernuenftiges gefunden, was die ursache sein koennte. diverse resets aller art, initialisieren des ipmi moduls und ruecksetzen auf werkseinstellung hat nichts gebracht. das problem, welches da auftritt, ist eine quasi schwankende batteriespannung. und jedesmal, wenn ein gewisser grenzwert uunterschritten wird, gibts einen alarm.

normalerweise haben diese batterien um die 3,2 volt. dieses board misst aber immer irgendwas zwischen 2,1 und 3,2 volt. da sonst keine maengel feststellbar sind, habe ich kurzerhand die grenzwerte fuer die batterie (sensor VBAT) angepasst. damit ichs nicht wieder lange suchen muss, hier einfach mal verewigt. das tool der wahl heisst “ipmitool”. so werden die werte gesetzt:

root@node:~# ipmitool sensor thresh "VBAT" lnr "1.992"
Locating sensor record 'VBAT'...
Setting sensor "VBAT" Lower Non-Recoverable threshold to 1.992

root@node:~# ipmitool sensor thresh "VBAT" lcr "2.016"
Locating sensor record 'VBAT'...
Setting sensor "VBAT" Lower Critical threshold to 2.016

root@node:~# ipmitool sensor thresh "VBAT" lnc "2.016"
Locating sensor record 'VBAT'...
Setting sensor "VBAT" Lower Non-Critical threshold to 2.016

und so schaut man sich die eingestellten und gemessenen werte an:

root@node:~#  ipmitool sensor get "VBAT"
Locating sensor record...
Sensor ID              : VBAT (0x50)
 Entity ID             : 7.1 (System Board)
 Sensor Type (Threshold)  : Voltage (0x02)
 Sensor Reading        : 2.640 (+/- 0) Volts
 Status                : ok
 Nominal Reading       : 3.312
 Normal Minimum        : 2.976
 Normal Maximum        : 3.648
 Upper non-recoverable : 3.696
 Upper critical        : 3.672
 Upper non-critical    : 3.648
 Lower non-recoverable : 1.992
 Lower critical        : 2.016
 Lower non-critical    : 2.016
 Positive Hysteresis   : 0.024
 Negative Hysteresis   : 0.024
 Minimum sensor range  : Unspecified
 Maximum sensor range  : Unspecified
 Event Message Control : Per-threshold
 Readable Thresholds   : lnr lcr lnc unc ucr unr
 Settable Thresholds   : lnr lcr lnc unc ucr unr
 Threshold Read Mask   : lnr lcr lnc unc ucr unr
 Assertion Events      :
 Assertions Enabled    : lnc- lcr- lnr- unc+ ucr+ unr+
 Deassertions Enabled  : lnc- lcr- lnr- unc+ ucr+ unr+

APC AP7920 + ssh: no matching key exchange method found

“professionelles” euqipment fuer betrieb in rechenzentren ist ja auch eine art IoT. und genauso schlecht wie bei billigen plaste gadgets ist auch die software darauf. (naja ok, vielleicht nicht ganz so schlecht und der fokus liegt auch auf nuetzlichen features als auf design, aber wenn so ein geraet ssh kann, sollte man auch bei einer firmware von 2016 eine vernuenftige ssh implementierung erwarten.)

auf jeden fall gehts hier um eine PDU von APC mit der modelnummer AP7920. da meckert mein ubuntu beim versuch mich damit ueber ssh zu verbinden:

no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 

…dann muss man dem ssh client halt sagen:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 1.2.3.4

..damit das funktioniert

openvpn gui und die adminrechte

notiz an mich selbst, weil ich schon ein paar mal drauf reingefallen bin.

die openvpn gui und windows 7… user hat zwar adminrechte, ist mitglied der gruppen administratoren, “Netzwerkkonfigurations-Operatoren” und noch irgendeiner openvpn gruppe (deren namen ich vergessen habe)…. geht trotzdem nicht. abhilfe schafft dieser haken:

speicherkunde

ein yottabyte kannte ich schon… im internet gibt es beeindruckende vergleiche…

In 2010, it was estimated that storing a yottabyte on terabyte-size disk drives would require one billion city block-size data-centers, as big as the states of Delaware and Rhode Island combined

…wem das nicht reicht und wer den weihnachtsmann ueberfordern will mit einem neuen Coperbyte NAS zu weihnachten… es geht noch weiter

das duerften dann ca. droelf ganze galaxien voll rechenzentren sein.

linux mint: /boot partition full vs. remove old kernels

auf all meinen rechnern mit mint drauf habe irgendwann das problem, dass die /boot partition voll laeuft. so nen richtigen kniff zum dauerhaften beheben habe ich noch nicht gefunden. aber dieser “einzeiler” hilft schonmal dabei:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

hier gefunden.

botschaften ueber webserver logfiles verteilen

manche leute sind echt kreativ. vorhin zufaellig bei der fehlersuche in den apache logfiles über solche eintrage gestolpert:

[20/Oct/2017:07:08:45 +0200] “GET / HTTP/1.1” 200 505 “AfD-Verbotsverfahren_JETZT!” “AfD-Verbotsverfahren JETZT!”

wie kommt man denn auf so eine idee? ist das, um die nerds zu erreichen, die nur am coden sind und nix vom weltgeschehen mitbekommen? lustig…

ceph basic monitoring

damits ueberhaupt mal irgendwie gemonitored wird, habe ich die ceph-nagios-plugins von github installiert.

damit die nagios plugins als user nagios ausgefuehrt werden duerfen, erstellt man einen extra keyring:

ceph auth get-or-create client.nagios mon 'allow r' > /etc/ceph/ceph.client.nagios.keyring

die check_ceph_* plugins kommen in meinem falle (weil opsview statt plain nagios) nach /usr/local/nagios/libexec/
die einzelnen commands muessen dem opsview agent bekannt gemacht werden, in dem man (exemplarisch) folgendes in die datei /usr/local/nagios/etc/nrpe_local/override.cfg schreibt:

command[check_ceph_health]=/usr/local/nagios/libexec/check_ceph_health $ARG1$

ansonsten kommts zu diesem fehler:

NRPE: Command ‘check_ceph_health’ not defined

und damit der user nagios auch darauf zugreifen darf, muss der keyring mit berechtigungen und entsprechendem besitzer versehen werden.

chmod 660 /etc/ceph/ceph.client.nagios.keyring
chown ceph.ceph /etc/ceph/ceph.client.nagios.keyring 

den user nagios noch in die gruppe ceph aufnehmen:

usermod -a -G ceph nagios

eine besonderheit noch, da ich ceph von der proxmox installation verwende. die ceph.conf unterhalb von /etc/pve darf nur vom user root und der gruppe www-data gelesen werden. daher nehme ich den user nagios noch in die www-data gruppe auf.

usermod -a -G www-data nagios 

ansonsten kommts zu so einem fehler:

Error initializing cluster client: PermissionDeniedError(‘error calling conf_read_file’,)

und damits greift, noch einmal den opsvie agent neu starten.

/etc/init.d/opsview-agent restart 

und funktioniert… hier die beispiel benachrichtigungen:

mysql replikation “frisch” machen

ich hatte den fall, dass mysql master und slave bei eingerichteter replikation ein paar tage nicht syncen konnten. danach wollte sie auch nicht mehr. um den zustand zu beheben, hier kurz und knapp die schritte beschrieben…

auf dem master:

RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

den output des kommandos notieren! die session offen lassen, da sonst das read lock aufgehoben wird.

mysqldump -u root -p --all-databases > /tmp/mysqldump.sql

danach den read lock wieder aufheben

UNLOCK TABLES;

das dump file dann z.b. per scp auf den slave kopieren

auf dem slave:

STOP SLAVE;

den dump einspielen:

mysql -uroot -p < mysqldump.sql

master und slave logs syncen:

RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;

...natuerlich mit den werten, die man sich vom master kopiert hat.
danach noch den slave starten:

START SLAVE;

schauen, ob alles fine ist:

SHOW SLAVE STATUS;

irgendwo muss dann stehen:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

That's it!

fehlende authorization header mit mod_fcgid

na bis ich das gerafft hab, warum diese werte nicht beim php skript ankamen…

die loesung gefunden in den kommentaren der hilfe zu php und http-auth

Workaround for missing Authorization header under CGI/FastCGI Apache:

SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

Now PHP should automatically declare $_SERVER[PHP_AUTH_*] variables if the client sends the Authorization header.

…ab damit in die .htaccess und schon hats funktioniert

update:
ein sehr interessanter artikel zu php und http auth auf administrator.de.

mdadm: array incative

nach der neuinstallation eines “fremden” rootservers war das software raid1 nicht so ganz in takt.

~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : inactive sda3[0](S)
      8388544 blocks

md0 ist inaktiv und das device als spare (S) gekennzeichnet. warum? keine ahnung. wie kriegt mans weg? so:

mdadm --run /dev/md0
mdadm --add /dev/md0 /dev/sdb3

und schon faengts an zu syncen…

~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb3[2] sda3[0]
      4194240 blocks [2/1] [U_]
      [=>...................]  recovery =  9.3% (393344/4194240) finish=0.3min speed=196672K/sec