Options

Advantageous to Write Your Own Tools?

the_Grinchthe_Grinch Member Posts: 4,165 ■■■■■■■■■■
Obviously, if you can avoid reinventing the wheel you should, but over the weekend I had an issue pop up and today with some Python code I was able to figure the issue out. Long story short, we monitor websites with Nagios to make sure they are up. We have a script that measures response time and will alert when it hits various thresholds. Over the weekend there were issues and changes were made. One website kept showing as down even though I was able to get to it without issue.

Today I was playing with some Python code and found out that changes were made (certificate changes for forwarding that doesn't allow the scripts to run properly). Now I didn't write the original script and the error messages leave something to be desired. The script I wrote will tell you the exact error code you receive. Plus it allowed me to learn a little bit about HTTP response codes.

So would you agree that for learning and if you have the ability to write your own tools you should? I'm thinking I'd like to write a monitoring tool to give me much more control and make it easier to add/remove things as I see fit.
WIP:
PHP
Kotlin
Intro to Discrete Math
Programming Languages
Work stuff

Comments

  • Options
    veritas_libertasveritas_libertas Member Posts: 5,746 ■■■■■■■■■■
    I've been struggling with this lately. Everytime I want to create a Python script for something, I find what I need has already been invented. That being said, I've written a few five liners for internal usage. Usually a good bit of the code is stolen from elsewhere on the Internet ;)
  • Options
    BlackBeretBlackBeret Member Posts: 683 ■■■■■□□□□□
    It's absolutely useful to be able to write your own tools. Everyone has individual needs and desires in tools, if you can build those yourself than you're well ahead of most.
  • Options
    N2ITN2IT Inactive Imported Users Posts: 7,483 ■■■■■■■■■■
    I was actually hired to build tools for the team I am on. It's a lot of fun once you deliver.
  • Options
    networker050184networker050184 Mod Posts: 11,962 Mod
    From a selfish standpoint it's great to write your own tools. Very good learning experience and feeling of satisfaction to see it working in production. From a supportability perspective, not always. What happens when you leave the company? Is there anyone that can support it? I've seen custom tools and scripts running from peoples home directory that haven't been with the company for years.
    An expert is a man who has made all the mistakes which can be made.
  • Options
    N2ITN2IT Inactive Imported Users Posts: 7,483 ■■■■■■■■■■
    Networker so true, but still not enough to discourage me :)

    Usually how we handle this is to build proof of concepts and push them into the product backlog for development if they prove to be useful. I created a Access front end with a SSMS backend. I ended up struggling with some of the VBA coding and moved into a web application. It was fun and the core tool has been decommissioned.

    Building tools is critical in my current position.
  • Options
    beadsbeads Member Posts: 1,531 ■■■■■■■■■□
    Creating your own tools is what separates the analysts from the engineers. Now if no one in the company is able to modify or seek out the advice to modify or maintain python code... well, they have a different problem on their hands - don't they?

    I'd seriously consider looking at ExtraHop over Nagios now that I have worked with both.

    - b/eads
  • Options
    N2ITN2IT Inactive Imported Users Posts: 7,483 ■■■■■■■■■■
    @ Beads

    In my role I found the "senior ba's" are the ones that write tools, the "ba's or junior ba's" struggle to do so.
  • Options
    UnixGuyUnixGuy Mod Posts: 4,564 Mod
    What Networker said.

    If you wanna learn more do it...but sometimes your time is better spent elsewhere...
    Certs: GSTRT, GPEN, GCFA, CISM, CRISC, RHCE

    Learn GRC! GRC Mastery : https://grcmastery.com 

  • Options
    paul78paul78 Member Posts: 3,016 ■■■■■■■■■■
    There's middle ground though. If you are using Nagios, one of the reasons why its a good tool is because of the plugin framework. It is designed so you can write your own tools or extend existing. If you are not writing some custom plugins then I would argue that you are not utilizing the power of Nagios.
  • Options
    MagmadragoonMagmadragoon Member Posts: 172 ■■■□□□□□□□
    So far I written a network monitoring program and program installer for my new employer. I love programming
  • Options
    the_Grinchthe_Grinch Member Posts: 4,165 ■■■■■■■■■■
    Got me there paul78! Should have looked into that in the first place, best of both worlds!
    WIP:
    PHP
    Kotlin
    Intro to Discrete Math
    Programming Languages
    Work stuff
  • Options
    UnixGuyUnixGuy Mod Posts: 4,564 Mod
    So far I written a network monitoring program and program installer for my new employer. I love programming


    I'm honestly wouldn't allow this if I was the manager. Loving programming is good, perhaps a career in Software development is something you should consider, but writing a custom tool to monitor the infrastructure when there are plenty of time-tested open-source (and closed source) tools out there to ready to use.

    Employee time is better spent elsewhere, and when you leave the company, new sysadmin will have to learn how your code work..Time is better spent elsewhere IMHO.
    Certs: GSTRT, GPEN, GCFA, CISM, CRISC, RHCE

    Learn GRC! GRC Mastery : https://grcmastery.com 

  • Options
    MagmadragoonMagmadragoon Member Posts: 172 ■■■□□□□□□□
    REMOVED UNNECESSARY QUOTED REPLY FROM PREVIOUS POST

    I understand where you are coming from. If I could have it my way I would implement Nagios and Cacti to do the network monitoring. Those requests were turned down. I had to write the program in .Net. Since the organization is currently Anti-Linux and had no previous method of determining if the network was down unless a bunch of people call in to IT saying they could not connect into anything. The code is completely documented for if I left the company, they would have the source code and the know how to modify the code.
  • Options
    UnixGuyUnixGuy Mod Posts: 4,564 Mod
    @Mag:

    Interesting company icon_lol.gif I worked for a bank once and was managing their Unix environment, they decided to purchase Microsoft SCOM to monitor our Unix server. There are commercial windows tools. It's really strange, but IT management never cease to amaze me. On the positive side, it's a good learning experience for you WIN.
    Certs: GSTRT, GPEN, GCFA, CISM, CRISC, RHCE

    Learn GRC! GRC Mastery : https://grcmastery.com 

  • Options
    TheNewITGuyTheNewITGuy Member Posts: 169 ■■■■□□□□□□
    I wont write tools perse but if something needs to be done and i cant find an available solution to do exactly what I want, i'll write it out - good luck supporting it though :)
  • Options
    shodownshodown Member Posts: 2,271
    Now that we are in the era of RESTFul apps. I write quite a few tools that I use to do my job. It makes implementation of new projects much easier. Since most of my work is on the design side there isn't much need to have the code supportable as my code is like my personal tool that I use for the job.
    Currently Reading

    CUCM SRND 9x/10, UCCX SRND 10x, QOS SRND, SIP Trunking Guide, anything contact center related
  • Options
    W StewartW Stewart Member Posts: 794 ■■■■□□□□□□
    I believe nagios allows you to write custom plugins in python. I prefer not to reinvent the wheel but I also prefer tools that allow me to customize them to my needs. I've been writing a lot of scripts in bash and powershell lately though.
  • Options
    Node ManNode Man Member Posts: 668 ■■■□□□□□□□
    I use Python. The telnetlib is a powerful tool for network professionals. I am still new to it and can already script quick and dirty tools in minutes to automate big processes.
Sign In or Register to comment.