CSS to CSM migration and http health checking
Hi All,
I hope someone can help me here.
We are migrating number of web services to new DC and I have some issue migrating load balancing from CSS 11501 to CSM module in 6509 within new environment.
Here is config from CSS:
content WS1
vip address 192.168.1.125
add service 192.168.1.105-80-web1
add service 192.168.1.115-80-web2
port 80
protocol tcp
balance leastconn
active
service 192.168.1.105-80-web1
ip address 192.168.1.105
keepalive port 80
keepalive uri "/URIDirect_Default.aspx"
keepalive method get
keepalive type http
keepalive hash "44baffe2618ba829a6b14ad9bccfdcf4"
active
service 192.168.1.115-80-web2
ip address 192.168.1.115
keepalive port 80
keepalive uri "/URIDirect_Default.aspx"
keepalive method get
keepalive type http
keepalive hash "f41469e68c42273622774ec706e3ddcf"
active
With this config CSS uses URI health check to determine whether or not the app live on the nodes of the farm (CSS checks for certain file's existing in app's home folder by checking the hash value of the file name - I beleive so). This is also handy for windows team which remove/rename checked file on server when want to remove it from web farm.
However, reading manuals for CSM I can not see http health probe checking for hash, but only for return status.
Can someone help me with how can I replicate above configuration using CSM.
Regards,
Sasa
Sasa,
the hash corresponds to a hash of all the text contained in the html page.
This is to guarantee that the page was not modified.
This is some kind of security in case a hacker would alter your pages.
The CSM does not have this feature.
But honestly, you usually get more troubles with this option than benefits.
If the Apps team wants to have the server down while changing files, they can I guess turn off the server themselves before doing changes. And then re-enable after.
Gilles.
Similar Messages
-
A10 Network and Siebel HTTP Health Check @ Application Tier
Hello,
I have a simple question around using the A10 network appliance and performing a simple HTTP Get Health, from the third party load balance, check against the ScBroker component. For example, within the A10 we would create a check check using the following: This is for third party load balancing at the application tier. I have performed this type of health check on other competitor devices such as F5, Cisco etc.
//IP Address of Siebel Application Server/Siebel Enterprise Name/ScBroker.
When I test the below HTTP Get health check both inside and outside the load balancer (using any web browser) I receive about 15-20 errors before receiving a ScBroker Status "Ok" message. This is a older version of Siebel (8.0.0.12) and I have double checked the Connection Forward algorithm for SCBroker which is set to "LL" least laden. The only other option would be to perform a health check at the TCP (SCBroker port 2321) layer which can cause multiple LB errors and leave connections missed at the port 2321 SCBroker layer. Essentially, A HTTP Get Health check at the application layer is the way to go. Has anyone experienced this error on the HTTP Get Health check? If so, what was the resolution for the health check.Hi zryan,
Your question is not clear enough.
If you want to use create client for transporting HTTP or SMTP messages, you can utilize these built-in classes in .Net Framework:
WebClient,
HttpWebRequest Class
SmtpClient Class
If you mean you want to intercept the network messages using C# code, please note the topic in this thread:
Contributors: How to avoid aiding
the development of malicious code
.Net Framework doesn't contain built-in objects for you to automatically detect the protocol of the network message.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
6500 CSM-S and HTTP compression
Is there any plans for the 6500 CSM-S module to support http compression along with ssl offload and SLB features?
John,
No plans at this time, due to the CSM not having the CPU power to do so.
The CSS product line with version 8 code and integrated ssl module now has this feature.
Peter -
CSS and Oracle10gAS webcache health check
Both CSS LBR's HEAD and GET health check requests failed for http://ip.address.for.the.server/_oracle_http_server_webcache_static_.html, a magic URL from Oracle10gAS webcache that only resides in memory (no file exists on disk). But I can use browser or gui-less browser 'elinks' and access it via IP to that URL with no problem.
Has anyone here encountered this issue? Does anyone have solution for this?
Many thanks,WCCP Version 2 enables a series of Content Engines, called a Content Engine cluster, to connect to multiple routers. This feature provides redundancy and a more distributed architecture for instances when a Content Engine needs to connect to a large number of interfaces. This strategy also has the benefit of keeping all the Content Engines in a single cluster, avoiding unnecessary duplication of web pages across several clusters.
http://www.cisco.com/univercd/cc/td/doc/product/webscale/webcache/ce31/config31/appx_b.htm -
Exchange 2013 Daily Health Check Script
Hi All,
I recently migrated from Exchange 2010 to Exchange 2013. Prior to the migration the daily health check was being used daily to send my team and I the HTML report.
I have downloaded the new v1.07 script and followed the same rules and settings I used for Exchange 2010 when setting up the script.
The script only runs now via Exchange shell and does not send the HTML report and I am unable to run the script via a batch file that called the ./ps1 file in a windows command prompt and am also unable to as a result, use the task scheduler to schedule
this task.
I am desperately in need of getting this morning report as its been so useful, I cant do without it now.
Any advise would be greatly appreciated.
Thanks so much
AltonSo, could you please check this link, it provide the solution to check the daily health of exchange 2013 :
http://exchangeserverpro.com/troubleshooting-exchange-server-2013-with-test-cmdlets/ -
Dynamic menu css not displaying correctly in https
Hello,
Need help! I'm trying to get my menu to display properly in https but no luck so far. (Chrome and IE) Please let me know if there is a solution. Thank you.
good menu look http://winxed.businesscatalyst.com/
bad menu look https://winxed.worldsecuresystems.com/events/eyelash-extension-extensive-class-houstonJust drop a zoom:100% style on the link, and IE will get it
right.
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
==================
"TC2112" <[email protected]> wrote in
message
news:fh2nt4$4u8$[email protected]..
> Hello,
>
> The problem is with IE, not Firefox.
> The content of your menu link tags is a clear gif image
that is the same
> height as the background images applied to the link tag
that change on
> mouseover.
> Even though it looks like you want it to in IE, IE is
actually rendering
> your
> code incorrectly.
> Firefox is rendering your code exactly as it should.
>
> Your background images are applied by CSS to the link,
not the image
> within.
> In standards compliant browsers like Firefox, the height
of link
> attributes
> such as background and border are determined by the font
size or line
> height
> that applies to that link, even if there is no text in
the link.
> As a test, you can add font-size:38px (the height of
your background
> images)
> to "table.menu" in your CSS and you'll see your entire
link background
> images
> in FF.
> IE incorrectly streches the link background to the
height of the image
> within
> within the link.
> IE does the same thing to borders if they are applied to
just the "a" tag
> and
> not to "a img" in the CSS.
>
> A quick fix:
>
> table.menu { width:186px; margin-top:6px;
> line-height: 38px; }
>
> A better fix and some great information:
>
>
>
>
http://projectseven.com/tutorials/css/uberlinks/index.htm
>
> and:
>
>
http://css.maxdesign.com.au/listamatic/
>
> Hope that helps,
>
> Take care,
> Tim
> -
Hi,
I am a newbee. I am migrating from CSS to CSM. I have attached conversion config. Can some one please verify that I am doing the right conversion?
Thanksactually there is a mistake.
Here is what it should look like
real XX1
address x.x.x.x
inservice
real XX2
address x.x.x.x
inservice
serverfarm YYY
nat server
no nat client
real name XX1
inservice
real name XX2
inservice
probe tcp
sticky 1 ssl timeout 60
vserver YYY
virtual xx.xx.xx.03 tcp http
serverfarm YYY
inservice
vserver YYY1
virtual xx.xx.xx.03 tcp https
serverfarm YYY
sticky 60 group 1
inservice
Gilles. -
Exchange 2010 health-checks with encryption and ntlm auth
Hi everybody,
I will be forced to implement extended health-ckecks for Exchange 2010 CAS Servers. So the cisco design guide does not help
Exchange2010 CAS Service needs ntlm auth for many services by default. http://technet.microsoft.com/en-us/library/bb331973.aspx
Now with SP1 also for pop3 and imap4. I have not found any option to use ntlm by default.
The next problem is encryption.
Health-checks with encryption are not integrated in cisco ace 4710 by default.
As an alternative to try a scripted health-check with tcl script is an option but needs more investigation and is timeconsuming.
I watched for other vendors solution, they use e.g. external imported shell scripts with curl (curl -s --ntlm -k -X POST ...) to do a health-check with ntlm. That would be fine at the moment to beat the requirement of extendet health-checks.
But maybe it is only ntlm verion 1, I do not know what happens if it comes to ntlm version 2.
Kerberos authentication is a much bigger problem, but at the moment not a requirement.
Does anybody has some hints or also a tcl script for exchange health-checks ?
Best Regards
AloisHi everybody,
I will be forced to implement extended health-ckecks for Exchange 2010 CAS Servers. So the cisco design guide does not help
Exchange2010 CAS Service needs ntlm auth for many services by default. http://technet.microsoft.com/en-us/library/bb331973.aspx
Now with SP1 also for pop3 and imap4. I have not found any option to use ntlm by default.
The next problem is encryption.
Health-checks with encryption are not integrated in cisco ace 4710 by default.
As an alternative to try a scripted health-check with tcl script is an option but needs more investigation and is timeconsuming.
I watched for other vendors solution, they use e.g. external imported shell scripts with curl (curl -s --ntlm -k -X POST ...) to do a health-check with ntlm. That would be fine at the moment to beat the requirement of extendet health-checks.
But maybe it is only ntlm verion 1, I do not know what happens if it comes to ntlm version 2.
Kerberos authentication is a much bigger problem, but at the moment not a requirement.
Does anybody has some hints or also a tcl script for exchange health-checks ?
Best Regards
Alois -
Responsibility and health check
hi friends
just need some help to prepare good document as my management insited
i am only the dba working for two node rac
windows
10.2.0.4
asm
here if any issue arrives i am only the person to handle,so my management decided to list out all the activities.
from i just what are daily health check or responsibilities of sys admin,os level admin,asm leve...............storage dept .............architect leve
as i have updated database level activities
can you please give me list of activities they should handle in this enivronment(sys admin,os level admin,asm leve...............storage dept .............architect leve)
thanks for your help and support
cheersThese are the tasks for the oralce dba. For the other related fields , either check their doc guide or ask the people who work in that domain,
http://download.oracle.com/docs/cd/E11882_01/server.112/e17120/dba002.htm#i1006205
Aman.... -
VMS and CSM migration for free or reduced cost (act now) expires 4/2/07
I can't find the posting where there was a heated discussion regarding VMS and Cisco forcing users to BUY Cisco Security Managager (CSM).
I looked around and found a link to a trade-in program where users can get a free upgrade to CSM. Please post questions to this mail and I will answer. I am just a concerned Cisco Systems Engineer and not a marketing guy so bear with me as we find the answers together.
I am going to copy and paste the info and links.
---Copy paste----
http://www.cisco.com/en/US/products/ps6498/prod_bulletin0900aecd803ffd79.html
Migration Options from CiscoWorks VPN/Security Management Solution
Cisco is not adding support for new features and new devices in CiscoWorks VPN/Security Management Solution (CiscoWorks VMS) after the release of Cisco Security Manager. Furthermore, support for devices such as Cisco ASA 5500 Series Adaptive Security Appliances is only be available with Cisco Security Manager. Customers that require provisioning for Cisco firewalls, VPNs, and IPSs will want to plan their migration to take advantage of significant enhancements in the new software.
Customers with a current Cisco Software Application Support (SAS) service or Software Application Support plus Upgrades (SASU) service for CiscoWorks VMS are entitled to a defined device license for Cisco Security Manager at no additional charge. The value of the new license is higher than the cost of the original CiscoWorks VMS purchase. Customers with a current CiscoWorks VMS Basic license that have a Cisco SMARTnet? contract, or a Cisco Services for IPS contract with selected IPS hardware, can also upgrade to Cisco Security Manager. See Tables 2 to 4 for the upgrade licenses that can be requested at no additional cost from http://www.cisco.com/upgrade. The appropriate upgrade option will be visible on the Website if you have an eligible service contract with an existing CiscoWorks VMS license.
Note: All no charge and discounted offers to upgrade from CiscoWorks VMS to Cisco Security Manager will be discontinued after April 2, 2007.
Regards,
Ray AragonRay,
I think the posting that you are referring to is here:
http://forum.cisco.com/eforum/servlet/NetProf?page=netprof&forum=Security&topic=Intrusion%20Prevention%20Systems/IDS&CommCmd=MB%3Fcmd%3Ddisplay_location%26location%3D.1ddd2017
Some very interesting points were raised but the main issue is about functionality rather that cost. Basically, CSM does not fully replicate the functionality of VMS (see the thread) and this is the main issue for a lot of folks.
What might be useful is for Cisco to ask the question "what functionality would you like to see in CSM?" - and publish the answers somewhere, to allow folks to vote on the proposed features and/or add new requests. Just an idea.
Andrew. -
ACE http health probes - best practice for interval and passdetect interval?
Hi,
Is there a recommended standard for http health probes in terms of interval and passdetect interval timings, i.e. should the passdetect interval always be less than the interval or visa versa? Can a http probe be 'mis-configured', i.e. return a 'false positive' by configuring an interval timeout thats 'incompatible' with the device it's polling?
I have a http probe for a serverfarm consisting of two Apache http servers and get intermittent 'server reply timeout' probe failures. I'm keen to ensure that the configuration of the probe isn't at fault so I can be confident that a failed probe indicates a problem with the server and not my configuration.
The probe is currently configured as below:-
probe http http-apache
interval 30
passdetect interval 15
passdetect count 6
request method get url /cs/images/ACE.html
expect status 200 304
Any advice on the subject woud be gratefully received.
thanks
MatthewHi Gilles,
Thanks for the advice. In another dicussion (found here https://supportforums.cisco.com/message/462397#462397) a poster has stated that:-
"(The) "Probe interval" should always be less then (open+recieve) timeout value. Default open & receive timeouts are 10 seconds."
Are you able to advise on whether the above is correct and if so, why? I currently have an interval value of 30 that obviously goes against the advice above (which I've interpretted to mean that if you leave the open & receive timeouts at their default settings your probe interval should be less than 20 seconds?).
thanks
Matthew -
Hi.
I got two DAG nodes with CAS role installed. Sudently i get this failures on both nodes. This happens for all databases. I have tried do Seed the DB, with no luck
I run the The CheckDatabaseRedundancy.ps1 script and this seems OK.
Could somone please help me,
[PS] D:\Program Files\Microsoft\Exchange Server\V15\Scripts>.\CheckDatabaseRedundancy.ps1
DatabaseName : Users05
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 05.07.2013 05:49:10
LastGreenTransitionUtc : 05.07.2013 05:49:10
LastRedTransitionUtc :
LastGreenReportedUtc : 05.07.2013 05:49:10
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
Event:4376
Database one datacenter available copy health check failed.
Database copy: Users05
Redundancy count: 2
Error:
================
Full Copy Status
================
Database Copy : Users05\casmbx02
VolumeInfoLastError :
LogPathIsOnMountedFolder : False
LogVolumeName : \\?\Volume{beecae05-53ca-444d-ab5f-dd98510b4776}\
LogVolumeMountPoint : E:\
DatabasePathIsOnMountedFolder : False
DatabaseVolumeName : \\?\Volume{b92c9520-905f-4ee4-902d-1e73c26b1717}\
DatabaseVolumeMountPoint : F:\
ExchangeVolumeMountPoint :
LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
LastDatabaseVolumeName :
DiskFreeSpacePercent : 90
DiskTotalSpaceBytes : 107237863424
DiskFreeSpaceBytes : 97164902400
SeedingSource : False
ActivationPreference : 2
LogsCopiedSinceInstanceStart : 45
LogsReplayedSinceInstanceStart : 86
ExtendedErrorInfo :
ErrorEventId : 0
ErrorMessage :
ReplayQueueNotKeepingUp : False
CopyQueueNotKeepingUp : False
SnapshotLatestCopyBackup : False
SnapshotLatestDifferentialBackup : False
SnapshotLatestIncrementalBackup : False
SnapshotLatestFullBackup : True
LatestCopyBackupTime : 01.01.1601 00:00:00
LatestDifferentialBackupTime : 01.01.1601 00:00:00
LatestIncrementalBackupTime : 01.01.1601 00:00:00
LatestFullBackupTime : 04.07.2013 19:31:34
LastLogCopyNotified : 4100
CurrentReplayLogTime : 05.07.2013 05:24:26
LastReplayedLogTime : 05.07.2013 05:39:26
LastInspectedLogTime : 05.07.2013 05:39:26
LastCopiedLogTime : 05.07.2013 05:39:26
LastLogInfoFromClusterGen : 4100
LastLogInfoFromClusterTime : 05.07.2013 05:44:01
LastLogInfoFromCopierTime : 05.07.2013 05:44:00
LastLogInfoIsStale : False
LastCopyNotifiedLogTime : 05.07.2013 05:39:26
LatestAvailableLogTime : 05.07.2013 05:39:26
DumpsterEndTime : 01.01.0001 00:00:00
DumpsterStartTime : 01.01.0001 00:00:00
DumpsterRequired : False
DumpsterServers :
ActionInitiator : Service
SuspendComment :
SinglePageRestoreNumber : 0
SinglePageRestore : False
ReplayLagPercentage : 0
ReplayLagPlayDownReason : None
ReplayLagEnabled : Disabled
ReplayLagDisabledReason :
ActualReplayLagTime : 00:04:40.1554322
ConfiguredReplayLagTime : 00:00:00
NodeStatus : Up
WorkerProcessId : 8740
ReseedBlocked : False
ResumeBlocked : False
ReplaySuspended : False
LostWrite : False
Viable : True
ActivationSuspended : False
DbSeedingKBytesWrittenPerSec : 0
DbSeedingKBytesReadPerSec : 0
DbSeedingKBytesWritten : 0
DbSeedingKBytesRead : 0
DbSeedingPercent : 0
ContentIndexSeedingSource :
ContentIndexSeedingPercent :
ContentIndexMailboxesToCrawl :
ContentIndexBacklog : 0
ContentIndexRetryQueueSize : 0
ContentIndexErrorMessage :
ContentIndexStatus : Healthy
LastStatusTransitionTime : 04.07.2013 17:46:02
InstanceStartTime : 04.07.2013 17:45:59
CICurrentness : Current
CopyStatus : Healthy
ServerVersion : 1941996140
LastLogReplayed : 4100
LastLogInspected : 4100
LastLogCopied : 4100
LastLogGenerated : 4100
DataAvailabilityTime : 05.07.2013 05:39:26
DataProtectionTime : 05.07.2013 05:39:26
LastLogGeneratedTime : 05.07.2013 05:44:06
StatusRetrievedTime : 05.07.2013 05:44:06
ActiveDatabaseCopy : CASMBX01
MailboxServer : CASMBX02
DBName : Users05
DBGuid : 57da90db-bc6d-4bf3-b508-64d3bff41377
Database Copy : Users05\casmbx01
VolumeInfoLastError :
LogPathIsOnMountedFolder : False
LogVolumeName : \\?\Volume{94937623-3da4-49ab-825e-49c982ec79f1}\
LogVolumeMountPoint : E:\
DatabasePathIsOnMountedFolder : False
DatabaseVolumeName : \\?\Volume{73a9913d-1660-487b-8a8b-b53cb017728e}\
DatabaseVolumeMountPoint : F:\
ExchangeVolumeMountPoint :
LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
LastDatabaseVolumeName :
DiskFreeSpacePercent : 90
DiskTotalSpaceBytes : 107237863424
DiskFreeSpaceBytes : 96646443008
SeedingSource : False
ActivationPreference : 1
LogsCopiedSinceInstanceStart : 0
LogsReplayedSinceInstanceStart : 0
ExtendedErrorInfo :
ErrorEventId : 0
ErrorMessage :
ReplayQueueNotKeepingUp : False
CopyQueueNotKeepingUp : False
SnapshotLatestCopyBackup : False
SnapshotLatestDifferentialBackup : False
SnapshotLatestIncrementalBackup : False
SnapshotLatestFullBackup : True
LatestCopyBackupTime : 01.01.1601 00:00:00
LatestDifferentialBackupTime : 01.01.1601 00:00:00
LatestIncrementalBackupTime : 01.01.1601 00:00:00
LatestFullBackupTime : 03.07.2013 19:30:53
LastLogCopyNotified : 4100
CurrentReplayLogTime : 01.01.0001 00:00:00
LastReplayedLogTime : 01.01.0001 00:00:00
LastInspectedLogTime : 01.01.0001 00:00:00
LastCopiedLogTime : 01.01.0001 00:00:00
LastLogInfoFromClusterGen : 4100
LastLogInfoFromClusterTime : 05.07.2013 05:44:01
LastLogInfoFromCopierTime : 05.07.2013 05:44:06
LastLogInfoIsStale : False
LastCopyNotifiedLogTime : 05.07.2013 05:39:26
LatestAvailableLogTime : 01.01.0001 00:00:00
DumpsterEndTime : 01.01.0001 00:00:00
DumpsterStartTime : 01.01.0001 00:00:00
DumpsterRequired : False
DumpsterServers :
ActionInitiator : Unknown
SuspendComment :
SinglePageRestoreNumber : 0
SinglePageRestore : False
ReplayLagPercentage : 0
ReplayLagPlayDownReason : None
ReplayLagEnabled : Disabled
ReplayLagDisabledReason :
ActualReplayLagTime : 00:00:00
ConfiguredReplayLagTime : 00:00:00
NodeStatus : Up
WorkerProcessId : 7624
ReseedBlocked : False
ResumeBlocked : False
ReplaySuspended : False
LostWrite : False
Viable : False
ActivationSuspended : False
DbSeedingKBytesWrittenPerSec : 0
DbSeedingKBytesReadPerSec : 0
DbSeedingKBytesWritten : 0
DbSeedingKBytesRead : 0
DbSeedingPercent : 0
ContentIndexSeedingSource :
ContentIndexSeedingPercent :
ContentIndexMailboxesToCrawl :
ContentIndexBacklog : 0
ContentIndexRetryQueueSize : 0
ContentIndexErrorMessage :
ContentIndexStatus : Healthy
LastStatusTransitionTime : 01.01.0001 00:00:00
InstanceStartTime : 04.07.2013 17:45:58
CICurrentness : Current
CopyStatus : Mounted
ServerVersion : 1941996140
LastLogReplayed : 0
LastLogInspected : 0
LastLogCopied : 0
LastLogGenerated : 4100
DataAvailabilityTime : 01.01.0001 00:00:00
DataProtectionTime : 01.01.0001 00:00:00
LastLogGeneratedTime : 01.01.0001 00:00:00
StatusRetrievedTime : 05.07.2013 05:44:06
ActiveDatabaseCopy : CASMBX01
MailboxServer : CASMBX01
DBName : Users05
DBGuid : 57da90db-bc6d-4bf3-b508-64d3bff41377
Event:4133
Database one datacenter health check failed.
Database copy: Users05
Redundancy count: 2
Error:
================
Full Copy Status
================
Database Copy : Users05\casmbx02
VolumeInfoLastError :
LogPathIsOnMountedFolder : False
LogVolumeName : \\?\Volume{beecae05-53ca-444d-ab5f-dd98510b4776}\
LogVolumeMountPoint : E:\
DatabasePathIsOnMountedFolder : False
DatabaseVolumeName : \\?\Volume{b92c9520-905f-4ee4-902d-1e73c26b1717}\
DatabaseVolumeMountPoint : F:\
ExchangeVolumeMountPoint :
LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
LastDatabaseVolumeName :
DiskFreeSpacePercent : 90
DiskTotalSpaceBytes : 107237863424
DiskFreeSpaceBytes : 97164902400
SeedingSource : False
ActivationPreference : 2
LogsCopiedSinceInstanceStart : 45
LogsReplayedSinceInstanceStart : 86
ExtendedErrorInfo :
ErrorEventId : 0
ErrorMessage :
ReplayQueueNotKeepingUp : False
CopyQueueNotKeepingUp : False
SnapshotLatestCopyBackup : False
SnapshotLatestDifferentialBackup : False
SnapshotLatestIncrementalBackup : False
SnapshotLatestFullBackup : True
LatestCopyBackupTime : 01.01.1601 00:00:00
LatestDifferentialBackupTime : 01.01.1601 00:00:00
LatestIncrementalBackupTime : 01.01.1601 00:00:00
LatestFullBackupTime : 04.07.2013 19:31:34
LastLogCopyNotified : 4100
CurrentReplayLogTime : 05.07.2013 05:24:26
LastReplayedLogTime : 05.07.2013 05:39:26
LastInspectedLogTime : 05.07.2013 05:39:26
LastCopiedLogTime : 05.07.2013 05:39:26
LastLogInfoFromClusterGen : 4100
LastLogInfoFromClusterTime : 05.07.2013 05:44:01
LastLogInfoFromCopierTime : 05.07.2013 05:44:00
LastLogInfoIsStale : False
LastCopyNotifiedLogTime : 05.07.2013 05:39:26
LatestAvailableLogTime : 05.07.2013 05:39:26
DumpsterEndTime : 01.01.0001 00:00:00
DumpsterStartTime : 01.01.0001 00:00:00
DumpsterRequired : False
DumpsterServers :
ActionInitiator : Service
SuspendComment :
SinglePageRestoreNumber : 0
SinglePageRestore : False
ReplayLagPercentage : 0
ReplayLagPlayDownReason : None
ReplayLagEnabled : Disabled
ReplayLagDisabledReason :
ActualReplayLagTime : 00:04:40.1554322
ConfiguredReplayLagTime : 00:00:00
NodeStatus : Up
WorkerProcessId : 8740
ReseedBlocked : False
ResumeBlocked : False
ReplaySuspended : False
LostWrite : False
Viable : True
ActivationSuspended : False
DbSeedingKBytesWrittenPerSec : 0
DbSeedingKBytesReadPerSec : 0
DbSeedingKBytesWritten : 0
DbSeedingKBytesRead : 0
DbSeedingPercent : 0
ContentIndexSeedingSource :
ContentIndexSeedingPercent :
ContentIndexMailboxesToCrawl :
ContentIndexBacklog : 0
ContentIndexRetryQueueSize : 0
ContentIndexErrorMessage :
ContentIndexStatus : Healthy
LastStatusTransitionTime : 04.07.2013 17:46:02
InstanceStartTime : 04.07.2013 17:45:59
CICurrentness : Current
CopyStatus : Healthy
ServerVersion : 1941996140
LastLogReplayed : 4100
LastLogInspected : 4100
LastLogCopied : 4100
LastLogGenerated : 4100
DataAvailabilityTime : 05.07.2013 05:39:26
DataProtectionTime : 05.07.2013 05:39:26
LastLogGeneratedTime : 05.07.2013 05:44:06
StatusRetrievedTime : 05.07.2013 05:44:06
ActiveDatabaseCopy : CASMBX01
MailboxServer : CASMBX02
DBName : Users05
DBGuid : 57da90db-bc6d-4bf3-b508-64d3bff41377
Database Copy : Users05\casmbx01
VolumeInfoLastError :
LogPathIsOnMountedFolder : False
LogVolumeName : \\?\Volume{94937623-3da4-49ab-825e-49c982ec79f1}\
LogVolumeMountPoint : E:\
DatabasePathIsOnMountedFolder : False
DatabaseVolumeName : \\?\Volume{73a9913d-1660-487b-8a8b-b53cb017728e}\
DatabaseVolumeMountPoint : F:\
ExchangeVolumeMountPoint :
LastDatabaseVolumeNameTransitionTime : 01.01.1601 00:00:00
LastDatabaseVolumeName :
DiskFreeSpacePercent : 90
DiskTotalSpaceBytes : 107237863424
DiskFreeSpaceBytes : 96646443008
SeedingSource : False
ActivationPreference : 1
LogsCopiedSinceInstanceStart : 0
LogsReplayedSinceInstanceStart : 0
ExtendedErrorInfo :
ErrorEventId : 0
ErrorMessage :
ReplayQueueNotKeepingUp : False
CopyQueueNotKeepingUp : False
SnapshotLatestCopyBackup : False
SnapshotLatestDifferentialBackup : False
SnapshotLatestIncrementalBackup : False
SnapshotLatestFullBackup : True
LatestCopyBackupTime : 01.01.1601 00:00:00
LatestDifferentialBackupTime : 01.01.1601 00:00:00
LatestIncrementalBackupTime : 01.01.1601 00:00:00
LatestFullBackupTime : 03.07.2013 19:30:53
LastLogCopyNotified : 4100
CurrentReplayLogTime : 01.01.0001 00:00:00
LastReplayedLogTime : 01.01.0001 00:00:00
LastInspectedLogTime : 01.01.0001 00:00:00
LastCopiedLogTime : 01.01.0001 00:00:00
LastLogInfoFromClusterGen : 4100
LastLogInfoFromClusterTime : 05.07.2013 05:44:01
LastLogInfoFromCopierTime : 05.07.2013 05:44:06
LastLogInfoIsStale : False
LastCopyNotifiedLogTime : 05.07.2013 05:39:26
LatestAvailableLogTime : 01.01.0001 00:00:00
DumpsterEndTime : 01.01.0001 00:00:00
DumpsterStartTime : 01.01.0001 00:00:00
DumpsterRequired : False
DumpsterServers :
ActionInitiator : Unknown
SuspendComment :
SinglePageRestoreNumber : 0
SinglePageRestore : False
ReplayLagPercentage : 0
ReplayLagPlayDownReason : None
ReplayLagEnabled : Disabled
ReplayLagDisabledReason :
ActualReplayLagTime : 00:00:00
ConfiguredReplayLagTime : 00:00:00
NodeStatus : Up
WorkerProcessId : 7624
ReseedBlocked : False
ResumeBlocked : False
ReplaySuspended : False
LostWrite : False
Viable : False
ActivationSuspended : False
DbSeedingKBytesWrittenPerSec : 0
DbSeedingKBytesReadPerSec : 0
DbSeedingKBytesWritten : 0
DbSeedingKBytesRead : 0
DbSeedingPercent : 0
ContentIndexSeedingSource :
ContentIndexSeedingPercent :
ContentIndexMailboxesToCrawl :
ContentIndexBacklog : 0
ContentIndexRetryQueueSize : 0
ContentIndexErrorMessage :
ContentIndexStatus : Healthy
LastStatusTransitionTime : 01.01.0001 00:00:00
InstanceStartTime : 04.07.2013 17:45:58
CICurrentness : Current
CopyStatus : Mounted
ServerVersion : 1941996140
LastLogReplayed : 0
LastLogInspected : 0
LastLogCopied : 0
LastLogGenerated : 4100
DataAvailabilityTime : 01.01.0001 00:00:00
DataProtectionTime : 01.01.0001 00:00:00
LastLogGeneratedTime : 01.01.0001 00:00:00
StatusRetrievedTime : 05.07.2013 05:44:06
ActiveDatabaseCopy : CASMBX01
MailboxServer : CASMBX01
DBName : Users05
DBGuid : 57da90db-bc6d-4bf3-b508-64d3bff41377
RinkenHi.
I also ran the CheckDatabaseRedundancy.ps1 script. the output was:
DatabaseName : Users05
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 11.07.2013 07:34:16
LastGreenTransitionUtc : 11.07.2013 07:34:16
LastRedTransitionUtc :
LastGreenReportedUtc : 11.07.2013 07:34:16
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
DatabaseName : Users04
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 11.07.2013 07:34:16
LastGreenTransitionUtc : 11.07.2013 07:34:16
LastRedTransitionUtc :
LastGreenReportedUtc : 11.07.2013 07:34:16
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
DatabaseName : Users02
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 11.07.2013 07:34:17
LastGreenTransitionUtc : 11.07.2013 07:34:17
LastRedTransitionUtc :
LastGreenReportedUtc : 11.07.2013 07:34:17
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
DatabaseName : Users03
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 11.07.2013 07:34:17
LastGreenTransitionUtc : 11.07.2013 07:34:17
LastRedTransitionUtc :
LastGreenReportedUtc : 11.07.2013 07:34:17
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
DatabaseName : Users01
LastRedundancyCount : 0
CurrentRedundancyCount : 2
LastState : Unknown
CurrentState : Green
LastStateTransitionUtc : 11.07.2013 07:34:17
LastGreenTransitionUtc : 11.07.2013 07:34:17
LastRedTransitionUtc :
LastGreenReportedUtc : 11.07.2013 07:34:17
HasReportedGreenEvent : True
LastRedReportedUtc :
PreviousTotalRedDuration : 00:00:00
TotalRedDuration : 00:00:00
IsTransitioningState : True
HasErrorsInHistory : False
CurrentErrorMessages :
ErrorHistory :
IsOneDatacenter : False
CurrentRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
CurrentSearchRedundancyCountPerSite : {[Default-First-Site-Name, 2]}
Rinken -
Is there any way to configure an HTTP health probe that will test a web page and fail if it takes too long for the server to respond. I have attempted to do this (see below) but the "receive" parameter doesn't seem to help. We are currently having a problem where one of the web servers for whatever reason gets really slow, while the other works fine with about the same number of users, I'd like to fail the slow when this occurrs.
Here is my probe config:
probe HTTP-SERVERASP http
request method get url /server.asp
expect status 200 299
interval 5
failed 30
receive 5
Thanks...JeffJeff,
receive seems to be the solution for what you need.
Did you verify how fast/slow the server is responding.
Currently you allow 5 sec for the response to come back and 3 consecutives must fail before the server is brought down, so if your server resond 1 time fast enough, the server stays up.
So, use a sniffer trace to verify the response time.
Send me the trace if you want.
Gilles. -
Health Check in Exchange 2007 Scripting
Hi All,
I have been looking around for scripts which would help me perform regularised health checks in my enviornment. After lot of googling i was able to get a script which would meet my requirements. However i have a few challenges involved in extracting some
more information:
1. Mailbox Store Size, Free Diskspace percentage for mailbox servers
2. Remote Mail flow Tests & Mailflow test to every exchange 2007 mailbox servers in org.
3. Automating Email of collected data (in HTML) to Administrator.
4. Executing the script Automatically without triggering it from Exchange Management Shell.
Script Below
param( [string] $auditlist)
Function Get-CustomHTML ($Header){
$Report = @"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html><head><title>$($Header)</title>
<META http-equiv=Content-Type content='text/html; charset=windows-1252'>
<meta name="save" content="history">
<style type="text/css">
DIV .expando {DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 8pt; RIGHT: 8px; COLOR: #ffffff; FONT-FAMILY: Arial; POSITION: absolute; TEXT-DECORATION: underline}
TABLE {TABLE-LAYOUT: fixed; FONT-SIZE: 100%; WIDTH: 100%}
*{margin:0}
.dspcont { display:none; BORDER-RIGHT: #B1BABF 1px solid; BORDER-TOP: #B1BABF 1px solid; PADDING-LEFT: 16px; FONT-SIZE: 8pt;MARGIN-BOTTOM: -1px; PADDING-BOTTOM: 5px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; WIDTH: 95%; COLOR: #000000; MARGIN-RIGHT:
0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; BACKGROUND-COLOR: #f9f9f9}
.filler {BORDER-RIGHT: medium none; BORDER-TOP: medium none; DISPLAY: block; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: -1px; FONT: 100%/8px Tahoma; MARGIN-LEFT: 43px; BORDER-LEFT: medium none; COLOR: #ffffff; MARGIN-RIGHT: 0px; PADDING-TOP:
4px; BORDER-BOTTOM: medium none; POSITION: relative}
.save{behavior:url(#default#savehistory);}
.dspcont1{ display:none}
a.dsphead0 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#FFFFFF; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #CC0000}
a.dsphead1 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead2 {BORDER-RIGHT: #B1BABF 1px solid; PADDING-RIGHT: 5em; BORDER-TOP: #B1BABF 1px solid; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: -1px; MARGIN-LEFT: 0px; BORDER-LEFT: #B1BABF 1px solid; CURSOR: hand; COLOR:
#ffffff; MARGIN-RIGHT: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: #B1BABF 1px solid; FONT-FAMILY: Tahoma; POSITION: relative; HEIGHT: 2.25em; WIDTH: 95%; BACKGROUND-COLOR: #7BA7C7}
a.dsphead1 span.dspchar{font-family:monospace;font-weight:normal;}
td {VERTICAL-ALIGN: TOP; FONT-FAMILY: Tahoma}
th {VERTICAL-ALIGN: TOP; COLOR: #CC0000; TEXT-ALIGN: left}
BODY {margin-left: 4pt}
BODY {margin-right: 4pt}
BODY {margin-top: 6pt}
</style>
<script type="text/javascript">
function dsp(loc){
if(document.getElementById){
var foc=loc.firstChild;
foc=loc.firstChild.innerHTML?
loc.firstChild:
loc.firstChild.nextSibling;
foc.innerHTML=foc.innerHTML=='hide'?'show':'hide';
foc=loc.parentNode.nextSibling.style?
loc.parentNode.nextSibling:
loc.parentNode.nextSibling.nextSibling;
foc.style.display=foc.style.display=='block'?'none':'block';}}
if(!document.getElementById)
document.write('<style type="text/css">\n'+'.dspcont{display:block;}\n'+ '</style>');
</script>
</head>
<body>
<b><font face="Arial" size="5">$($Header)</font></b><hr size="8" color="#CC0000">
<font face="Arial" size="1"><b>Version 1 |M & C | <A HREF='http://mail.exchange.com'>mail.exchange.com</A></b></font><br>
<font face="Arial" size="1">Report created on $(Get-Date)</font>
<div class="filler"></div>
<div class="filler"></div>
<div class="filler"></div>
<div class="save">
Return $Report
Function Get-CustomHeader0 ($Title){
$Report = @"
<div class="dspcont0">
<h1><a href="javascript:void(0)" class="dsphead0" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h1>
<div class="dspcont0">
Return $Report
Function Get-CustomHeader ($Num, $Title){
$Report = @"
<h2><a href="javascript:void(0)" class="dsphead$($Num)" onclick="dsp(this)">
<span class="expando">show</span>$($Title)</a></h2>
<div class="dspcont">
Return $Report
Function Get-CustomHeaderClose{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHeader0Close{
$Report = @"
</DIV>
<div class="filler"></div>
Return $Report
Function Get-CustomHTMLClose{
$Report = @"
</div>
</body>
</html>
Return $Report
Function Get-HTMLTable{
param([array]$Content)
$HTMLTable = $Content | ConvertTo-Html
$HTMLTable = $HTMLTable -replace '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">', ""
$HTMLTable = $HTMLTable -replace '<html xmlns="http://www.w3.org/1999/xhtml">', ""
$HTMLTable = $HTMLTable -replace '<head>', ""
$HTMLTable = $HTMLTable -replace '<title>HTML TABLE</title>', ""
$HTMLTable = $HTMLTable -replace '<', "<"
$HTMLTable = $HTMLTable -replace '>', ">"
$HTMLTable = $HTMLTable -replace '</head><body>', ""
$HTMLTable = $HTMLTable -replace '</body></html>', ""
Return $HTMLTable
Function Get-HTMLLink ($activeURL){
$Report = @"
<a href=$activeURL>$activeURL</a>
Return $Report
Function Get-Ink ([String]$inData){
[String]$inclPercentage = @(35..100)
$positive = ($inclPercentage, 'Success', 'Ready', 'Running', 'OK', 'True', 'Information')
If ($positive -match $inData)
$Report = @"
<font color='#009900'>$inData</font>
Else
$Report = @"
<font color='#FF0000'>$inData</font>
Return $Report
Function Get-HTMLBasic ($Detail){
$Report = @"
<TABLE>
<tr>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
Function Get-HTMLDetail ($Heading, $Detail){
$Report = @"
<TABLE>
<tr>
<th width='25%'><b>$Heading</b></font></th>
<td width='75%'>$($Detail)</td>
</tr>
</TABLE>
Return $Report
$input | foreach {$targets += @($_)}
If ((Test-Path variable:\targets) -eq $True){
Write-Host "Server list input detected on pipeline" -ForegroundColor Yellow
Else{
if ($auditlist -eq ""){
Write-Host "No server list specified, getting all Exchange 2007 servers" -ForegroundColor Yellow
$targets = Get-ExchangeServer | Where-Object {$_.IsExchange2007OrLater -eq $True}
else
if ((Test-Path $auditlist) -eq $false)
Write-Host "Invalid server list specified: $auditlist" -ForegroundColor DarkRed
exit
else
Write-Host "Using Audit list: $auditlist" -ForegroundColor Cyan
$Targets = Get-Content $auditlist
$now = Get-Date
#Custom Expressions
$latencyMS = @{Name="Latency(MS)";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$MessageLatencyTime = @{Name="MessageLatencyTime";expression={[Math]::Round(([TimeSpan] $_.Latency).TotalMilliSeconds)}}
$hotLink = @{Name="URL";expression={Get-HTMLLink ($_.URL)}}
$colourResult = @{Name="Result";expression={Get-Ink ($_.Result)}}
$colourStatus = @{Name="Status";expression={Get-Ink ($_.Status)}}
$colourType = @{Name="Status";expression={Get-Ink ($_.Type)}}
$newResult = @{Name="Result";expression={If ($_.Result.ToString() -ne 'Success'){Get-Ink ('Failure')} Else {Get-Ink ('Success') }}}
$fullReport = Get-CustomHTML "Exchange 2007 "
$fullReport += Get-CustomHTMLClose
Foreach ($Target in $Targets){
Write-Host "Collating Detail for $Target" -ForegroundColor Yellow
Write-Host "..getting basic computer configuration"
$ComputerSystem = Get-WmiObject -computername $Target Win32_ComputerSystem
switch ($ComputerSystem.DomainRole){
0 { $ComputerRole = "Standalone Workstation" }
1 { $ComputerRole = "Member Workstation" }
2 { $ComputerRole = "Standalone Server" }
3 { $ComputerRole = "Member Server" }
4 { $ComputerRole = "Domain Controller" }
5 { $ComputerRole = "Domain Controller" }
default { $ComputerRole = "Information not available" }
$OperatingSystems = Get-WmiObject -computername $Target Win32_OperatingSystem
$TimeZone = Get-WmiObject -computername $Target Win32_Timezone
$Keyboards = Get-WmiObject -computername $Target Win32_Keyboard
$SchedTasks = Get-WmiObject -computername $Target Win32_ScheduledJob
$BootINI = $OperatingSystems.SystemDrive + "boot.ini"
$RecoveryOptions = Get-WmiObject -computername $Target Win32_OSRecoveryConfiguration
$exServer = Get-ExchangeServer | where {$_.Name -eq "$Target"}
$exVersion = "Version " + $exServer.AdminDisplayVersion.Major + "." + $exServer.AdminDisplayVersion.Minor + " (Build " + $exServer.AdminDisplayVersion.Build + "." + $exServer.AdminDisplayVersion.Revision + ")"
switch ($ComputerRole){
"Member Workstation" { $CompType = "Computer Domain"; break }
"Domain Controller" { $CompType = "Computer Domain"; break }
"Member Server" { $CompType = "Computer Domain"; break }
default { $CompType = "Computer Workgroup"; break }
$LBTime=$OperatingSystems.ConvertToDateTime($OperatingSystems.Lastbootuptime)
$MyReport += Get-CustomHeader0 "$Target - Role(s): $($exServer.ServerRole)"
$MyReport += Get-CustomHeader "2" "Basic Server Information"
$MyReport += Get-HTMLDetail "Computer Name" ($ComputerSystem.Name)
$MyReport += Get-HTMLDetail "Computer Role" ($ComputerRole)
$MyReport += Get-HTMLDetail "Exchange Role(s)" ($exServer.ServerRole)
$MyReport += Get-HTMLDetail "Last System Boot" ($LBTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting logical disk configuration"
$Disks = Get-WmiObject -ComputerName $Target Win32_LogicalDisk
$MyReport += Get-CustomHeader "2" "Logical Disk Configuration"
$LogicalDrives = @()
Foreach ($LDrive in ($Disks | Where {$_.DriveType -eq 3})){
$Details = "" | Select "Drive Letter", Label, "File System", "Disk Size (GB)", "Disk Free Space", "% Free Space"
$Details."Drive Letter" = $LDrive.DeviceID
$Details.Label = $LDrive.VolumeName
$Details."File System" = $LDrive.FileSystem
$Details."Disk Size (GB)" = [math]::round(($LDrive.size / 1GB))
$Details."Disk Free Space" = [math]::round(($LDrive.FreeSpace / 1GB))
$Details."% Free Space" = Get-Ink ([Math]::Round(($LDrive.FreeSpace /1GB) / ($LDrive.Size / 1GB) * 100))
$LogicalDrives += $Details
$MyReport += Get-HTMLTable ($LogicalDrives)
$MyReport += Get-CustomHeaderClose
if ($exServer.ServerRole -like "*ClientAccess*")
{$MyReport += Get-CustomHeader "2" "OWA Connectivity"
Write-Host "..performing OWA connectivity test"
$colOWAResults = Test-OwaConnectivity -ClientAccessServer $Target
$MyReport += Get-HTMLTable ($colOWAResults | select MailboxServer, $hotLink, Scenario, $colourResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting queue details"
if ($exServer.ServerRole -like "*HubTransport*")
$MyReport += Get-CustomHeader "2" "Queue Information"
$colQs = Get-Queue -server $Target
$MyReport += Get-HTMLTable ($colQs | Select-Object NextHopDomain, $colourStatus, MessageCount, NextRetryTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting mailbox database information"
$spaceLog=[System.Diagnostics.EventLog]::GetEventLogs($target) | where {($_.LogDisplayName -eq "Application")}
$db = @{Name="database";Expression={$_.ReplacementStrings[1]}}
$freeMB = @{Name="MB";Expression={[int]$_.ReplacementStrings[0]}}
$whiteSpace = $spaceLog.entries | where {($_.TimeWritten -ge $now.AddDays(-1))} | where {($_.EventID -eq "1221")} | select $db,$freeMB
$ws = @{Name="White Space";expression={}}
if ($exServer.ServerRole -like "*Mailbox*")
$MyReport += Get-CustomHeader "2" "Mailbox Stores"
$colMailboxStores = Get-MailboxDatabase -Server $Target -Status | Sort-Object Name
$storeTable = @()
Foreach ($objMailboxStore in $colMailboxStores)
[string]$totalUsers = (get-mailbox -database $objMailboxStore).count
[string]$empty = $totalUsers.Length -eq 0
if ($empty -eq 'True')
[string]$totalUsers = "0"
$storeDetails = "" | Select Name, Mounted, "Total Users", "White Space", LastFullBackup
$storeDetails.Name = $objMailboxStore.Name
$storeDetails.Mounted = Get-Ink ($objMailboxStore.Mounted)
$storeDetails."Total Users" = $totalUsers
$storeDetails."White Space" = (($whitespace | where {$_.database -match $objMailboxStore.Name} | select -last 1).mb)
$storeDetails.LastFullBackup = $objMailboxStore.LastFullBackup
$storeTable += $storeDetails
$MyReport += Get-HTMLTable ($storeTable)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "MAPI Connectivity"
Write-Host "..performing MAPI connectivity test"
$colMAPIResults = Test-MAPIConnectivity -Server $Target
$MyReport += Get-HTMLTable ($colMAPIResults | select Database, $newResult, $latencyMS, Error)
$MyReport += Get-CustomHeaderClose
$MyReport += Get-CustomHeader "2" "Mailflow Test"
Write-Host "..performing Mailflow test"
$colMailflowResults = Test-Mailflow -Server $Target
$MyReport += Get-HTMLTable ($colMailflowResults | select TestMailflowResult, $MessageLatencyTime)
$MyReport += Get-CustomHeaderClose
Write-Host "..getting Exchange services"
$ListOfServices = (gwmi -computer $Target -query "select * from win32_service where Name like 'MSExchange%' or Name like 'IIS%' or Name like 'SMTP%' or Name like 'POP%' or Name like 'W3SVC%'")
$MyReport += Get-CustomHeader "2" "Exchange Services"
$Services = @()
Foreach ($Service in $ListOfServices){
$Details = "" | Select Name,Account,"Start Mode",State,"Expected State"
$Details.Name = $Service.Caption
$Details.Account = $Service.Startname
$Details."Start Mode" = $Service.StartMode
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Auto")
if ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Disabled")
If ($Service.State -eq "Running")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("Unexpected")
If ($Service.StartMode -eq "Disabled")
if ($Service.State -eq "Stopped")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.StartMode -eq "Manual")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
If ($Service.State -eq "Paused")
$Details.State = $Service.State
$Details."Expected State" = Get-Ink ("OK")
$Services += $Details
$MyReport += Get-HTMLTable ($Services)
$MyReport += Get-CustomHeaderClose
$eventLogs=[System.Diagnostics.EventLog]::GetEventLogs($Target) | where {($_.LogDisplayName -eq "Application") -OR ($_.LogDisplayName -eq "System")}
$warningEvents = @()
$errorEvents = @()
$LogSettings = @()
$MyReport += Get-CustomHTMLClose
$fullReport += $MyReport
$MyReport = $null
$Date = Get-Date
$Filename = ".\" + "Exchange_Health" + "_" + $date.Hour + $date.Minute + "_" + $Date.Day + "-" + $Date.Month + "-" + $Date.Year + ".htm"
$fullReport | out-file -encoding ASCII -filepath $Filename
Write "Audit saved as $Filename"
Invoke-Item $Filenameplease refer to my scripts below, it should get you started.
http://www.myexchangeworld.com/2010/03/powershell-disk-space-html-email-report/
http://www.myexchangeworld.com/2010/07/powershell-script-to-monitor-exchange-server-2010-services-email-report/
you can customsise this to your needs and add relevant information.
cheers
thiyagu
Thiyagu | MCTS/MCITP - Exchange 2007 | MCSE 2003[Messaging] | http://www.myExchangeWorld.com. This posting is provided "AS IS" with no warranties, and confers no rights. -
Exchange 2010 Org Health check telling me I need Enterprise CALs, bug?
My new install of Exchange 2010 Enterprise organizational health check is telling me I also need Enterprise CALs for all of my test users. This does not seem right since I have not enabled any features listed as ecal features at http://www.microsoft.com/exchange/en-us/licensing-exchange-server-email.aspx#Exchange2010CAL
in fact the setup is a very basic one. The test users were migrated from an existing exchange 2007 server but again no enterprise features were enabled there. Is there a way to tell what it thinks I need enterprise CALs for? Is this a bug? I saw a notice that
the RTM version had counted the default exchange active sync policy as an ecal requirement but I figured this would have been fixed by now.looks like it has reared its head in update rollup 8-v2 for sp3. Last year I was playing around with the archive mailbox to see if it was something we may want to implement. At the time our enterprise cal requirements went from 0 to 1 for the test system
I was using. This ended up being something we did not want to pursue at the time so I disabled the option on the account. Happened to run the organizational health link today and now it says that all accounts need enterprise cals. Did not appear to be an issue
in update 7.
Maybe you are looking for
-
It doesn�t work lazy loading with remote client (toplink)
I am trying to use lazy loading in a @ManyToOne field but I get an exception. I have been reading in some oracle tutorials that it's necesary use -javaagent:.../lib/toplink-essentials-agent.jar for that it works because this argument activate dynamic
-
Can I set parental control on firefox for a specific user only?
I'm using windows 7 and firefox 18.0.2. On my PC I have my Admin account and my kids account. Now as they're coming to an age they're needing Internet access for projects and so on, I wonder if I can set parental control on firefox (by add-on?) as I
-
HT3945 Aperture 2 library "cannot be upgraded" to work with Aperture 3; why not?
Just bought and installed Aperture 3,latest version. Before loading new program, I unplugged external hard drive where my Aperture library is stored. Just wanted to make sure nothing happened to the content, in excess of 60,000 images. After booting
-
On my sendmail 8.12.8 server, when someone from a domain other than .com domain sends mail, they get the following error. Mar 12 12:24:13 sunnyboy sendmail[15913]: [ID 801593 mail.notice] h2CKODFx015913: ruleset=check_mail, arg1=<[email protected]>,
-
Dear all, My requirement is to create a virtual KF using BADI to populate a keyfigure ZWKDAY value in the bex query. Condition - I need to read 0calday from the cube and find it whether its a workday or not. If its working day then my KF ZWKDAY shou