Getting Started
So, you're getting a monitoring and alerting environment set up. You've looked around at your options, and you've either decided to graduate from what everyone else is using, or you're starting fresh. In any event: welcome!
Hopefully you'll come to find Arborist a reliable, trustworthy framework for describing and reporting on the state of your environment. We made this system specifically so you can get some sleep. Ultimately, if you never think about monitoring after it is set up -- then it's doing it job. You deserve a raise. Failing that, at least a power nap on the company time. Perhaps you'd prefer a handful of paper clips and white-out from the office cabinet? Who knows what floats your boat.
The point is, you're here, and you're good. Lets talk about Arborist.
First things first, if you're just looking for a general description of what sets Arborist apart, head over to the Overview and skim through that. It's meant to be a bit more high-level manager hand-wavey -- this document is going to get more into the nitty gritty of a setup. Did you read it? No? I'll wait. Take your time.
...
Hopefully you're back now, and ready to roll up your sleeves.
Installation
The Arborist core is written in Ruby. There aren't any external dependencies -- no hall of mirrors, chicken-and-egg setups where your monitoring environment relies on services that it itself should be monitoring.
To install it, simply install ruby, and run:
gem install arborist
It will pull in any required ruby modules. When finished, you'll be
armed with a new arborist
command at your disposal. Run it!
arborist
NAME
arborist - Arborist
SYNOPSIS
arborist [global options] command [command options] [arguments...]
VERSION
0.0.1
GLOBAL OPTIONS
-c, --config=CONFIGFILE - Load the specified CONFIGFILE. (default: none)
-d, --[no-]debug - Enable debugging output
--help - Show this message
-l, --loglevel=LEVEL - Set log level to LEVEL (one of debug, info, warn, error, fatal) (default: none)
-n, --[no-]dry-run - Don't actually do anything, just show what would happen.
-r, --requires=arg - Additional Ruby libs to require before doing anything. (default: none)
-v, --[no-]verbose - Enable verbose output
--version - Display the program version
COMMANDS
client - Start an interactive client session
config - Dump a default Arborist config file
help - Shows a list of commands or help for one command
start - Start an Arborist daemon
watch - Watch events in an Arborist manager
If you see something similar to the above, congratulations, we're ready to start getting things monitored.
The arborist
command has a variety of uses:
- Start the various Arborist daemons
- Attach to a running manager daemon and view all events
- Drop into an
Arborist shell
, where you can send the manager commands via the Arborist API. - Generate a default configuration file
As we get things initially set up, in the interests of simplicity I'm going to assume you'll be running everything on a single machine. I'll show you how to scale it out later.
Make (and enter) a directory that's going to hold your configurations --
how about /usr/local/arborist
?
mkdir /usr/local/arborist
cd /usr/local/arborist
Although Arborist doesn't need a configuration file to run (it has sane defaults for everything), we're going to generate one now anyway, so we don't have to later, when we want to change things.
arborist config > arborist.conf
Arborist uses Configurability to manage settings. Don't worry about what these things do yet, we'll get into them soon. Again, those are all the default values.
Your config file should look something like so...
---
logging:
__default__: warn STDERR
arborist:
tree_api_url: ipc:///tmp/arborist_tree.sock
event_api_url: ipc:///tmp/arborist_events.sock
node:
status_history_size: 0
flap_threshold: 0
manager:
state_file:
checkpoint_frequency: 30.0
heartbeat_frequency: 1.0
linger: 5.0
These are the defaults. Okay. Lets get that Manager Daemon running.