You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Marc Wäckerlin 4ae6b3b94b new checks diskio.sh and gluster-geo-replication.sh 7 years ago
LICENSE Initial commit 7 years ago
README.md new checks diskio.sh and gluster-geo-replication.sh 7 years ago
diskio.sh new checks diskio.sh and gluster-geo-replication.sh 7 years ago
gluster-geo-replication.sh new checks diskio.sh and gluster-geo-replication.sh 7 years ago
load_per_cpu.sh new check mountpoint - bugfix 7 years ago
mountpoint.sh new checks diskio.sh and gluster-geo-replication.sh 7 years ago

README.md

Icinga Check Scripts

Various check scripts for use in icinga.

All scripts support option --help, so call ./scriptname --help for more information.

load_per_cpu.sh

Icinga plugin to check load average per CPU. Shows 1min, 5min 15min average per CPU. Different to check_load, the load is divided by the number of CPU units and therefore normalized. So the same warning and critical levels fit for any server.

If a server's load is often high, you can find tipps in Isolating Linux High System Load, in short words:

  • see the load average in uptime
  • check system logs with dmesg
  • see vmstat:
    • high WA (wait) column: CPU is often waiting, you probably have high disk load
      • check swapsi and so, if they are often much above 0, you are out of memory
        • check memory usage of processes with ps awwlx --sort=vsz
        • solution: add more memory
    • if cpuID (idle) is around 0, your CPU is overloaded
      • if SY (system) is high, there could be large directories, e.g. mail spam
      • if SY (system) is high, it could be the firewall iptables
      • if US (user-space) is high, check with top for CPU consuming processes
    • if iobi and bo (in/out) are high, check with iostat or sudo iotop

mountpoint.sh

Icinga plugin to check whether a given mountpoint is available. Detects problems, e.g. with glusterfs: In case of a problem, there is an error message such as "socket not connected". Called with path to check.

diskio.sh

Icinga plugin to check whether a given path is writable and checks the performance of the given path. Detects problems with the filesystem or specific io performance. Writes a test file using dd and reports write speed. It is recommended to use a subdirectory tmp for writing test files.

gluster-geo-replication.sh

Icinga plugin to check gluster geo replication. Returns OK, if no connection is Faulty and one connection is Active. Returns CRITICAL, if one connection is Faulty- Returns WARNING, if no connection is Active.

Installation

Install

Checkout to a path, e.g. /opt/icinga-checks:

cd /opt
sudo git co https://mrw.sh/admin-scripts/icinga-checks.git

Update

cd /opt/icinga-checks
sudo git pull

Configure

Go to Icinga Director, in Commands add one:

  • Command type: Plugin Check Command
  • Command name: load per cpu
  • Command: check_by_ssh

After adding the command, add the following parameters:

-C /opt/icinga-checks/load_per_cpu.sh
-H $host.name$
-oStrictHostKeyChecking=no

The last argument -oStrictHostKeyChecking=no is a key only ith no value.

To check mountpoint of /var/volumes use argument name -C with value /opt/icinga-checks/mountpount.sh /var/volumes.

Then create a new Service Template, give it a name. e.g. load per cpu and assign the check command just created.

Finally add a service, again you can use the same name and import the template just created, then assign the hosts to check. I use a host template for all linux servers, so the command is run in each of them.

Don't forget to deploy the activity log in Icinga Director.