V Thrusher
asked on
script to monitor whether application URL available and trigger alert mail on the same
I have two application URL like http://www.sample.com:1200/fyi/logon.html and https://servername.net:1200/fyi/logon_face.html.
After restarting the application services in windows server 2012, we try to load this URL in website to confirm its availability. I'm trying to automate it and send alert mail with URL status like URL is available or URL is down. I'm new to scripting so kindly help me with the code
Also please do note that webpage doesn't load, unless you give full URL with /logon.html etc.
After restarting the application services in windows server 2012, we try to load this URL in website to confirm its availability. I'm trying to automate it and send alert mail with URL status like URL is available or URL is down. I'm new to scripting so kindly help me with the code
Also please do note that webpage doesn't load, unless you give full URL with /logon.html etc.
ASKER
Thanks a lot .... i will try it out
ASKER
Option Explicit
Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject")
dim csURL
check1()
check2()
Function check1()
csURL = "https://www.experts-exchange.com/"
Dim oDOM : Set oDOM = CreateObject("HTMLFILE")
Dim sHTML : sHTML = getURL(csURL)
'msgbox sHTML
'check something
End Function
Function check2()
csURL = "http://www.aspsnippets.com/Articles/Send-email-using-Gmail-SMTP-Mail-Server-in-ASPNet.aspx"
Dim oDOM : Set oDOM = CreateObject("HTMLFILE")
Dim sHTML : sHTML = getURL(csURL)
'msgbox sHTML
'check something else
End Function
Function getURL(sURL)
Dim oHTTP : Set oHTTP = CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", csURL, False
oHTTP.Send
If 200 = oHTTP.Status Then
'getURL = oHTTP.responseText
dim status = "Up"
mailcode (status)
Else
dim status = "Down"
mailcode (status)
End If
End Function ' getURL
Function mailcode(url)
dim sta = url
Set MyEmail=CreateObject("CDO.Message")
MyEmail.Subject="alertmail"
MyEmail.From="name@domain.com"
MyEmail.To="vishnuadithya52@gmail.com"
MyEmail.TextBody="Application services is &sta& "
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
'SMTP Server
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
'SMTP Port
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
'Username
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername")=""
'Password
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword")=""
MyEmail.Configuration.Fields.Update
MyEmail.Send
set MyEmail=nothing
End Function
ASKER
i added a mail function to get triggered based on ping status but unfortunately its not working
While the code is somewhat reliable, I made these two lines for a reason:
Your check for the http 200 status, only tells you if the website is up. Not if it's displaying the correct page (could be a bandwidth alert, hacked site, script error etc etc). The 'check something' is to capture, for instance, the login form, or the correct header for the website. While still not always 100% correct (for instance, only after logging in you will get an error), it's far superior than just checking for the http 200 status.
Anyway, you can now continue finishing the script as you wish (or not, since it's working properly right now with below code).
Here's the updated code:
'msgbox sHTML
'check something
Your check for the http 200 status, only tells you if the website is up. Not if it's displaying the correct page (could be a bandwidth alert, hacked site, script error etc etc). The 'check something' is to capture, for instance, the login form, or the correct header for the website. While still not always 100% correct (for instance, only after logging in you will get an error), it's far superior than just checking for the http 200 status.
Anyway, you can now continue finishing the script as you wish (or not, since it's working properly right now with below code).
Here's the updated code:
Option Explicit
Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject")
Dim status, sta, csURL, MyEmail
check1()
check2()
Function check1()
csURL = "https://www.experts-exchange.com/"
Dim oDOM : Set oDOM = CreateObject("HTMLFILE")
Dim sHTML : sHTML = getURL(csURL)
'msgbox sHTML
'check something
End Function
Function check2()
csURL = "http://www.aspsnippets.com/Articles/Send-email-using-Gmail-SMTP-Mail-Server-in-ASPNet.aspx"
Dim oDOM : Set oDOM = CreateObject("HTMLFILE")
Dim sHTML : sHTML = getURL(csURL)
'msgbox sHTML
'check something else
End Function
Function getURL(sURL)
Dim oHTTP : Set oHTTP = CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", csURL, False
oHTTP.Send
If 200 = oHTTP.Status Then
'getURL = oHTTP.responseText
status = "Up"
mailcode status, sURL
Else
status = "Down"
mailcode status, sURL
End If
End Function ' getURL
Function mailcode(status, url)
Set MyEmail=CreateObject("CDO.Message")
MyEmail.Subject="alertmail"
MyEmail.From="name@domain.com"
MyEmail.To="vishnuadithya52@gmail.com"
MyEmail.TextBody="Application services " & url & " is " & status
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
'SMTP Server
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver")="smtp.gmail.com"
'SMTP Port
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
'Username
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername")=""
'Password
MyEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword")=""
MyEmail.Configuration.Fields.Update
MyEmail.Send
set MyEmail=nothing
End Function
ASKER
Thanks Kim for your feedback and i agree, but i'm not sure on how to compare the webpage contents ??
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks a lot Kim, i will try and let you know
ASKER
(sHTML, "/plansAndPricing.jsp?cid= topnavjoin ") in this you are looking for planandpricing.jsp page if so below action take places. so what it cid=topnavjoin ?
No, I said, you are looking for something unique on a working page. A non-user watching Expers Exchange, will always see this link if the page is working properly (until the page is redesigned).
It could also have been
It could also have been
if Instr(sHTML, "Search Experts Exchange") then
As long as it's something unique on that page. Since a non-working page will have simple text like "Database down" or "Bandwidth problems" etc, when you get the error that the page isn't working, even though there's also a status the site is up, just visit the site to check what the error is.
ASKER
Thanks a lot for your help & support and i understood.
What you can do it to check if this source code is what you'd expect from a correctly running server and then fire off an email command.
After you understand it, we can take further steps to tailor it to your needs.
Open in new window