Over a gruelling 24 hours, our 5 SCOM expert contestants worked tirelessly at building the SCOM solutions you asked for. It’s now time to unveil what they’ve built – and who the judges and community have crowned the winner!
Don’t forget, each of these management packs will be fine-tuned and then made available open source on the SCOMathon blog, so stay tuned to get your hands on them.
To recap, each of the contestants was assigned one challenge by the judges and the community. The challenges are as follows:
KEVIN HOLMAN – Put servers behind gateway into maintenance mode when the gateway goes down and take out of maintenance mode when the gateway becomes available
RONNIE JOHANSSON – Open Windows firewall port on demand until traffic ceases
DUJON WALSHAM – Alert on unexpected shutdowns
ANDERS ÖBERG – Create registry keys containing data from centrally stored CSV on servers, also store this info in SCOM’s object model
NATHAN FOREMAN – API query management pack
See more details on how these challenges were assigned on our HackaSCOM day 1 blog.
On the judging panel we have two Microsoft MVPs, Bob Cornelissen and Stoyan Chalakov, and a member of the Microsoft SCOM Product Group itself, Shivan Kumar – each bringing a unique perspective on SCOM.
Now, let’s see what the 5 contestants managed to whip up in 24 hours.
Challenge: Gateway maintenance mode integration
Kevin had to create an MP that would put servers behind the gateway into maintenance mode when the gateway goes down, and take them out of maintenance mode when the gateway becomes available again.
2 hours in, Kevin shared his hopes for the project:
I really want it to be dynamic. I’d like the MP to auto-create groups, group membership, and views – so you can have a dashboard displaying everything from your gateways, to the groups that contain members of those gateways, and the current maintenance mode status or health status. I don’t know if I can get it to that level in 24h, but I would like to get it to an end-to-end solution that deploys itself when you deploy the MP at some point.Kevin
Click the video to see Kevin demo his solution.
I like this set up, very nice. You managed to get it working dynamically after all!bob
There are a few things I really like, such as the comment that gets put in the maintenance mode window. The recovery on the healthy condition is something new to me, so I am pleasantly surprised. What can I say – flawless.stoyan
Kevin figured out something that none of us were aware of, and it is such a thorough solution.Shivam
Challenge: Open Windows firewall port on demand until traffic ceases
Ronnie had to create an MP that opens up the Windows firewall on a specific port, when a connection matching a specific pattern from the firewall log is blocked, until traffic has ceased. After 2 mins of inactivity the port should be closed again.
I’m not the most technically versed in Windows firewall, so it was an excellent challenge for me.RONNIE
Click on the video to see Ronnie demo his solution.
When we assigned the task to Ronnie, I was fairly certain how I would solve opening the firewall, but I had absolutely no idea how I would’ve closed the firewall. Bravo to Ronnie for taking this approach and figuring it out, it looks nice. Great job.Stoyan
You can really see how Ronnie took the creative approach to this. He needed to come up with a way of reading how long and for what you would wait, testing it, then reading that back, which was difficult enough. He would’ve had to put something in a log to see whether the traffic was going or not going. Very creative thinking.bob
Now that you’ve made it, it seems intuitive, but it definitely didn’t look that way 24h ago. Kudos for that.shivam
Challenge: Blue Screen of Death MP
Dujon had to create an MP that alerts on unexpected shutdowns (BSODs, user initiated, unexpected, etc) and captures BSOD hex code, crash dump location, and timestamp for troubleshooting.
Here are Dujon’s thoughts prior to building the MP:
This has been done at a basic level multiple times, but it’ll be interesting for me to add missing context to it. How do we define the proactive side where hung servers are concerned? Let’s break down the reasons why it hung.DUJON
Click on the video to see Dujon demo his solution.
I liked the flexibility of Dujon’s tool in getting the event from the past. I think Dujon’s done a great job, he captures the event and the bug check code, which is very important. And I really like the idea of getting the drivers of the software as this is the reason for a BSOD 80-90% of the time.stoyan
Creative approach. Rather than just focusing on tackling the BSOD, he looked at what can cause a BSOD, adding drivers and software.shivam
Challenge: Create registry keys containing data from centrally stored CSV on servers, also store this info in SCOM’s object model
Anders had to make an MP that could create registry keys containing data from centrally stored CSV on servers, and also store the info from the CSV into SCOM’s object model in an extended class. This can be used for Server ownership information.
Here is how he felt 2 hours into the challenge:
I’m finding the challenge very interesting. It is a bit difficult to sort all the ideas I have at the minute. But I have a tentative solution. I’d like to do it as dynamically as possible. The idea is that if you want to use it, you shouldn’t have to customise it or change it in most cases.anders
Click the video to see Anders showcase his solution.
I really like that you can adjust these settings not just centrally, but also de-centrally. Very creative thinking on your side. I also like that it’s possible for the admin to turn it off.bob
The volume of work here, is more than what I’d imagined when I first looked at this task. I like the self-healing idea when the CSV gets damaged, and that you can keep track of history records.stoyan
Adding the bit where the admin can control it – you’re thinking about the customer perspective in a 24h hackathon. The customer obsession is impressive. People often have the problem of skipping that thought process and coming back to it as an after-thought, so good work.shivam
Challenge: API query management pack
Nathan had to create an MP that could setup a generic class hierarchy against which the monitoring data can be stored, and use an agent watcher to invoke the API web requests.
Laying out his goals for the project, Nathan said:
I hope to get a UI on top of the solution so that anyone can quickly drop these in without having to go to XML. Just get it in the operating pane.NATHAN
“The hard piece, in my mind, is going to be the UI,” added Bruce.
Click the video to see Nathan demo his solution.
I almost see a complete product – if not for it being open source, Nathan could have easily bottled it up and sold it.shivam
It’s really creative the way you used existing components and added additional components to them.bob
I am amazed by the UI extension, it’s really a top feature. You did an awesome job, it’s something the community really needs.stoyan
After all 5 contestants had showcased their solutions, it was time to pick a winner.
Here’s how the community voted.
And here’s how the judges voted.
Bob — Nathan Foreman
Shivam — Anders Öberg
Stoyan — Ronnie Johansson
And so… there we have it, the winner is Nathan! Congratulations!
As a HackaSCOM community, we managed to raise a grand total of $430 over 2 days. This was donated to Nathan’s charity of choice, the Boy Scouts of America.
Thank you to all 5 contestants for taking time out of your work week to participate in HackaSCOM. No doubt the amazing solutions you have built and contributed will be much appreciated by the community! As our host Bruce put it:
It doesn’t actually matter who the winner is, these solutions are what the community asked for, and our 5 experts have delivered. So technically, the community is the real winner!bruce
Also, a big thank you to all attendees! We hope that you enjoyed watching the pros battle it out as much as we did. Stay tuned for a deep-dive webinar into one of these solutions, as well as all 5 management packs which will be made available on the SCOMathon blog.
Til the next SCOMathon!