Note, that this recipe is not updated long time and could be outdated!
Got it.

Munin rezerves kopēšanas spraudnis

Šajā lapā ir aprakstīts, kā izveidot Munin rezerves kopiju veidošanas pārraudzības spraudni.

Ir serveris, kura mapē /home/backup ar rsync veido attālinātas kopijas katrai mītnei attiecīgā apakšmapē (piem., serveris1, serveris2, u.t.t.).

Kopijas tiek atjaunotas reizi diennaktī un Munin skripts pārbauda, kāds ir pēdējā laikā (piem., diennaktī) izmainīto failu apjoms visās mapēs.

Spraudņa sagatavošana uz Munin mezgla

  1. Uz Munin mezgla, kurā tiek veidotas rezerves kopijas, kā root lietotājs mapē /usr/share/munin/plugins izveido failu backup_ ar sekojošu saturu:

    #!/bin/bash
    bakdir="/home/backup"
    logdir="/tmp"
    prefix="backup_size"
    days="1"

    item=$(basename $0 | sed 's/^backup_//g')

    case $1 in
       config)
       echo "graph_title Last backup size for $item"
       echo "graph_info The size of the $item backup for the last $days day."
       echo "graph_args --base 1000 -l 0"
       echo "graph_scale yes"
       echo "graph_category other"
       echo "graph_vlabel size"
       echo "size.label backup size"
       echo "size.warning 1:"
    #   echo "size.critical 4:"
       echo "size.info Size of the last backup."
        exit 0;;
    esac

    cd $logdir
    echo "size.value $(cat ${prefix}_$item 2>/dev/null || echo 0)"

    logfile=$(find ${logdir} -maxdepth 1 -name ${prefix}_$item -type f -mtime -${days} 2>/dev/null)
    if [ "$logfile" == "" ]; then
        if [ ! -f ${prefix}_$item.tmp ]; then
            touch ${prefix}_$item.tmp
            cmd="find $bakdir/$item -type f -mtime -1 | tr '\n' '\0' > ${prefix}_${item}_list0; \
            du -sck -b --files0-from ${prefix}_${item}_list0 |tail -n1| cut -f1 > ${prefix}_$item.tmp; \
            rm ${prefix}_${item}_list0; \
            mv ${prefix}_$item.tmp ${prefix}_$item;"
            # run backup size asynhronously
            eval "${cmd}" &>/dev/null &disown;
        fi
    fi
    Ja attiecīgajā mapē nav mainītu failu (vai tā nav atrasta), rezultāts ir 0, un pēc noklusēšanas šī vērtība tiek parādīta kā brīdinājums, bet kritiska kļūda vispār netiek rādīta (rinda ir nokomentēta).
  2. Uzliek failam izpildes tiesības:

    chmod +x backup_
  3. Mapē /etc/munin/plugins izveido simboliskās saites, kuru nosaukuma beigās iekļauj pārbaudāmo apakšmapju saturu, piem.:

    ln -s /usr/share/munin/plugins/backup_ /etc/munin/plugins/backup_server1
    ln -s /usr/share/munin/plugins/backup_ /etc/munin/plugins/backup_server2
    ...
  4. Pārliecinās, ka palaižot skriptu no simboliskās saites, tas atgriež aptuveni sekojošu rindu:

    size.value 1234
  5. Failā /etc/munin/plugin-conf.d/munin-node pievieno rindas:

    [backup_*]
    user root
    timeout 240
  6. Pārstartē Munin mezglu:

    /etc/init.d/munin-node restart

Pārraudzības konfigurēšana uz Munin servera

  1. Failā /etc/munin/munin.conf pievieno rindas:

    ...
    [backup_node]
        backup_server1.size.critical  100000:
        backup_server1.size.critical  0:
        backup_server1.size.warning   0:
    ...
    kur
    • backup_node ir pārraugāmais rezerves kopiju serveris,
    • backup_server1.size.critical  100000: ir izmainīto baitu skaits, zem kura kopija tiks uzskatīta par neizdevušos (iestata vadoties no faktiskā rezerves kopiju apjoma),
    • backup_server1.size.critical  0: trauksmes ziņojums ir atslēgts (jo atgrieztā vērtība nekad nav mazāka par 0)
    • Ja nepieciešams, līdzīgi katrai mapei var izmainīt arī ...warning  vērtību.
  2. Uzgaida 5-10 minūtes, lai pārliecinātos, ka ar jaunizveidotajiem spraudņiem tiek savāktas vērtības.

Kļūdu novēršana

  1. Ja netiek atjaunotas mērījumu vērtības, pārliecinās, ka munin ir rakstīšanas tiesības pagaidu failos. Kā root lietotājs izpilda komanda:

    cd /tmp
    chmod 664 backup*
    chown root:munin backup*

Saites

 

Created by Valdis Vītoliņš on 2012-07-11 12:39
Last modified by Valdis Vītoliņš on 2016-12-20 17:48
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License