Monitoring SSHd and web servers?

G

Gilles Ganault

Hello

I'd like to monitor connections to a remote SSH and web server. Does
someone have some code handy that would try to connect every 5mn, and
print an error if the script can't connect?

Thank you.
 
J

Jonathan Gardner

I'd like to monitor connections to a remote SSH and web server. Does
someone have some code handy that would try to connect every 5mn, and
print an error if the script can't connect?

from time import sleep
while True:
# Try to connect. May want to spawn a subprocess running a simple
shell script
# Handle success / failure appropriately
sleep 5*60 # Sleep for 5 minutes

What you monitor is up to you. At a basic level, you can see if the
server is accepting connections. At a higher level, see if you can get
a page or see if you can login as a specific person. At a higher
level, you may want to check what is on the page or what happens when
you log in. It's all up to you.
 
S

Shane Geiger

I would recommend using a tried-and-true solution for making sure your
uptime of various services is maximized (if that's what your goal is).

Running a local "daemon-monitoring daemon" is one option--monit does a
good job. Checking services over the network, as nagios does well, is
another solution.



Jonathan said:
from time import sleep
while True:
# Try to connect. May want to spawn a subprocess running a simple
shell script
# Handle success / failure appropriately
sleep 5*60 # Sleep for 5 minutes

What you monitor is up to you. At a basic level, you can see if the
server is accepting connections. At a higher level, see if you can get
a page or see if you can login as a specific person. At a higher
level, you may want to check what is on the page or what happens when
you log in. It's all up to you.


--
Shane Geiger
IT Director
National Council on Economic Education
(e-mail address removed) | 402-438-8958 | http://www.ncee.net

Leading the Campaign for Economic and Financial Literacy
 
P

Pacman

Gilles Ganault said:
I'd like to monitor connections to a remote SSH and web server. Does
someone have some code handy that would try to connect every 5mn, and
print an error if the script can't connect?

This script has been pretty reliable for us for the past few years,
much more reliable than the expect script it replaced.

#!/usr/bin/python
import sys
import pexpect
quiet = open("/dev/null", "rw")
sys.stdin = quiet
sys.stdout = quiet
sys.stderr = quiet
smtp = pexpect.spawn("telnet " + sys.argv[1] + " 25")
smtp.expect('220', timeout=120)
smtp.sendline("quit\n^]q")

Pacman
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top