Elastic Search Grundlagen

ElasticSearch ist eine Suchsoftware, die alle Dateiformate dursuchen kann. Der große Vorteil ist die enorme Geschwindigkeit und die erweiterten Funktionen:

Inhaltsverzeichnisse aller Dateien können auf verschiedene Shards/Partitionen verteilt werden, welche wiederrum auf unterschiedlichen Elasticsearch-Knoten gehostet werden können

Die nötige Lastverteilung und das Routing erfolgt automatisch

HP Enterprise Feature Business Copy BC

Spiegelung von Daten auf Storageebene.

Es gibt Pri und Secondary

Eine Synchronisierung geht immer nur in eine Richtung konsistent

Es wird ausschließlich auf Primary geschrieben

Ähnlich DRBD (Netzwerk Raid1)

Eine täglich angelegte Business-Copy kann im Fehlerfall als kurzfristiges und schnelles Backup für einen Restore dienen.

Ein Restore von Tape dauert unter Umständen mehrere Tage – die Bereitstellung einer Business Copy kann in unter einer halben Stunde erfolgen.

Snmp Absenderfälschung

#!/bin/bash

# Idea from http://www.net-snmp.org/wiki/index.php/TUT:source_spoofing
TRAP_RECEIVER="192.168.140.211"
TRAP_FIXED_PARAMS="-v 1 -c public"
SRC=$1
STRING=$2
iptables -t nat -A POSTROUTING -d $TRAP_RECEIVER -p udp --dport 162 -j SNAT --to $SRC
snmptrap $TRAP_FIXED_PARAMS $TRAP_RECEIVER '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "$STRING"
sleep 2
iptables -t nat -D POSTROUTING -d ${TRAP_RECEIVER} -p udp --dport 162 -j SNAT --to $SRC

Und dann von der Konsole abfeuern mit:

for i in {0..23}; do /tmp/spoof-snmp.sh 192.168.66.248 input$i:0; done

Zarafa Port 237 – SSL – SSL_accept() failed in soap_ssl_accept() :

Obige Fehlermeldung kann auftreten, wenn man selbstsignierte Zertifikate verwendet und das server_ssl_ca_file identisch zum server_ssl_key_file ist.

Wie bringt man Zarafa bei, dass man sich als Client via SSL/TLS verbinden möchte?

In die /etc/zarafa/server.conf folgendes:

server_ssl_ca_file = /etc/zarafa/ssl/demoCA/cacert.pem # Zertifizierungsstellen-Zertifikat
server_ssl_key_pass = test # definiertes Kennwort für Server-Zertifikat inkl. Schlüssel
server_ssl_port = 237
server_ssl_enabled = yes
server_ssl_key_file = /etc/zarafa/ssl/server.pem # Server-Zertifikat inkl. Schlüssel

Wie kommt man jetzt jedoch zu den nötigen Zertifikaten?
ich verweise auf http://doc.zarafa.com/7.1/Administrator_Manual/en-US/html-single/#_ssl_connections_and_certificates

Am Anfang des Skripts sollte man noch die Laufzeit durch Multiplikatoranpassung ändern.

RAM / Swap-Benutzung in Betriebssystemen

Ein Betriebssystem besitzt eine feste Anzahl von Ram und zusätzlichen Auslagerungsspeicher auf Festplatte.

Unter Linux nennt sich dieser SWAP unter Windows ist es der Auslagerungsspeicher – pagefile.sys

In einem perfekt abgestimmten System, wo immer mehr RAM als benötigt verfügbar ist, werden niemals Daten aus dem RAM ausgelagert.

Das System nutzt den Arbeitsspeicher für unterschiedliche Dinge.

Der Arbeitsspeicher wird unter Linux in Pages – gleichgroße Blöcke mit einigen Kilobyte unterteilt. Benötigt eine Anwendung mal mehr, mal weniger Speicher, werden Blöcke in den Speicher verschoben oder von dort entfernt.

Wenn eine Anwendung mehr Speicher benötigt, als vorhanden ist, werden ältere – bereits seit Längerem nicht mehr genutzt Blöcke aus dem RAM entfernt. Benötigt eine Anwendung Blöcke, die zuvor aus dem Ram entfernt wurden, wird durch erneutes Entfernen von Blöcken Platz geschaffen, und die nötigen Blöcke für die Anwendung wieder in den Speicher verschoben.

Der Dateisystem-Cache, Programmcode und gemeinsam verwendete Bibliotheken besitzen immer eine Quelle im Dateisystemen. Existieren also lesbar im Dateisystem. Der davon belegte Speicher kann also jederzeit für andere Dinge verwendet werden. Besteht erneut Bedarf, liest das Betriebssystem die Daten einfach erneut von Platte.

Temporäre Anwendungsdaten und Stack-Space liegen nicht im Dateisystem vor. Die Rede ist deshalb hier von anonymen Pages – da Sie nicht im Dateisystem existieren.

Diese Pages/Blöcke müssen zwingend für die Ausführungszeit der Anwendung im RAM bleiben, da sie nicht aus dem Dateisystem wiederhergestellt werden können. Es sei denn, es gibt einen alternativen Speicherort für diese Pages/Blöcke. Den alternativen Speicherort nennt man Auslagerungsspeicher also Swap.

