2

Nyt navn og koncept

-

Ja så døde mikjaer.dk … det irriterede mig at folk blev ved med at rode rundt i mikjaer.dk og mikjaer.com – jeg syntes det er ret åbentlyst at det er to forskellige websites men det er åbenbart ikke klart for enhver. Derfor introducerer jeg nu bodyhacking.dk og fjerner alt fra bloggen som ikke handler om bodyhacking.

Jammen hvad så med alle de nørdede indlæg?
Jo frygt ej … dem med noget indhold ryger selvfølgelig over på mikjaer.com – de passer også bedre i konteksten der end de gør her, de indlæg som hverken passer ind her eller der er der sku nok ikke nogen der kommer til at savne alligevel ;)

1

Velkommen til 2012

-

Velkommen til nye muligheder, nye mål og nye bekendtskaber. Her vil du ikke høre en masse sentimentalt vås om sidste år, jeg vil meget hellere fokusere på hvad der kommer.

Jeg har fejret iaften med nogle gode venner og noget god mad (okay … næste gang piller vi nettet af skinken FØR vi glasserer den), jeg bruger ikke nytårsfortsæt det er noget pjat og fungerer udelukkende som en undskyldning for at man kan stoppe i hovedet i julemåneden, jeg har tabt 15kg i 2011, jeg kan godt leve med at jeg nu har taget de 3 af dem på igen … de er nemlig væk inden Januar er omme :-)

Når det er sagt kan jeg jo godt have nogle målsætninger for år 2012, og nogen af dem er her:

  • Komme under 150kg
  • Gennemføre 1 år af min professionsbachelor
  • Tage kørekort (igen … og vel og mærke passe bedre på det næste)

3 klokkeklare og veldefinerede mål, derudover har jeg nogle lidt mere løst definerede ønsker:

  • Få mere tid til at hygge med vennerne.
  • Få mere kul på firmaerne, men med mindre knoklen og stress.
  • Få mere tid til musikken :-)

And most important … be awesome!

Happy new years, 2012!

0

Nagios module for monitoring the load on APC PDU Through SNMP

-

The script is made to work without the MIB’s installed and designed to use the threshold values set in the pdu itself, if you want to change this it should be fairly simple to understand and alter the code.

The code is release as is, under the GNU GPL v2 License, with no guarantee whatsoever:

#!/usr/bin/php
<?php
# Copyright (C) Mikkel Mikjaer Christensen, 2011
# Released under GNU GPL v2

DEFINE ("PDU_CURRENT_LOAD",             "SNMPv2-SMI::enterprises.318.1.1.12.2.3.1.1.2.1");
DEFINE ("PDU_OVERLOAD_TRESHOLD",        "SNMPv2-SMI::enterprises.318.1.1.12.2.2.1.1.4.1");
DEFINE ("PDU_NEAR_OVERLOAD_TRESHOLD",   "SNMPv2-SMI::enterprises.318.1.1.12.2.2.1.1.3.1");
DEFINE ("PDU_LOW_LOAD_TRESHOLD",        "SNMPv2-SMI::enterprises.318.1.1.12.2.2.1.1.2.1");

if (!@$argv[1])
{
        die("Usage: check_apc.php &lt;hostname&gt;\n");
}
else
{
        $hostname = $argv[1];
}

function getvalue($id)
{
        global $hostname;

        if (!$ret = @snmpget($hostname, 'public', $id))
        {
                die("CRITICAL: No response from pdu: $hostname\n");
                die(2);
        }
        if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
                die("CRITICAL: No response from pdu: $hostname\n");
                die(2);
        }
        else
        {
                $r = preg_split("/: /",$ret);
                return $r[1];
        }
}

$current=(getvalue(PDU_CURRENT_LOAD)/10);
$low=getvalue(PDU_LOW_LOAD_TRESHOLD);
$overload=getvalue(PDU_OVERLOAD_TRESHOLD);
$warning=getvalue(PDU_NEAR_OVERLOAD_TRESHOLD);

if (false)  // Change to true for debug
{
        print "Curent load            : $current A\n";
        print "Lowload threshold      : $low A\n";
        print "Overload threshold     : $overload A\n";
        print "Near overload treshold : $warning A\n";
}

if ($current < $low)
{
        print("CRITICAL: PDU Underloaded by ".($low-$current)." A, total: $current A\n");
        die(2);
} else if ($current > $overload)
{
        print("CRITICAL: PDU Overloaded by ".($current-$overload)." A, total: $current A\n");
        die(2);
} else if ($current > $warning) {
        print("WARNING: PDU Within ".(($current-$overload) * -1)." A of overload, total: $current A\n");
        die(1);
} else {
        print("OK: Current load $current A\n");
        die(0);
}

?>
0

Overvågning af VMware ESXi DIY style

-

VMware har flyttet authorized_keys til “/etc/ssh/keys-root/authorized_keys” smid din ssh nøgle herind i, og lav et script der parser output fra /bin/cim-diagnostic.sh

Jeg har lavet et eksempel på et script her som hiver storage-data ud:

<pre><?

## Hent data

exec(“ssh root@vmware.eksempel.com enum_instances VMware_StorageExtent”,$file);

$file = implode(“\n”,$file);
## Pil data fra hinanden
$a=preg_split(“/\n\n/m”,$file);

