An open API service indexing awesome lists of open source software.

https://github.com/netways/check_exchange_powershell

Icinga check plugin for Microsoft Exchange Monitoring
https://github.com/netways/check_exchange_powershell

exchange icinga monitoring plugin

Last synced: 2 months ago
JSON representation

Icinga check plugin for Microsoft Exchange Monitoring

Awesome Lists containing this project

README

        

Icinga Check Microsoft Exchange
===============================

This is a collection of Powershell Scripts designed to check a Microsoft Exchange Setup from
Icinga 2 with the agent running on the Exchange Windows Servers.

## Checks

For `CheckCommand` definitions see [icinga2-commands.conf](icinga2-commands.conf).

## Credentials

```
Get-Credential | Export-CliXml ".\MailboxCredential.xml"

# Needs to be stored in:
# $PSScriptRoot\MailboxCredential.xml

# Can be adjusted with the parameter 'CredentialPath'
```

### check_exchange_health

Checks the server health of Microsoft Exchange by calling `Get-ServerHealth`

```
OK: All 159 scenarios are fine
```

### check_exchange_queues

```
OK: All 10 queues are fine
[OK] EX01\Submission: Ready, deferred (0), locked (0), messages (0)
[OK] EX01\Shadow\6: Ready, deferred (0), locked (0), messages (32)
[OK] EX01\50: Ready, deferred (0), locked (0), messages (0)
[OK] EX01\Shadow\3: Ready, deferred (0), locked (0), messages (355)
[OK] EX01\8: Ready, deferred (0), locked (0), messages (0)
[OK] EX01\Shadow\7: Ready, deferred (0), locked (0), messages (33)
[OK] EX01\4: Ready, deferred (0), locked (0), messages (0)
[OK] EX01\Shadow\51: Ready, deferred (0), locked (0), messages (1)
[OK] EX01\5: Ready, deferred (0), locked (0), messages (0)
[OK] EX01\Shadow\58: Ready, deferred (0), locked (0), messages (1)
| 'EX01_Submission::deferred'=0;5;10;0 'EX01_Submission::locked'=0;5;10;0 'EX01_Submission::count'=0;20;50;0 'EX01_Shadow_6::deferred'=0;5;10;0 'F
R02641VMA_Shadow_6::locked'=0;5;10;0 'EX01_Shadow_6::count'=32;;;0 'EX01_50::deferred'=0;5;10;0 'EX01_50::locked'=0;5;10;0 'EX01_50::count'=0;20;5
0;0 'EX01_Shadow_3::deferred'=0;5;10;0 'EX01_Shadow_3::locked'=0;5;10;0 'EX01_Shadow_3::count'=355;;;0 'EX01_8::deferred'=0;5;10;0 'EX01_8::
locked'=0;5;10;0 'EX01_8::count'=0;20;50;0 'EX01_Shadow_7::deferred'=0;5;10;0 'EX01_Shadow_7::locked'=0;5;10;0 'EX01_Shadow_7::count'=33;;;0 'FR02
641VMA_4::deferred'=0;5;10;0 'EX01_4::locked'=0;5;10;0 'EX01_4::count'=0;20;50;0 'EX01_Shadow_51::deferred'=0;5;10;0 'EX01_Shadow_51::locked'=0;5;
10;0 'EX01_Shadow_51::count'=1;;;0 'EX01_5::deferred'=0;5;10;0 'EX01_5::locked'=0;5;10;0 'EX01_5::count'=0;20;50;0 'EX01_Shadow_58::deferred
'=0;5;10;0 'EX01_Shadow_58::locked'=0;5;10;0 'EX01_Shadow_58::count'=1;;;0
```

### check_exchange_mailbox_databases

Checks the availability and health of Exchange Databases with `Get-MailboxDatabase`

```
OK: All 1 databases are fine
[OK] Mailbox Database 123456
```

### check_exchange_webservices

Checks the availablitity of EWS and other web services with `Test-OutlookWebServices`

**Note:** This require mailbox credentials - see script help inside.

```
OK: All 4 scenarios are fine
[OK] OfflineAddressBook: Success
[OK] AvailabilityService: Success
[OK] ExchangeWebServices: Success
[OK] AutoDiscoverOutlookProvider: Success
| 'OfflineAddressBook::latency'=74ms;500;1000;0 'AvailabilityService::latency'=62ms;500;1000;0 'ExchangeWebServices::latency'=32ms;500;1000;0 'AutoDiscoverOutlookProvider
::latency'=98ms;500;1000;0
```

### check_exchange_edge_synchronization

Checks the status of Exchange Edge Synchronization by calling `Get-EdgeSubscription` and `Test-EdgeSynchronization`

```
OK: All 2 Edge Synchronizations are fine
[OK] EX01: Normal, sync 1 minutes old
[OK] EX02: Normal, sync 1 minutes old
| 'EX01::sync_age'=28s;300;600;0 'EX02::sync_age'=28s;300;600;0
```

## Known Issues

### Import-Clixml

```
Command: Get-Credential | Export-CliXml .\MailboxCredential.xml
->
Import-Clixml : Key not valid for use in specified state
```

Solution: Needs to run as user "SYSTEM" (Example: via `PsExec`).

## Contributing

Feel free to ask questions and open issues. Feedback is always welcome and appreciated.

## License

Copyright (C) 2018 Markus Frosch
2018 NETWAYS GmbH

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.