Skip to content

Commit

Permalink
Modified lib/flapjack/configuration.rb to use .toml. Specs and featur…
Browse files Browse the repository at this point in the history
…es run green
  • Loading branch information
ferrisoxide committed Oct 29, 2014
1 parent ca1c5e1 commit 39863f7
Show file tree
Hide file tree
Showing 22 changed files with 347 additions and 574 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -17,7 +17,7 @@ features/support/etc/netsaint/*
log/*
vendor
.bundle
etc/*.yaml
etc/*.toml
coverage
tmp/*
flapjack-*.gem
Expand Down
16 changes: 11 additions & 5 deletions Gemfile.lock
Expand Up @@ -23,6 +23,7 @@ PATH
redis (~> 3.0.6)
sinatra
terminal-table
toml
tzinfo
tzinfo-data
xmpp4r (>= 0.5.5)
Expand All @@ -41,6 +42,7 @@ GEM
tzinfo (~> 1.1)
addressable (2.3.6)
awesome_print (1.2.0)
blankslate (2.1.2.4)
builder (3.2.2)
chronic (0.10.2)
chronic_duration (0.10.6)
Expand All @@ -58,7 +60,7 @@ GEM
chronic
diff-lcs (1.2.5)
docile (1.1.5)
ffi (1.9.5)
ffi (1.9.6)
find_a_port (1.0.1)
fuubar (2.0.0)
rspec (~> 3.0)
Expand All @@ -72,13 +74,13 @@ GEM
json (1.8.1)
mail (2.6.1)
mime-types (>= 1.16, < 3)
mime-types (2.3)
mime-types (2.4.3)
minitest (5.4.2)
msgpack (0.5.8)
msgpack (0.5.9)
multi_json (1.10.1)
multi_test (0.1.1)
numerizer (0.1.1)
oj (2.10.2)
oj (2.10.4)
pact (1.3.3)
awesome_print (~> 1.1)
find_a_port (~> 1.0.1)
Expand All @@ -89,6 +91,8 @@ GEM
term-ansicolor (~> 1.0)
thor
webrick
parslet (1.5.0)
blankslate (~> 2.0)
rack (1.5.2)
rack-protection (1.5.3)
rack
Expand Down Expand Up @@ -132,10 +136,12 @@ GEM
thread_safe (0.3.4)
tilt (1.4.1)
tins (1.3.3)
toml (0.1.2)
parslet (~> 1.5.0)
trollop (2.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
tzinfo-data (1.2014.8)
tzinfo-data (1.2014.9)
tzinfo (>= 1.0.0)
webmock (1.18.0)
addressable (>= 2.3.6)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -87,11 +87,11 @@ You'll also need Redis >= 2.6.12.

## Configuring

Have a look at the [default config file](https://github.com/flapjack/flapjack/blob/master/etc/flapjack_config.yaml.example) and modify things as required. The package installer copies this to `/etc/flapjack/flapjack_config.yaml` if it doesn't already exist.
Have a look at the [default config file](https://github.com/flapjack/flapjack/blob/master/etc/flapjack_config.toml.example) and modify things as required. The package installer copies this to `/etc/flapjack/flapjack_config.toml` if it doesn't already exist.

``` bash
# edit the config
sudo vi /etc/flapjack/flapjack_config.yaml
sudo vi /etc/flapjack/flapjack_config.toml

# reload the config
sudo /etc/init.d/flapjack reload
Expand Down
4 changes: 2 additions & 2 deletions bin/flapjack
Expand Up @@ -12,8 +12,8 @@ program_desc 'Flexible monitoring notification routing system'
version Flapjack::VERSION

desc 'Configuration file to use'
default_value '/etc/flapjack/flapjack_config.yaml'
arg_name '/path/to/flapjack.yaml'
default_value '/etc/flapjack/flapjack_config.toml'
arg_name '/path/to/flapjack.toml'
flag [:c,:config]

desc 'Environment to boot'
Expand Down
209 changes: 209 additions & 0 deletions etc/flapjack_config.toml.example
@@ -0,0 +1,209 @@
pid_dir = "/var/run/flapjack/"
log_dir = "/var/log/flapjack/"
daemonize = "yes"
[logger]
level = "INFO"
syslog_errors = "yes"
[redis]
host = "127.0.0.1"
port = 6380
db = 0
# Processes monitoring events off the *events* queue (a redis list) and decides
# what actions to take (generate notification event, record state changes, etc)
[processor]
enabled = "yes"
queue = "events"
notifier_queue = "notifications"
archive_events = true
events_archive_maxage = 10800
# Flapjack sets scheduled maintenance on new check results so contacts aren't
# notified as soon as Flapjack becomes aware of an entity to notify on.
# This is useful is cases where your monitoring starts checking something
# before it is completely provisioned
# Value parsed by https://github.com/hpoydar/chronic_duration
# You can disable this setting by specifying "0 seconds".
new_check_scheduled_maintenance_duration = "100 years"
new_check_scheduled_maintenance_ignore_tags = ["bypass_ncsm"]
[processor.logger]
level = "INFO"
syslog_errors = "yes"
# Processes notification events off the *notifications* queue (a redis list) and
# works out who to notify, and on which media, and with what kind of notification
# message. It then creates jobs for the various notification gateways below.
[notifier]
enabled = "yes"
queue = "notifications"
email_queue = "email_notifications"
sms_queue = "sms_notifications"
sms_twilio_queue = "sms_twilio_notifications"
sns_queue = "sns_notifications"
jabber_queue = "jabber_notifications"
pagerduty_queue = "pagerduty_notifications"
notification_log_file = "/var/log/flapjack/notification.log"
default_contact_timezone = "UTC"
[notifier.logger]
level = "INFO"
syslog_errors = "yes"
[nagios-receiver]
fifo = "/var/cache/nagios3/event_stream.fifo"
pid_dir = "/var/run/flapjack/"
log_dir = "/var/log/flapjack/"
[nsca-receiver]
fifo = "/var/lib/nagios3/rw/nagios.cmd"
pid_dir = "/var/run/flapjack/"
log_dir = "/var/log/flapjack/"
[gateways]
# Generates email notifications
[gateways.email]
enabled = "no"
# the redis queue this pikelet will look for notifications on
queue = "email_notifications"
[gateways.email.logger]
level = "INFO"
syslog_errors = "yes"
# these values are passed directly through to EventMachine::Protocols::SmtpClient configuration,
# and can be omitted if the defaults are acceptable
[gateways.email.smtp_config]
# from = "Flapjack Example <flapjack@noreply.example>"
# reply_to = "flapjack@support.example"
host = "127.0.0.1"
# 1025 is the default port for http://mailcatcher.me
port = 1025
starttls = false
#[gateways.email.smtp_config.auth]
# type =
# username =
# password =
# location of custom alert templates
#[gateways.email.templates]
# rollup_subject_text = "/etc/flapjack/templates/email/rollup_subject.text.erb"
# alert_subject_text = "/etc/flapjack/templates/email/alert_subject.text.erb"
# rollup_text = "/etc/flapjack/templates/email/rollup.text.erb"
# alert_text = "/etc/flapjack/templates/email/alert.text.erb"
# rollup.html = "/etc/flapjack/templates/email/rollup.html.erb"
# alert.html = "/etc/flapjack/templates/email/alert.html.erb"
# Sends SMS notifications via MessageNet (Australia only)
[gateways.sms]
enabled = "no"
# the redis queue this pikelet will look for notifications on
queue = "sms_notifications"
endpoint = "https://www.messagenet.com.au/dotnet/Lodge.asmx/LodgeSMSMessage"
username = "ermahgerd"
password = "xxxx"
[gateways.sms.logger]
level = "INFO"
syslog_errors = "yes"
# location of custom alert templates
#templates:
# rollup_text = "/etc/flapjack/templates/sms/rollup.text.erb"
# alert_text = "/etc/flapjack/templates/sms/alert.text.erb"
# Sends SMS notifications via Twilio
[gateways.sms_twilio]
enabled = "no"
queue = "sms_twilio_notifications"
account_sid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
auth_token = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
from = "+1xxxxxxxxxx"
[gateways.sms_twilio.logger]
level = "INFO"
syslog_errors = "yes"
# location of custom alert templates
#[gateways.sms_twilio.templates]
# rollup_text = "/etc/flapjack/templates/sms_twilio/rollup.text.erb"
# alert_text = "/etc/flapjack/templates/sms_twilio/alert.text.erb"
# Generates SNS notifications
[gateways.sns]
enabled = "no"
queue = "sns_notifications"
#region_name = "us-east-1"
# Don't forget to use an IAM user's credentials here so revocation is easy!
access_key = "AKIAIOSFODNN7EXAMPLE"
secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
# Connects to an XMPP (jabber) server, sends notifications (to rooms and individuals),
# handles acknowledgements from jabber users and other commands.
[gateways.jabber]
enabled = "no"
# the redis queue this pikelet will look for notifications on
queue = "jabber_notifications"
server = "jabber.example.com"
port = 5222
jabberid = "flapjack@jabber.example.com"
password = "good-password"
alias = "flapjack"
# List of strings that this pikelet user will respond to
identifiers = ["@flapjack"]
# the Multi-User Chats the pikelet should join and announce to
rooms = [
"gimp@conference.jabber.example.com",
"log@conference.jabber.example.com"
]
[gateways.jabber.logger]
level = "INFO"
syslog_errors = "yes"
# location of custom alert templates
#[gateways.jabber.templates]
# rollup_text = "/etc/flapjack/templates/jabber/rollup.text.erb"
# alert_text = "/etc/flapjack/templates/jabber/alert.text.erb"
# Sends notifications to and accepts acknowledgements from [PagerDuty](http://www.pagerduty.com/)
# (NB = "contacts will need to have a registered PagerDuty account to use this)"
[gateways.pagerduty]
enabled = "no"
# the redis queue this pikelet will look for notifications on
queue = "pagerduty_notifications"
[gateways.pagerduty.logger]
level = "INFO"
syslog_errors = "yes"
# location of custom alert templates
#[gateways.pagerduty.templates]
# alert_text = "/etc/flapjack/templates/pagerduty/alert.text.erb"
# Browsable web interface
[gateways.web]
enabled = "yes"
port = 3080
timeout = 300
# Seconds between auto_refresh of entities/checks pages. Set to 0 to disable
auto_refresh = 120
access_log = "/var/log/flapjack/web_access.log"
api_url = "http://localhost:3081/"
# Full path to location of logo file, e.g. /etc/flapjack/custom_logo.png
#logo_image_path = "/etc/flapjack/web/custom_logo/flapjack-2013-notext-transparent-300-300.png"
[gateways.web.logger]
level = "INFO"
syslog_errors = "yes"
# HTTP API server
[gateways.jsonapi]
enabled = "yes"
port = 3081
timeout = 300
access_log = "/var/log/flapjack/jsonapi_access.log"
base_url = "http://localhost:3081/"
[gateways.jsonapi.logger]
level = "INFO"
syslog_errors = "yes"
# "out-of-band" end-to-end testing, used for monitoring other instances of
# flapjack to ensure that they are running correctly
[gateways.oobetet]
enabled = "no"
server = "jabber.example.com"
port = 5222
# jabberid, password, alias, rooms = "see the jabber pikelet"
jabberid = "flapjacktest@jabber.example.com"
password = "nuther-good-password"
alias = "flapjacktest"
# The check oobetet should watch for the state change
watched_check = "PING"
# The entitiy that the check should be associated with
watched_entity = "foo.example.com"
# The maximum amount of time allowed to pass between state changes on that check
max_latency = 300
# The API key for a service in PagerDuty that the oobetet will use to alert you
pagerduty_contact = 11111111111111111111111111111111
# Jabber rooms to join
rooms = [
"flapjacktest@conference.jabber.example.com",
"gimp@conference.jabber.example.com",
"log@conference.jabber.example.com"
]
[gateways.oobetet.logger]
level = "INFO"
syslog_errors = "yes"

0 comments on commit 39863f7

Please sign in to comment.