I've hit the limit of "my" AWS Graphite single server install (i2.xl) and I needed to come up with a scaled out design. I'm really looking forward to Jason Dixon Graphite's book, but can't wait for it so I went down the interwebs rabbit hole (1, 2, 3, 4, 5, 6, 7). This is what I've come up with for my needs, maybe this helps somebody else out there, also hoping for feedback from the community.
tl;dr: grab my GIST for VIM and bash prompt setup.
In these days of highly automated systems, I work with several languages/DSLs and environments, Ruby, Python,Puppet,Ansible, YAML, JSON, Ubuntu,CentOS. In order to optimize my workflow, I've customized my VIM and prompt setup quite a bit (all with open source code) and so I thought to share it. I usually work from an Os X laptop (as my host for Linux VMs managed via Vagrant)thus I'm including a couple of tricks for iTerm2, finally some bash prompt goodness.
Create a Pingdom http check that points to the /health end point ( you'll need to enter your sensu dashboard auth in user name/password in optional settings) AND select in optional settings/request headers "Accept" and enter this in the empty field
took me a couple of hours and some tcpdumping to find this out so hopefully it saves some time to other folks out there!
Today I wanted to install the MCollective Process Agent plugin and so I searched to no luck for a native OS package for ubuntu (ended up filling a ticket with puppetlabs). I was on my way to do some effing package making but some guy on IRC ("rc" you know who you are ^^ ) saved me a lot of time with a single mco command. It turns out MCollective can create native os packages for its plugins, and since I haven't found any doc on the topic I thought I document it here.
I'm currently implementing a monitoring pipeline based on Sensu for the monitoring data routing and Graphite for the actual storage and calculations, it wouldn't be complete without a notification systems to it so I thought I would document using PagerDuty at the end of the pipe.
There isn't much to it but the information is spread and not always straight forward (at least it wasn't to me) so hopefully this help other adepts of monitoring love!
If like me you're in charge of the vagrant base boxes supporting a team with folks in different time zones you might find this hack useful. I use it to bring the time zone of a RHEL 6 or cousins (tested on CentOS 6.4) guest VM to the same as an Os X host (tested on 10.7.5) in Vagrant, VirtualBox provider environment. I'm leveraging an Os X CLI utility with a shell provisioner but it shouldn't be too much of a deal to refactor for Ansible/Puppet/Chef provisioner. I'm pretty sure there are better ways of doing this, so if you have a more elegant solution please describe it in the comments!
Ansible, the configuration management and command orchestration tool I use currently, has several modules and ways one can use to push plain text based configuration. I got a lot of help from the Ansible community, the guys on IRC are quite a model when it comes to the S of CAMS and I thought I would share back the knowledge I've gained.
This is a quick recipe and a list of resources on how to ship apache logs to a graylog2 server using rsyslog which is the default system logger on CentOS 6. Tested on CentOS 6.4, Graylog2 0.9.6, Apache HTTPd 2.2.15.
By the way if like me, before I wrote this post, you are wondering about the origin of using the word that commonly describes a fresh cut piece of a tree for "our" IT logs then click on the image (talking root cause here), and don't forget to donate to wikipedia!
If you landed on this page chances are you already know what an automated header is, if not this post about how to create/edit shell scripts with VI/VIM and have an header automatically created and updated with timestamp on each edit.
I'm writing quite a bit of shell scripts using VIM lately and as a lazy system folk (main skill required by the trade ) I looked into a way to automate my headers. I found this post on thegeekstuff.com (plenty of good resources, just don't like the spamy ads) but the example is for writing in C and /me != got C?. So I thought I would share here the simple modifications I did to original tutorial to have automated headers for my shell scripts:
I originally became interested in Python via Google folks public communications, after that I kept reading about it in many "Systems Oriented" blogs. Long story short I decided to learn Python and in agreement with my autodidactic nature I started the free resource hunting while putting my google-fu to work, here's what I found.