Jarvis
Jarvis is your customizable personal server monitoring butler. Jarvis keeps tap on your server for performance issues and potentially bad player behaviours, and gives you immediate notifications so actions can be taken accordingly.
Current Features
- If someone spams X messages in Y seconds (configure to see your fit; default 5 messages per 10 seconds burst)
- If someone posts X hostname/ip in Y minute (e.g.: potentially competitor server spam advertising; configurable to see your fit; default 5 hostname/IP in 5 minutes)
- If more than X TNT go off within Y seconds (e.g.: potentially griefer blowing stuff up; configurable; default 10 TNT in 10 seconds)
- If free memory fell below configurable threshold for X times in the previous minute (~one check per second*; default 30 times, less than 20% free)
- If TPS fell below configurable threshold for X times in the previous minute (~one check per second*; default 30 times, less than 17.5 TPS)
- Enable / Disable any monitoring rules (above)
-
Notifications for any potential problems:
- RSS feed
- E-mail Notification
- PushOver Push Notification
- Twitter DM
-
HIGHLY secure, all communication are encrypted with 128 bits AES (randomized password each server restart) and 2048 bits RSA encryption (unique key pairs for each server); your server's privacy is top priority.
- Also working on acquiring SSL for added layer of encryption, though, this is probably overkill.
* Approximately one check per second. Monitoring task is setup to run every tick, if some how a tick runs for longer than 1 second, you might "lose" a second worth of monitoring.
Roadmap
-
Next Revision release after initial release
-
More monitoring rules such as:
- X-ray detection (configurable amount of configurable blocks of certain type being mined in some configurable duration)
- Honeypot detection (configurable honeypot block being edited / chest being opened)
- Griefing detection (configurable amount of eggs being used in configurable duration)
-
More monitoring rules such as:
-
Next Minor release after initial release
-
Network issue monitoring
- Server ping at regular intervals to notify you of potential server outage
Configurable amount of players disconnect within configurable duration to notify potential network issuesConfigurable amount of players connect within configurable duration to notify potential spam attack- Previous two implemented as of Jarvis-1.0.0-InDev-2013052501!
-
Network issue monitoring
-
Next Major release after initial release
- API for injecting additional monitoring rules, so we can collaboratively work together to look for problems.
- Text message / Voice calling notifications
- Interactive notification (get a call, hear what's going on, click 1 to warn individual involved, 2 to ban individual, 3 to ban + roll back)
Together, we can rid bad activities, and keep our communities fun for the legitimate players!
History
2013-06-23 - No updates on the Jarvis client end yet. I've been spending a lot of time looking into refactoring the Jarvis API server. I will make more information available as that happens!
2013-06-07 - Jarvis-1.0.0-Alpha-2013060301 have been approved! Don't have an account yet? Use this secret invitation registration link! ;)
2013-06-03 - Jarvis-1.0.0-Alpha-2013060301 have been submitted for review. It shades some of the packages removed in the previous update back. The package is still much smaller than InDev-2013052501. It should be available depending on approval times (3.25 days based on historical average).
2013-05-28 - Jarvis-1.0.0-InDev-2013052501 is now available for download! I've also worked with mbaxter to trim things down. A much smaller package, Jarvis-1.0.0-InDev-2013052901 is available now!
Internet discovered an issue yesterday with OpenSSL and security of data over HTTPS. Jarvis' protocol encryption does not depend on HTTPS, nor does its API use HTTPS, as such, Jarvis is not affected. The way Jarvis deals with encryption is as follows:
As for external end of things:
As such, I would like to think for the time being, our entire chain should be secure. If you notice anything else I may have over sighted, please do let me know, and I will try to address it as soon as possible.
@penne12
Sorry for the late reply.
I've been bombarded with work lately and haven't got a chance to update. Phone support is a long term work-in-progress feature that I want to add after the initial release, but there are other hurdles to jump over first (e.g.: make it so people can create custom monitoring hooks better).
I'll donate if you set up the phone support, and greifing dection. maybe $5 or $10.
you still working on this. I just checked it out an am loving it.
2013-10-13 - API server rewrite being put on hold. I am tied up with an early November deadline from work, and have no time to wrap up the process. I will update this as I get more information. Sorry :/ Things will still work, and I think the plugin should continue to work for 1.7, though! If it breaks, I will make time to update it!
@andyhuang
Thanks for your work! Cant wait for server monitoring so we can get a notification when its not responding :)
@tito1411
Hey there!
I am working on this project still :)
I've just got caught up with a few things at work in the last couple of weeks. We just suddenly got a few big prospect clients lining up, so I need to make sure things are good, and switch that to autopilot mode before I can get back into this. I fully intend to get back into swing at this soon, though!
PS: More awesome is coming, soon<tm> :)
I'm looking for something like this for my server but before I implement it I would like to know if this is going to be an active project. Thanks!!
@nickmcski
Currently, I am focusing on bringing it to 1.0.0 Gold release. During this time, a lot of things are still being shuffled around, and the code are not finalized by any stretch. Also, a lot of the API things are still being designed and revamped to be more flexible. As such, it does not make sense to release it for the time being.
I do want to (or at least hope that I will be able to) release the plugin's source code so we can collaboratively improve the API for people later. The process will be tricky, however, because there are a lot of encryption related things, and exportation laws does not allow that to be distributed to specific countries. So, if and when I get around to doing that, I will have to either take the project off of Bukkit and host it myself (as Bukkit currently does not have a country specific filter yet) or distribute the code separately at another channel where I have that level of control.
Will you ever release the source code?
@deleted_10786114
Lemme PM you :)
@andyhuang
Wait, I used Pushover for my notification channel, but it won't send the message. The only time it sends me a message is when I verify the channel.Never mind, fixed it...
@deleted_10786114
Awesome, thank you for updating me!
@andyhuang
The new Alpha version fixed my problem.
@nullschritt
Hm... That kind of goes against the design intent: to notify you of issues immediately, so you can act on it as needed. With that said, I'm open for suggestions to make it better, but there may be things we can do without making it act like a block logger (we already have CoreProtect/LogBlock for that), and still address your needs. Can you please let me know what use case you have in mind, so I can see about making it easier for your needs?
Would be neat to have an option to write to a mysql database, so I could have a custom monitoring script. (: Just an idea.
@deleted_10786114
Replied. Can you please provide some more information for me? Also, I will see if I can find a notification option to make tickets stand out more. Sorry for the delay!
Can anyone look at my ticket?
@slimedog007
Slimedog007, actually, both of those are already planned for and will come some time in the future (Currently projected for Next Major release after the final 1.0.0 release as shown on the roadmap... so, some time before 2.0.0). I have some stuff lined up, but just haven't quite got it all ironed out yet. Stay tuned :)
@ummbobee98
There is also a 10% chance that you are wrongGGGG baby baby
there is a 90% chance this guy is gayVVVV