Swap wird nur für anonyme Pages verwendet. Dateisystemcache, Programmcode und gemeinsam verwendete Bibliotheken werden niemals in den Swap ausgelagert.

Somit kann eine Swap-Nutzung auch Vorteile besitzen. Wenn z.B. länger ungenutzte Laufzeitdaten (z.B. Anwendung läuft nur sporadisch) die Daten in den Swap verschiebt und der RAM für aktuell laufende Anwendungen verwendet werden kann.

    Systemindikatoren:

TOP Kein Swap-Space in Verwendung.

GUT Space in Verwendung – fast keine Last jedoch auf SWap-Partition. Das heißt, es wurden Daten in SWAP ausgelagert, bei wenig I/O werden diese jedoch nicht angefordert bzw. es werden wenig neue in SWAP geschrieben

OK SWap in Verwendung und regelmäßiger I/O auf Swap. CPU Wait kann auftreten, durch das swapping – System ist aber weiterhin stabil/performant.

NICHT OK – Zu viel swapping – hoher I/O auf Swap Partition. CPU verliert viel Zeit bei Sys oder Wait -

NICHT OK – zu wenig Swap verfügbar – System läuft flüssig aber für neue Programme ist kein virtueller Speicher mehr verfügbar.

Der wert vm.swapiness (Angabe Prozentsatz – Default 60) definiert, wie aggressiv geswapped werden soll.

Bei Speicherengpass werden dann je nach Wert nur ein geringer oder hoher Teil temporärer Anwendungsdaten und Stack-Spaces in den Swap verschoben.

Disk IO Überwachung Linux – /proc/diskstats

Das schlimmste was einem System passieren kann, ist auf die Platten warten zu müssen.

Platten lesen oder schreiben entweder zu langsam Daten. In beiden Fällen muss dann die CPU warten.

Dies sieht man schön an der Ausgabe von iostat:

Wichtige Spalten sind:

r/s = device reads per second

w/s = device writes per second

Je nach Wert kann somit erkannt werden, ob die Platten lesend oder schreibend unter Last sind.

iostat greift lediglich Werte von /proc/diskstats ab und bereitet sie auf.

Die Felder sind hier gut beschrieben:

https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats

Exemplarisch ein REchenbeispiel von pt-diskstats:

Reads / sekunde ergeben sich aus

Reads completed Successfully / Time Spent Reading (MS)

ergibt also Average Number of Reads per Second

Referenzen:

https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats

http://www.percona.com/doc/percona-toolkit/2.1/pt-diskstats.html

Reallocated_Sector_Ct – Trügerischer Smart-Wert

Heute fiel mir auf einem System im Kernel-Ringbuffer folgendes Problem auf:

[17485760.323906] ata4.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
[17485760.323948] ata4.00: irq_stat 0x40000001
[17485760.323963] ata4.00: failed command: READ DMA EXT
[17485760.323986] ata4.00: cmd 25/00:00:80:f0:59/00:04:15:00:00/e0 tag 0 dma 524288 in
[17485760.323990] res 51/40:f0:70:f2:59/00:01:15:00:00/e0 Emask 0x9 (media error)
[17485760.324057] ata4.00: status: { DRDY ERR }
[17485760.324070] ata4.00: error: { UNC }
[17485760.333361] ata4.00: configured for UDMA/133
[17485760.333414] sd 3:0:0:0: [sdb] Unhandled sense code
[17485760.333420] sd 3:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[17485760.333428] sd 3:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
[17485760.333438] Descriptor sense data with sense descriptors (in hex):
[17485760.333444] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
[17485760.333462] 15 59 f2 70
[17485760.333471] sd 3:0:0:0: [sdb] Add. Sense: Unrecovered read error - auto reallocate failed
[17485760.333484] sd 3:0:0:0: [sdb] CDB: Read(10): 28 00 15 59 f0 80 00 04 00 00
[17485760.333501] end_request: I/O error, dev sdb, sector 358216304
[17485760.333561] ata4: EH complete

Ein kurzer Smart-Durchlauf liefert folgende trügerische Informationen:

SMART overall-health self-assessment test result: PASSED

SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 3 Short offline Completed without error 00% 10042 -

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
5 Reallocated_Sector_Ct 0x0033 099 099 036 Pre-fail Always - 58

In Fett markiert sieht man jedoch den eigentlichen Wert (Raw Value) das heißt, es wurden bereits 58 defekte Sektoren auf der Platte erkannt und durch Reserve-Sektoren ersetzt. Dieser hohe Wert von 58 macht sich auch bei der Performance bemerkbar – jedesmal muss beim Lesen/Schreiben eines defekten Sektors zum Ersatzsektor gesprungen werden.

Höchste Zeit also, die Platte zu tauschen.

Monitoring VSphere with Zabbix and vCLI

First of all, the items that can be fetched with zabbix from vsphere servers are very limited.

https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/simple_checks/vmware_keys

If you want to fetch additional items from ESX-Servers, you can use the vSphere CLI – a perl toolkit with several handy tools.

https://my.vmware.com/web/vmware/details?downloadGroup=VCLI_PERL50U1_OSS&productId=242

One of the tools i can recommend from the toolkit is performance.pl

You can fetch almost all available items from virtual machines and feed it to zabbix. We are fetching the cpu readystates to monitor the machines and decided whether they are overcommitted.