jaisonshereen
asked on
How to configure smtp in monit
I need to set alert when smtp fails
i used this code :
Below is the code for checking smtp :
if failed port 25
expect "^220.*\r\n"
send "HELO localhost.localdomain\r\n"
expect "^250.*\r\n"
send "QUIT\r\n"
expect "^221.*\r\n"
but its showing syntax error ..
is this code is intended to perform smtp checks and alerting ?
i doubt there is no alerting specifies ..if so please explain
thanks!
i used this code :
Below is the code for checking smtp :
if failed port 25
expect "^220.*\r\n"
send "HELO localhost.localdomain\r\n"
expect "^250.*\r\n"
send "QUIT\r\n"
expect "^221.*\r\n"
but its showing syntax error ..
is this code is intended to perform smtp checks and alerting ?
i doubt there is no alerting specifies ..if so please explain
thanks!
ASKER
Can i copy paste this :
spawn telnet mailserver 25
expect "^250"
send "helo myhost.mydomain.com\r\n"
expect "^22"
send "quit\rn"
in the mail or do i need to replce anything ?
What is mailserver?
myhost.mydomain.com---> is this the linux server name which smtp service name which is running ?
spawn telnet mailserver 25
expect "^250"
send "helo myhost.mydomain.com\r\n"
expect "^22"
send "quit\rn"
in the mail or do i need to replce anything ?
What is mailserver?
myhost.mydomain.com---> is this the linux server name which smtp service name which is running ?
You can, but as you can see there are not tests associated with the example.
You need to make sure the mechanism you are using to check on the state of the connection is correct.
mailserver is the hostname where the mail server is running.
myhost.mydomain.com should usually reflect the system where the script runs.
i.e. servera connects to serverb the myhost.mydomain.com will be that of servera.
You need to make sure the mechanism you are using to check on the state of the connection is correct.
mailserver is the hostname where the mail server is running.
myhost.mydomain.com should usually reflect the system where the script runs.
i.e. servera connects to serverb the myhost.mydomain.com will be that of servera.
ASKER
But this results error as below when i connect to mail server (jaison):
telnet jaison
Connecting to jaison....couldnot connect to the jaison at port 25 connection failed ...
Is there any method to fiind the name of the mailserver where i need to give there ?
telnet jaison
Connecting to jaison....couldnot connect to the jaison at port 25 connection failed ...
Is there any method to fiind the name of the mailserver where i need to give there ?
ASKER
i am doing telnet from my windows server ...
is this blocking the ip ?
is this blocking the ip ?
ASKER
is this mailserver looks like this ?
smtp.blahtest01.com
smtp.blahtest01.com
You are asking question which only you can answer. smtp,mail in the hostname is common but not required. What is the hostname of your mail server that you want to test?
telnet jason, makes an attempt to connect to port 23 not 25.
Try telnet jason 25.
telnet jason, makes an attempt to connect to port 23 not 25.
Try telnet jason 25.
ASKER
i given the same as below:
telnet jason 25.
Still i am not able to connect , i am getting the same error .
telnet jason 25.
Still i am not able to connect , i am getting the same error .
Is the SMTP service running on Jason?
ASKER
ps -ef | grep 25
root 325 7 0 May27 ? 00:00:00 [ata/0]
root 2256 1 0 May27 ? 00:00:25 pcscd
root 2594 1 0 May27 ? 00:00:54 sendmail: accepting connections
root 30676 21789 4 20:45 pts/1 00:00:00 grep 25
root 325 7 0 May27 ? 00:00:00 [ata/0]
root 2256 1 0 May27 ? 00:00:25 pcscd
root 2594 1 0 May27 ? 00:00:54 sendmail: accepting connections
root 30676 21789 4 20:45 pts/1 00:00:00 grep 25
ASKER
can u replace the line in the below code :
to reflect to send mail?
to reflect to send mail?
check process postfix with pidfile /var/spool/postfix/pid/master.pid
group services
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
Lets start this way, your ps -ef reflects that you are running sendmail while the script you reference is for postfix.
Can you post the entire script from which this snippet was taken?
You might fair better if you were to install postfix on your system instead of sendmail.
This might get you closer to what you are trying to do.
Can you post the entire script from which this snippet was taken?
You might fair better if you were to install postfix on your system instead of sendmail.
This might get you closer to what you are trying to do.
ASKER
I modified the script like this ..
check process sendmail with pidfile /var/run/sendmail.pid
group services
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
but still i am not getting any alerts
check process sendmail with pidfile /var/run/sendmail.pid
group services
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
but still i am not getting any alerts
Is you Linux system debian?
http://www.debian-administration.org/users/Steve/weblog/32
check process sendmail with pidfile /var/run/sendmail.pid
group services
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed host mailserver port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
Not sure what alerts you are expecting. This will automatically restart the service, I do not see anything here that would generate an alert.
http://www.debian-administration.org/users/Steve/weblog/32
check process sendmail with pidfile /var/run/sendmail.pid
group services
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed host mailserver port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
Not sure what alerts you are expecting. This will automatically restart the service, I do not see anything here that would generate an alert.
ASKER
<Arnold>Is you Linux system debian?<Arnold>
<Jaison Comment>
[root@Server01 monit]# uname -a
Linux Server01 2.6.18-53.el5 #1 SMP Mon Nov 12 02:22:48 EST 2007 i686 i686 i386 GNU/Linux
<Jaison Comment>
<Arnold>Not sure what alerts you are expecting. This will automatically restart the service, I do not see anything here that would generate an alert.<Arnold>
<Jaison Comment>
Sorry for misunderstanding . Please find my complete monitrc configuration file below. I have appended a line to send alerts. Is that line positioned correctly?
<Jaison Comment>
<Jaison Comment>
[root@Server01 monit]# uname -a
Linux Server01 2.6.18-53.el5 #1 SMP Mon Nov 12 02:22:48 EST 2007 i686 i686 i386 GNU/Linux
<Jaison Comment>
<Arnold>Not sure what alerts you are expecting. This will automatically restart the service, I do not see anything here that would generate an alert.<Arnold>
<Jaison Comment>
Sorry for misunderstanding . Please find my complete monitrc configuration file below. I have appended a line to send alerts. Is that line positioned correctly?
<Jaison Comment>
set daemon 120
#
#
## Set syslog logging with the 'daemon' facility. If the FACILITY option is
## omitted, monit will use 'user' facility by default. If you want to log to
## a stand alone log file instead, specify the path to a log file
#
set logfile syslog facility log_daemon
#
#
set mailserver localhost # primary mailserver
# backup.bar.baz port 10025, # backup mailserver on port 10025
# localhost # fallback relay
#
set httpd port 2812 and
use address localhost # accept connection from localhost
allow XX.XX.78.99/255.255.255.0 # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
check process sendmail with pidfile /var/run/sendmail.pid
group services
start program = "/etc/init.d/sendmail start"
stop program = "/etc/init.d/sendmail stop"
if failed port 25 protocol smtp then restart
if 5 restarts within 5 cycles then timeout
alert jaisonshereen@gmail.com
## Check a file for existence, checksum, permissions, uid and gid. In addition
## to alert recipients in the global section, customized alert will be sent to
## additional recipients by specifying a local alert handler. The service may
## be grouped using the GROUP option.
You are checking whether sendmail is running.
I would think that alert would be part of the action i.e. following then.
The more important question is: how will an email be sent out when the mail server is down?
I would think that alert would be part of the action i.e. following then.
The more important question is: how will an email be sent out when the mail server is down?
ASKER
ooops that correct ...
then what should be an alternative?
i have created a shell script shown below: to check whether alerts are recieving.
and ran in background.
./mytest.sh &
And edited my monitrc to append the below lines. But i am not sure it is correct , Can you verify?
check process mytest with pidfile /var/run/mytest.pid
start program "/opt/monit/mytest start"
stop program "/opt/monit/mytest stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
I think this is wrong. Because my shell script is not a service. Can you give any alternatives?
then what should be an alternative?
i have created a shell script shown below: to check whether alerts are recieving.
and ran in background.
./mytest.sh &
And edited my monitrc to append the below lines. But i am not sure it is correct , Can you verify?
check process mytest with pidfile /var/run/mytest.pid
start program "/opt/monit/mytest start"
stop program "/opt/monit/mytest stop"
if failed port 22 protocol ssh then restart
if 5 restarts within 5 cycles then timeout
I think this is wrong. Because my shell script is not a service. Can you give any alternatives?
#!/bin/sh
# shell script that runs forever and does nothing (but sleeping)
while : ; do
sleep 60
done
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Presumably you use expect, not sure if failed port 25 is a valid syntax.
You could try
spawn telnet mailserver 25
expect "^250"
send "helo myhost.mydomain.com\r\n"
expect "^22"
send "quit\rn"
Using a perl script with sockets with alarm is much simpler since you do not really need to interact. All you are looking for is the banner with 2xx.
You can run through the SMTP session simmulation if necessary.