Configuring CentOS to to send logs to Nagios Log Server

Now that Nagios Log Server is installed, it’s time to get some log files in there. I got myself all fired up ready to comb through page after page of documentation to figure out how to set it up… then those nice folks over at Nagios did this…

Nagios Log Server linux source setup

Nagios Log Server linux source setup

That’s right, if you click on Linux Source from the home screen, it gives you scripts to download and run to set it all up. They even pulled the IP address from the Nagios Log Server…it was like they wanted you to succeed in making this all work! It can’t be that easy right? Let’s try!

Linux Source - Nagios Log Server setup-linux.sh

Linux Source – Nagios Log Server setup-linux.sh

That was easy, no way there are actually logs showing up in Nagios Log Server though, right? Almost, SELinux was preventing log files from being shipped as you can see in the middle of the above screenshot. So…

cp /etc/selinux/config /etc/selinux/config.bak && sed -i s/SELINUX=enabled/SELINUX=disabled/g /etc/selinux/config && shutdown now -r

And BOOM goes the log file goodness after a reboot!

Remote linux source sending to Nagios Log Server - Dashboard search

Remote linux source sending to Nagios Log Server – Dashboard search

In probably less than 5 minutes, you can have a fully functional Nagios Log Server, based on ELK, deployed and receiving log files from a remote source – that is damn impressive. Of course in this example we haven’t looked at which logs we are sending – maybe you only want specific log files being sent from Apache or Ansible for instance, but that is a finer art form that we can save for another blog post. Happy logging!

Installing Nagios Log Server

