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.

99 lines
3.3 KiB

7 years ago
Icinga Check Scripts
7 years ago
====================
7 years ago
7 years ago
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](https://www.tummy.com/articles/isolating-heavy-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 `swap``si` 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 `cpu``ID` (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 `io``bi` 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](https://mrw.sh/docker/icingaweb2), 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.