foreach ($a as $k=>$v)
{
$t=preg_split(“/\n/m”,$v);

foreach ($t as $k2=>$v2)
{
$t2 = preg_split(“/=/”,$v2);
$key=preg_replace(“/ /”,”",$t2[0]);
if ($key)
if ($t2[1] != ” (NULL)”)
$n[$key]=$t2[1];
}
if ($n)
$a2[]=$n;
}

## Goer noget med data

print_r($a2);

?>

Når scriptet udføres, og der vel og mærke er sat ssh  nøgler op, vil scriptet generere flg output:

Array
(
    [0] =&gt; Array
        (
            [HPVC_SAStorageExtent.DeviceID] =&gt; "HPVC_SAStorageExtent-MM1000EBKAF-9XG0LMK0",CreationClassName
            [SystemCreationClassName] =&gt;  SMX_ComputerSystem
            [SystemName] =&gt;  vmware.eksempel.com
            [CreationClassName] =&gt;  HPVC_SAStorageExtent
            [DeviceID] =&gt;  HPVC_SAStorageExtent-MM1000EBKAF-9XG0LMK0
            [Name] =&gt;  9XG0LMK0
            [Primordial] =&gt;  true
            [NumberOfBlocks] =&gt;  1953525168
            [BlockSize] =&gt;  512
            [TransitioningToState] =&gt;  12
            [EnabledDefault] =&gt;  2
            [RequestedState] =&gt;  12
            [EnabledState] =&gt;  5
            [HealthState] =&gt;  0
            [Caption] =&gt;  Disk 1 on HPSA1
            [ElementName] =&gt;  Disk 1 on HPSA1 : Port 1I Box 1 Bay 1 : 931GB : Data Disk
        )

    [1] =&gt; Array
        (
            [HPVC_SAStorageExtent.DeviceID] =&gt; "HPVC_SAStorageExtent-MM1000EBKAF-9XG0V2FH",CreationClassName
            [SystemCreationClassName] =&gt;  SMX_ComputerSystem
            [SystemName] =&gt;  vmware.eksempel.com
            [CreationClassName] =&gt;  HPVC_SAStorageExtent
            [DeviceID] =&gt;  HPVC_SAStorageExtent-MM1000EBKAF-9XG0V2FH
            [Name] =&gt;  9XG0V2FH
            [Primordial] =&gt;  true
            [NumberOfBlocks] =&gt;  1953525168
            [BlockSize] =&gt;  512
            [TransitioningToState] =&gt;  12
            [EnabledDefault] =&gt;  2
            [RequestedState] =&gt;  12
            [EnabledState] =&gt;  5
            [HealthState] =&gt;  5
            [Caption] =&gt;  Disk 2 on HPSA1
            [ElementName] =&gt;  Disk 2 on HPSA1 : Port 1I Box 1 Bay 2 : 931GB : Data Disk
        )
)

Næste projekt bliver at krølle det ned til et Nagios plugin ;-) 

Nagios Pluginet krævede kun flg. tilføjelser:

## Hvor mange raske diske har vi?

foreach ($a2 as $a)
{
        if ($a["HealthState"] == 5)
                $healthy++;
        else
                $failed[]=$a["Caption"];
}

$total = count($a2);

if ($total == $healthy)
{       
        print "OK: $healthy healthy out of $total total disks.";
}
else
{
        print "WARNING: $healthy healthy out of $total total disks. (failed:".implode(',',$failed).")";
}

Disclamer: Hvis du vælger at bruge koden er det dig eget ansvar at gennemlæse den, forstå hvad den gør og sikre sig at den virker som den skal. Jeg fralægger mit ethvert ansvar!
0

Svømmebade i Kbh

-

Sundby Svømmehal

Dag Fra Til
Mandag 10:00 - 16:00
Tirsdag 06:30 - 20:00
Onsdag 07:00 - 16:00
Torsdag 07:00 - 19:00
Fredag 07:00 - 16:00
Lørdag 08:00 - 14:00
Søndag 09:00 - 15:00
Sundbyvestervej 50
2300 København S
Telefon: 3258 5568
Mail: Sundby_Bad@kff.kk.dk

Værløse svømmehal

Dag Fra Til
Mandag 7.00 20.30
Tirsdag 7.00 20.30
Onsdag 7.00 21.30
Torsdag 7.00 20.30
Fredag 7.00 18.30
Lørdag 9.00 15.30
Søndag 9.00 15.30

Værløse Svømmehal
Kirke Værløsevej 60
3500 Værløse
Tlf. 7235 4700
Mail:vaerlosesvommehal@furesoe.dk

DGI Byens Svømmehal

Dag Fra Til
Mandag-Torsdag 6.30 22.00 (21:30)
Fredag 6.30 20.30 (20:00)
Lørdag 9.00 19.00 (svøm til 18:30)
Søndag go helligdage 9.00 18.00 (17:30)

Kontakt DGI-byen
Tietgensgade 65
1704 København V, Denmark
T: +45 3329 8000
E: info@dgi-byen.dk
T / 3329 8140
E / vandkulturhuset@dgi-byen.dk

 

Frankrigsgade svømmehal

Dag Fra Til
Mandag 07:00 - 18:30
Tirsdag 07:00 - 16:30
Onsdag 10:00 - 20:00
Torsdag 06:30 - 20:00
Fredag 07:00 - 17:00
Lørdag 09:00 - 14:00
Søndag 09:00 - 14:00
Frankrigsgade 35
2300 København S
Telefon: 32593995
Mail:Frankrigsgade_Svommehal@kff.kk.dk
6

Flere indkøb

-

Lidt mere diæt mad … det nåj’ SOVS!!!

 

Får snart lejlighed :-D

Continue reading “Flere indkøb” »