├── .gitignore ├── LICENSE.md ├── README.md ├── build_chrome.sh ├── build_firefox.sh ├── bun.lockb ├── dist └── style.css ├── help.html ├── img ├── blendbyte.png ├── downtime.png ├── github.jpg ├── icon_black_128.png ├── icon_black_16.png ├── icon_black_256.png ├── icon_black_32.png ├── icon_black_512.png ├── icon_black_64.png ├── icon_white_128.png ├── icon_white_16.png ├── icon_white_256.png ├── icon_white_32.png ├── icon_white_512.png ├── icon_white_64.png ├── ok.png └── reload.png ├── inc ├── animation.css ├── background.js ├── background_script.js ├── data.js ├── icinga.js ├── jquery-3.7.1.min.js ├── offscreen.js ├── options.js ├── popup.js └── service_worker.js ├── manifest.chrome.json ├── manifest.firefox.json ├── offscreen.html ├── options.html ├── package.json ├── popup.html ├── sounds ├── dingding.mp3 ├── horn.mp3 └── laser.mp3 └── src └── style.css /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | manifest.json 3 | *.zip 4 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Daniel Schmitz, https://bashgeek.net 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Icinga Multi Status for web browsers 2 | 3 |  4 | 5 | Icinga Multi Status helps you to monitor your (multiple or single) Icinga instances with comfortable alert badges and notifications about incidents right within your web browser. 6 | 7 | Get it from the [Chrome Web Store](https://chrome.google.com/webstore/detail/icinga-multi-status/khabbhcojgkibdeipanmiphceeoiijal) 8 | 9 | Get it from the [Mozilla Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/icinga-multi-status-real/) 10 | 11 | ## Features 12 | 13 | - Monitoring of multiple Icinga Instances (Version 1 and 2) using it's JSON data interface and/or API 14 | - Ability to hide/ignore certain host or service patterns and hosts/services with downtimes 15 | - Configurable refresh time for each instance 16 | - Configurable alarm sounds 17 | - Ability to temporarily disable instances without deleting them 18 | - Status-Icon in Toolbar, showing indicator for problems or number of hosts if everything is okay 19 | - Overview Tab showing status of your Icinga instances as well as it's current host or service problems 20 | - Set an host and/or service issue as "Acknowledged" 21 | - Ability to trigger an immediate service recheck 22 | - Hosts Tab showing you all hosts of all Instances with a quick filter to search for a host 23 | - Services Tab showing you all services of all hosts of all Instances with a quick filter to search for a service 24 | - Instant browser/OS notifications about new problems, if enabled 25 | - Interface completely build on TailwindCSS 26 | 27 | ## Support 28 | 29 | - Icinga Classic UI (Requires Version >= 1.8.0), via HTTP or HTTPS 30 | - Icinga 2 API (Requires Version >= 2.4), via HTTPS 31 | 32 | ## How-to for using the [Icinga 2 API](https://www.icinga.com/docs/icinga2/latest/doc/12-icinga2-api/) 33 | - Please make sure you enabled and configured the new API in your Icinga 2 installation by either setting it up manually or use the CLI command for the automatic setup, which also creates a root-user for the API with a random password. 34 | ``` 35 | # Run the automatic setup 36 | $ icinga2 api setup 37 | 38 | # Restart the icinga2 service 39 | $ service icinga2 restart 40 | ``` 41 | - You will find the automatically generated API user here: `/etc/icinga2/conf.d/api-users.conf` 42 | - The default port of the Icinga 2 API is `5665`, so the URL to go with would be like: `https://myicingaserver.com:5665/` 43 | - If you use a self-signed certificate (like the one automatically created in the first step) you have to add it to your browsers/OS trusted store before it'll work in the plugin. This can easily be done be visiting the API URL in a browser tab and accept the certificate. 44 | - Currently we require the following API permissions: ```objects/query/host```, ```status/query```, ```objects/query/service``` 45 | - If you want to use the Acknowledgement functionality, we additionally need: ```actions/acknowledge-problem``` 46 | - If you want to use the Reschedule functionality, we additionally need: ```actions/reschedule-check``` 47 | - If you run into any problems, please stick to the official [Icinga 2 API documentation](https://www.icinga.com/docs/icinga2/latest/doc/12-icinga2-api/) 48 | 49 | ## How to generate assets 50 | - Install NodeJS 20 and [Bun](https://bun.sh/) 51 | - `bun install` 52 | - `bun run build` 53 | 54 | ## Credits 55 | 56 | - Daniel Schmitz, [mastodon.social/@bashgeek](https://mastodon.social/@bashgeek) 57 | - Heavily inspired by [IcingaChromedStatus](https://github.com/kepi/IcingaChromedStatus) 58 | 59 | ## License 60 | 61 | This extension is released under [MIT License](https://github.com/bashgeek/icinga-multi-status/blob/master/LICENSE.md). 62 | -------------------------------------------------------------------------------- /build_chrome.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp manifest.chrome.json manifest.json 3 | zip chrome.zip -r * -x "node_modules/*" -x *.zip 4 | -------------------------------------------------------------------------------- /build_firefox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp manifest.firefox.json manifest.json 3 | zip firefox.zip -r * -x "node_modules/*" -x *.zip 4 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bashgeek/icinga-multi-status/628fa4272db63bdcd9a78869c40e05bb904ac755/bun.lockb -------------------------------------------------------------------------------- /help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |Some settings act as a global default and can be overridden by specifying them again in the instance settings.
21 | 22 |Setting | 26 |Description | 27 |
---|---|
Refresh Rate | 32 |The interval in which all active Icinga instances will get queried and the plugin data updated. | 33 |
Default Acknowledge Expiry | 36 |If you use the Acknowledgment functionality, this will define the default expiration for it. | 37 |
Default Acknowledge Persistent | 40 |If you use the Acknowledgment functionality, this will define the default persistent setting for your acknowledgment. Persistent means, the comment for your acknowledgment will remain after the host/service recovers or the acknowledgment expires. | 41 |
Default Acknowledge Sticky | 44 |If you use the Acknowledgment functionality, this will define the default sticky setting for your acknowledgment. Sticky means, the acknowledgment will be set until the service or host fully recovers. | 45 |
Default Acknowledge Author | 48 |If you use the Acknowledgment functionality, this will define the default author name for your acknowledgment. Can be anything, most likely your name recognized by your co-workers. The comment will be posted with this username. | 49 |
Play Alarm Sound | 52 |Whether you want an alarm sound to be played, if any issues are seen. You can select from a few selected alarms. You can click here to listen to all of them. | 53 |
Repeat Alarm Sound | 56 |Defines how often you want to repeat the alarm sound. | 57 |
Setting | 66 |Description | 67 |
---|---|
Icinga Data URL | 72 |The absolute URL to your Icinga setup or API. Both HTTPS and HTTP URLs work. Trailing slash is optional. Example: https://myicingaserver.com/icinga/ or https://myicingaserver.com:5665/ |
73 |
Icingaweb 2 URL | 76 |The absolute URL to your Icingaweb2 instance while you use the Icinga 2 API and therefore this is optional. Enables correct linking of hosts and services. Trailing slash is optional. Example: https://myicingaserver.com/icingaweb2/ |
77 |
Instance Title | 80 |A short but recognizable title for your Icinga instance used by this extension. Example: My Icinga Instance |
81 |
Username | 84 |If your Icinga instance requires an authentication, you can place the username here. If you use the Icinga 2 API type, put your API user here. Example: icingaadmin |
85 |
Password | 88 |If your Icinga instance requires an authentication, you can place the password to the above username here. If you use the Icinga 2 API type, put your API password here. Example: icingaadmin |
89 |
Default Acknowledge Expiry | 92 |If you use the Acknowledgment functionality, this will define the default expiration for your acknowledgment. | 93 |
Default Acknowledge Persistent | 96 |If you use the Acknowledgment functionality, this will define the default persistent setting for your acknowledgment. Persistent means, the comment for your acknowledgment will remain after the host/service recovers or the acknowledgment expires. | 97 |
Default Acknowledge Sticky | 100 |If you use the Acknowledgment functionality, this will define the default sticky setting for your acknowledgment. Sticky means, the acknowledgment will be set until the service or host fully recovers. | 101 |
Default Acknowledge Author | 104 |If you use the Acknowledgment functionality, this will define the default author name for your acknowledgment. Can be anything, most likely your name recognized by your co-workers. The comment will be posted with this username. | 105 |
Hide and ignore hosts | 108 |Regular Expression to hide/ignore specific hosts from showing up in the monitoring. You won't receive notifications or alerts of matching hosts. They're also not showing up in the overview lists. Example: web[0-9]+ |
109 |
Hide and ignore services | 112 |Regular Expression to hide/ignore specific services from showing up in the monitoring. You won't receive notifications or alerts of matching services. They're also not showing up in the overview lists. Example: (imap|ssh) |
113 |
Ignore acknowledged host & service problems | 116 |If you acknowledge a host or service problem in Icinga, you won't get notified or alerted here if enabled. | 117 |
Ignore hosts & services with a downtime | 120 |If a scheduled downtime is active for a host or service in Icinga, you won't get notified or alerted here if enabled. | 121 |
Ignore hosts & services with problems in SOFT state | 124 |Only respects problems in HARD state if enabled. | 125 |
No notifications for warnings | 128 |If enabled, you won't get any notifications for service warnings. | 129 |
# Run the automatic setup 138 | $ icinga2 api setup 139 | 140 | # Restart the icinga2 service 141 | $ service icinga2 restart142 |
Badge Layout | 157 |Description | 158 |
---|---|
"..." on mild blue background | 163 |Icinga Multi Status is refreshing its data by querying your Icinga instances. | 164 |
Digit on purple background | 167 |Amount of Icinga instances having problems (Can't connect to Icinga instance) | 168 |
Digit on pink background | 171 |Amount of services having UNKNOWN status | 172 |
Digit on orange background | 175 |Amount of services having WARNING status | 176 |
Digit on red background | 179 |Amount of hosts having DOWN/UNREACHABLE status and services having CRITICAL status | 180 |
Digit on green background | 183 |Amount of hosts having UP status (also means everything ok) | 184 |
Host | ' 149 | + 'Service | ' 150 | + 'Status | ' 151 | //+ '' 152 | + ' |
---|
Host | ' 232 | + 'Status | ' 233 | + '
---|