-
Notifications
You must be signed in to change notification settings - Fork 0
/
check_postfix
executable file
·98 lines (92 loc) · 2.99 KB
/
check_postfix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/sh
#
# Copyright 2011 Claudiu Vasadi. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other materials
# provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY Claudiu Vasadi ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Claudiu Vasadi OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and documentation are those of the
# authors and should not be interpreted as representing official policies, either expressed
# or implied, of Claudiu Vasadi.
#
#
# Postfix process monitor plugin for Nagios
# Originally written by Thomas Sluyter ([email protected])
# Adapted by Claudiu Vasadi ([email protected])
# Last Modified: 22.11.2011
#
# Usage: ./check_postfix
#
# Description:
# This plugin determines whether the Postfix SMTP server
# is running properly. It will check the following:
# * Are all required processes running?
# * Are all the required TCP/IP ports open?
#
# Limitations:
# Only tested on FreeBSD 8.x and higher
#
# Output:
# Script returns a CRIT when one of the abovementioned criteria is
# not matched
#
# History:
#
# v0.3 (01.12.2014):
# - removed the "-" from "ps -aux"
# - updated the echo statements
#
# v0.2:
# - removed 1 unused pipe (code cleanup)
#
# v0.1:
# - inital (adapted) release
#
PATH=/usr/bin:/usr/sbin:/bin:/sbin
LIBEXEC=/usr/lib/nagios/plugins
. "$LIBEXEC"/utils.sh
# Set postfix's processes
PROCLIST="qmgr pickup master"
PORT="25"
check_processes(){
for PROC in `echo "$PROCLIST"`
do
ps aux | grep $PROC | grep -v grep > /dev/null
if [ $? = "0" ];then
echo "OK: All postfix processes running"
exit "$STATE_OK"
else
echo "NOT OK: One or more postfix processes not running"
exit "$STATE_CRITICAL"
fi
done
}
check_ports(){
netstat -an | grep LISTEN | grep "$PORT" > /dev/null
if [ $? != "0" ];then
echo "NOT OK: One or more TCP/IP ports not listening."
exit "$STATE_CRITICAL"
else
echo "OK: All postfix ports are listening."
exit "$STATE_CRITICAL"
fi
}
check_processes
check_ports