From time to time I play Minecraft with friends. As a former SCOM geek I haveÂ of course configured monitoring for this server :)Â The serverÂ in this blogpost is a Windows server but most of the example works the same for a Minecraft server running on Linux.Â On the Minecraft server there are two types of resources that I would like to monitor, server performance and Minecraft logs.
The first part, server performance, is easy to solve. IÂ installedÂ the OMS agent onÂ the server and enabledÂ Windows performance monitoring for processor, memory, disk queue and networkÂ traffic. Those are all out of the box OMS features.
For Minecraft there is a log file, %Minecraft%\logs\latest.log, that Minecraft use to log everything around “the world” running in the server. In this log file you can see players joined, disconnected and some player activity like achievements or if a player dies. You can also use the log file to see if the server is running and if the world is ready. In OMS under Settings/Data/Custom Logs you can configure OMS to collect data from this log file. Note the name of the custom log, as it is the type you use to search for this events. In my example I have setup custom log named WinMinecraftLog_CL (_CL is added automatically). More info about configure custom log here.
We can use Log Search to review collected data (Type=WinMinecraftLog_CL) from the log file.Â Custom FieldsÂ can be used to add a new searchable field for the log severity, in this example OMS extract WARN and INFO and store it as WinMinecraftLogSeverity_CF. More information about custom fields here.
Another interesting thing to monitor on a Minecraft server is number of connected players. Unfortunately the MinecraftÂ server don’t have a performance counter for this or an easy way to read it from the server. But you can count number of connections on the Minecraft port (default port 25565) 🙂 I have created a PowerShell script to count number of connections and write it as a new performance counter to the local server. The script also count number of unique players that have logged on to the server (number of files in the %Minecraft%\world\playerdata folder) and writes it as a performance counter. The script can be download here, WritePerfData. Thanks to Michael Repperger for the perf count example.
These two performance counters can then be collected by OMS as Windows Performance counters
Once all data is collected, both Minecraft specific and server data, OMS View Designer can be used to build a Minecraft dashboard (more info about View Designer here)Â The dashboard in gives us an overview of the Minecraft server, both from performance and Minecraft perspective. This exampleÂ dashboard alsoÂ includes a list of events from the log file, showing if there is a lot of warning events in the log file. Each tile in the dashboard is a link to OMS Log SearchÂ that can be used to drill deeper into the data.
Next step could be to index and measureÂ more fun WorldÂ specific number, for exampleÂ achievements and most dangerous monsterÂ in the Minecraft world 🙂 On the server there is a folder, %Minecraft%\world\statsÂ , with numbers about each user in the world, for exampleÂ numberÂ of threes cut down or blocks built, these could also be fun numbers to collect 🙂
Disclaimer: Cloud is very fast moving target. It means that by the time youâ€™re reading this post everything described here could have been changed completely.