When I think of syslog servers, I tend to think of VMware Log Insight and Splunk on the commercial side, and SyslogNG or an ELK solution like the one Larry Smith has blogged about in the past. I’ve never thought of Nagios; turns out they have a logging solution of their own, and it leverages the ELK stack. For many deployments, Nagios Log Server will fall into the commercial category, there is a free version which supports a single instance of Log Server running and a maximum of 500MB logged in a day (according to http://logfilemonitoring.com/ which appears to be affiliated with Nagios.com). However, for SMBs who may only have a few servers, or to support a specific application, Nagios Log Server may do the trick. Only one way to find out right? Let’s get it installed!

Nagios delivers this either as an OVF (both 32-bit and 64-bit) running on CentOS or as a package which you can install on your own server. For purposes of getting this into my lab environment I am going to download the 64-bit OVF package. Once downloaded you deploy as you would in Workstation (for my home lab) or the vSphere Web Client. Once the OVF deployment finishes, power on the virtual machine; if you’re watching the console you should see the boot screen. By default it is set to DHCP and a default root password of nagiosls.

Nagios Log Server Console

Nagios Log Server Console

Navigate to the IP address in the lease, if you do not have a DHCP server on your network, you can log into the console and configure /etc/sysconfig/network-scripts/ifcfg-eth0 appropriately for your network. Once you are on the web page you will be given the option to do a new install or add a new instance, enter your license key (I’ll be starting with the trial to see if this converts into a free single instance/500MB per day solution), and your admin credentials.

Nagios Log Server installation web page

Nagios Log Server installation web page

When you have all of the information filled in; click the blue Finish Installation button. When the installation completes, you will be ready to log in, log in with the credentials you set in on the installation screen – you’re now on the Log Server Overview page (which by the way nice job Nagios folks – heck of a lot better than I expected based on my past experience with Nagios core).

Nagios Log Server - first login - Log Server Overview

Nagios Log Server – first login – Log Server Overview

From here you can explore the guides provided such as the Windows source or Linux source guides. You can also see we already have some logs from the graph in the lower left – these are the logs from the Nagios Log Server CentOS virtual machine. Click on the Dashboards link in the top navigation menu and explore some of the screens – as you can see you have a very friendly search interface to look for logs.

Nagios Log Server Dashboard

Nagios Log Server Dashboard

Nagios has made it very easy to deploy their appliance; in my next post I will look at adding log files from a linux virtual machine, then an ESXi host.

Ravello (@ravellosystems) releases next evolution of nested virtualization

Today Ravello has announced a new version of their platform. I first met Ravello at VMworld and was impressed with what they were building. Ravello, in my opinion, makes it easy to explore public cloud solutions and get comfortable with a range of technologies out side the traditional virtualization admin world – specifically I am looking at them as I continue my journey in learning DevOps methodologies and tools.

With their new release, Ravello is also close to being able to run ESXi as a virtual machine on AWS – for lab enthusiast this means no more expensive home lab equipment. Fire up your AWS hosted ESXi virtual machines and run your lab for as long as you need and power it off when you’re done.

Ravello also provides you the ability to run native ESXi virtual machines on AWS, I can think of several situations where I could have leveraged this functionality for disaster recovery and/or disaster recovery testing.

Full press release after the break…

Continue reading

Size Matters podcast episode 1 – What is an SMB anyways with Trevor Pott (@cakeis_not_alie) – is live!

The very first Size Matters podcast is officially live; you can listen on our blog, iTunes, or your favorite podcast app. This first episode was very fun to record, along with Lauren Malhoit (@malhoit), Mike Stanley (@mikestanley), and Shane Weinbrecht (@Shizrah) we welcomed Trevor Pott (@cakeis_not_alie) as our first guest to discuss what makes an SMB, and what are some of the challenges they face.

Keep up with Size Matters on our blog and Twitter account, and don’t forget to subscribe on your favorite podcast app!

sizemattersitunes

Change the way you send email – a follow up to @cody_bunch Unbreak email

A couple of weeks ago, Cody Bunch had a great post called Unbreak Email in 2015: 3 folders, 2 times a day, 1 rule. I’ve done a pretty horrible job and managing email of late and working out just how to adopt Cody’s workflow into my daily emails. As I have though about how to use this, I realized the problem isn’t just managing incoming email, its that we don’t do a very good job of sending emails (and I am just as much at vault there).

Let’s take a look at an example and see where it falls over.

Hi Jon,

This is what I currently have for documentation. Can you take a look and edit as needed.

Pretty typical email for me (you as well?). What is wrong with it? To me there are a few problems

  1. Not specific – For example what documentation. Yes I can look at the attachment but what is the documentation related to? What is the project? What specifically should I review in it? All of this things give me focus and prevent me (or you if I sent it) from spending time “editing as needed” something that may not have needed editing.
  2. No due date – When you ask someone to do something via email, it becomes another task or project that the person you are emailing has to take on. In all likely hood they are not sitting around playing legos in their cube. Give the person a due date so they know how to prioritize or respond.

Here is a better example of how that email would look.

Hi Jon,

It’s been a while since we discussed the requirements for the VPLEX implementation project. This is what I currently have for documentation on system requirements and installation. Can you take a look at the systems requirements section and validate all versions are correct before the meeting on Tuesday.

What do you think? For me this is a much better email. It is still short to the point, and gives me everything I need to know in order to prioritize and/or respond to the request.

  1. Specific – I know exactly which project this is referring to; the VPLEX implementation project – this allows me to recall details specific to this project and not have to figure out what project it is related to. I know that I need to look at the documentation to validate software versions; rather than reviewing the entire document (which someone else may be responsible for) I can go directly to the area that needs focus.
  2. Due date – I also know exactly when the person sending me the email needs it back by. This allows me to prioritize the work, and because it was specific, the level of effort needed to complete it. Can I complete this task by the requested date? If yes then great, if not I need to determine if I have other tasks/projects that can be shifted or let the person (or my manager know) that this new request interferes with others and either assign it to someone else or determine if other project status have changed.

Another problem with emails, they are to long. Don’t worry I won’t post an example of one of those here! Email is not documentation. If your email is more than a few sentences, step back and determine a better medium to share the information. Maybe a blog post, or Word document in your document management system. Remember images are powerful – worth a 1000 words… correct? If you have to spend 5+ sentences explaining something see if you can use a picture to show the person what you are trying to explain. As humans we remember images more easily than we do lines of text. Generally speaking we also don’t actually read all of the words/letters.

What I am going to try and do with email  in 2015:

  1. Be short
  2. Be specific
  3. Provide a due date
  4. Email the person I am asking. Only CC those who may need this in the future.

Am I missing anything? What tips do you have for email? Oh and for the love of the computer gods, please stop replying all to tell us you are going to Disney World (yes I am talking about you – you know who you are!)

vRealize Automation Error Code: 500 when submitting license key

Chalk this up in the “useful error messages” column. When you attempt to enter a license key in the vRealize Automation appliance you receive “Error code: 500.”

error500

Now when I saw this I immediately thought “internal server error,” however in the case of vRA it may simply be an expired or invalid license key. Before extensive troubleshooting validate that your license key is correct, and it has not expired.

license-success

Video: Prepare CentOS 6.x virtual machine for cloning

In my last video, we walked through how to install VMware Tools for CentOS 6.x. Now we are going to prepare the virtual machine for cloning. This requires we remove a specific file; /etc/udev/rules.d/70-persistent-net.rules. This file contains the MAC address for the virtual machine. Once removed, the file will be created during the initial boot with the matching MAC address for the cloned virtual machine.

Prepare CentOS 6.x virtual machine for cloning

Video: Installing VMware Tools in CentOS 6.x

This is a video demonstration on installing VMware Tools in CentOS 6.x. The assumptions for this walk through are you have access to VMware Workstation or the vSphere Client to initiate the VMware Tools installation and at least 1 E1000 network card to provide internet access. VMware Tools is needed for VMXNET3, so you will at least initially need an E1000 to provide network access for Perl, or local Perl installers to run the installer.

VMware Tools Installation Walk Through

On the fourth day of Commitmas – Forking repositories on GitHub

Yesterday Tim Jabut forked my Ansible test repo on GitHub to help me get markdown working and I merged that back into my repository. Today it is time to learn how to fork a repository on GitHub myself. If you take a look at a repository on GitHub, you’ll see a Fork button on the upper right corner of the page:

git-fork

Click the Fork button, after a few moments the page will return – notice the difference?

git-forked

Yup, I now have a copy of this repository in my account. Switch over to your console and clone the repository locally. For example

git clone [email protected]:jfrappier/12-days-of-commitmas.git

I can now work on these files locally, for example here is the 12 Days of Commitmas (2014) opened in Markpad (choco install markpad)

markpad-commitmas

With a few changes made, I commit my file back to my repository. Do you remember what commands we need to do that?

git add .

git commit

git push

And here we are, files are in *my* repository. Next we will look at issuing a pull request so the owner of the repository can merge my changes into their repository.

git-forked-commit

On the third day of Commitmas, my slack friends gave to me – Merging Pull Requests w Git

Today I was chatting with Tim Jabaut in a Slack room Matthew Brender created for Commitmas (ping him or Josh Cohen to get in) and he shared a nice markdown cheat sheet (I seem to be all about cheat sheets during Commitmas). If you have looked at the Commitmas GitHub page you see that Matt and others have made his page pretty; it has been done using markdown. I tried adding some simple markdown to my README file on my Ansible Test Playbooks page but they were just coming over as ##, not as headings.

So, troubleshooting in this new era – it is certainly not done by emailing someone a file! Tim forked my repository to have a look; my README file needed a .MD extension to properly interpret the markdown syntax. With the change complete, Tim issued a pull request which you can see below

git-pull-requestThe question now becomes, how do I merge that change? GitHub was nice enough to drop me an email with some tips.

First, I need to merge the changes:

git pull https://github.com/tjabaut/ansible-test-playbooks master

Once that is done, you can see I have the changes from Tim in my local repository – my README file is now named README.md

git-pull-local

I can now inspect changes to the file that Tim made; for example it may not be something as trivial as a file name. If this were a change say to an Ansible playbook I might want to review what those changes before putting them into the repository. With the file(s) local to me now, I can:

git add .

git push

to merge this change back into the repository. Here you can see the changes before and after my git push.

git-repo-merged