API reference
CLI flags
fikkie init |
Set up the ~/.fikkie directory. |
fikkie run [-l/--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL,FAILURE}] |
Start fikkie. |
fikkie start [-l/--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL,FAILURE}] |
Start a fikkie daemon. |
fikkie stop |
Stop the fikkie daemon. |
fikkie status [-f/--format {YAML,JSON,JSON-PRETTY}] |
Get status from all servers. |
fikkie -h/--help |
Show the help/usage text. |
Environment variables
FIKKIE_BASE_DIR (default: "~/.fikkie") |
Fikkie's working directory. |
FIKKIE_CONFIG (default: "~/.fikkie/config.yaml") |
The configuration file. |
FIKKIE_BROKER_DIR (default: "~/.fikkie/broker") |
Celery broker data directory. |
FIKKIE_DB_FILENAME (default: "~/.fikkie/db.json") |
The database file. |
FIKKIE_LOG_FILE (default: "~/.fikkie/db.json") |
The daemon log file. |
FIKKIE_PID_FILE (default: "~/.fikkie/fikkie.pid") |
The PID file. |
Configuration options
Heartbeat
heartbeat.enable (default: True) |
Heartbeat is enabled if True. |
heartbeat.timezone (default: "UTC") |
The schedule timezone. |
heartbeat.schedule.minute (default: 0) |
Minute on which the heartbeat is triggered. |
heartbeat.schedule.hour (default: 12) |
Hour on which the heartbeat is triggered. |
heartbeat.schedule.day_of_week (default: '')* |
Day(s) of the week (0 = Sunday, 6 = Saturday) on which the heartbeat is triggered. |
heartbeat.schedule.day_of_month (default: '')* |
Day(s) of the month (0-31) on which the heartbeat is triggered. |
Example:
heartbeat:
timezone: 'Europe/Amsterdam'
schedule:
hour: 13
minute: 37
SSH
ssh.username (default: "fikkie") |
The SSH login username. |
Example:
ssh:
username: fikkie
Servers
servers.HOSTNAME.description |
A human-readable description of the check. |
servers.HOSTNAME.command |
The command to execute. |
servers.HOSTNAME.expected |
The expected stdout output. |
Example:
servers:
primary.foo.com:
- description: 'MariaDB'
command: 'sudo systemctl status mariadb | grep "Active: active" -c'
expected: '1'
- description: 'HTTP code foo.com'
command: 'curl -s -o /dev/null -w "%{http_code}" foo.com'
expected: '200'
Notifiers
notifiers |
A list of notifier objects. Parameters differ per notifier. |
Example:
notifiers:
- type: telegram
token: '1234:abcd'
chat_id: 1234
Discord notifier
[type = discord ] notifiers.token |
The Discord bot token. |
[type = discord ] notifiers.channel_id |
The Discord channel ID to post notifications to. |
Example:
notifiers:
- type: discord
token: 'foobarbaz'
channel_id: 1234
E-mail notifier
[type = email ] notifiers.recipient |
The e-mail address to send notifications to. |
[type = email ] notifiers.email |
The e-mail address which fikkie uses to send. |
[type = email ] notifiers.password |
The password needed to login to the SMTP server. |
[type = email ] notifiers.smtp_server |
The SMTP server. |
[type = email ] notifiers.smtp_port (default: 465) |
The port on which the SMTP server listens. |
Example:
notifiers:
- type: email
recipient: 'foo@hotmail.com'
email: 'foo@gmail.com'
password: 'v3rys3cr3t'
smtp_server: 'smtp.gmail.com'
Slack notifier
[type = slack ] notifiers.token |
The Slack bot token. |
[type = slack ] notifiers.channel_id |
The channel ID that fikkie sends its notifications to. |
Example:
notifiers:
- type: slack
token: 'xoxb-foobarbaz'
channel_id: 'C0*******'
Telegram notifier
[type = telegram ] notifiers.token |
The Telegram bot token. |
[type = telegram ] notifiers.chat_id |
The chat ID that fikkie sends its notifications to. |
Example:
notifiers:
- type: telegram
token: '1234:abcd'
chat_id: 1234