WARNING: Experimental
Easy monitor the state of linux and windows servers, as well as the tools running on them.
Directly from your browser, see the state of all your servers in one glance.
- Make the jar by running
gradlew pack
- Deploy the tool on each server
- Copy
conf/sample.json
toconf/monitor.json
- Edit the configuration to match your needs
- Start the monitor with
java -jar serverMonitor.jar
- Local to the server
- System CPU usage
- System memory usage
- Disk usage on all root partitions
- If specific processes are currently running on the server or not
- Available system updates (apt-get and apt based only)
- Network
- Pingability of other servers (either echo based or connection to a specific port)
- Handshake with other servers running this tool (custom HTTP handshake)
- If the monitor is not running on another server
- Clock issues between servers
There is a GUI to monitor all the machines visible through the handshake.
From the GUI it is possible to:
- See the state of all monitored machines at once
- See the details for each monitored machine (What is working, what is not working, ...)
- See and update the settings of any monitored machine ** Note: Changing the web server port requires a restart to take effect
Doing a GET
on /status
will return the current status of all monitors
Doing a GET
on /config
will return the current configuration
Doing a POST
on /config
, with the new settings as a payload will update settings live.
The new settings will be kept in memory, by adding the parameter ?persist=true
, the new settings will also be persisted to disk.
NOTE: The web server port is the only setting which can not be updated through this method at this time.
- Through the GUI (open http://localhost:9191 by default)
- Printing messages to the console
- Printing messages to a log file
- Sending notifications to a MessageCard compatible API (like Microsoft Teams)
- Oshi is used for system monitoring
- Jackson for JSON parsing and writing
- Jersey+jetty for the handshake server
- RestEasy for the handshake client
- Logback+Slf4j for logging
- Echarts for the charts
- Echarts for the UI
Yum based system update monitorA way too fetch current status through RESTA way to see current config through RESTA way to update current config through RESTA way to fetch the entire cluster statusA GUIPackage www folder more easilyMore consistent configuration for each monitorDebouncer for failed monitors"Recovered" type of notification- Windows update monitor (if possible without being admin)
- Monitor for installed services ** Sonarqube monitor ** Jenkins monitor