The smallest watchdog on earth. Tiny, monitoring-plugins compatible monitoring with a status page. https://cloud.docker.com/repository/docker/momar/chihuahua/general
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Moritz Marquardt ecee1ee6aa Add private checks/output to todo list in README.md 5ヶ月前
cmd Simplify command-line argument logic 6ヶ月前
types Add update date to frontend, add some instructions to README, undo TTY allocation 6ヶ月前
web Bundle libraries (fixes #8) and use Macy.js for masonry layout 5ヶ月前
.dockerignore Make cache persistent 6ヶ月前
.gitignore Make cache persistent 6ヶ月前
Dockerfile Add /setup.sh script and support for a server-side .chihuahuarc file 5ヶ月前
LICENSE Publish first working public version (1.0) 6ヶ月前
README.md Add private checks/output to todo list in README.md 5ヶ月前
api.go Bundle libraries (fixes #8) and use Macy.js for masonry layout 5ヶ月前
check.go Fix .chihuahuarc script and use strict mode for setup script 5ヶ月前
chihuahua.example.yml Publish first working public version (1.0) 6ヶ月前
go.mod Convert to a Go module 5ヶ月前
go.sum Convert to a Go module 5ヶ月前
notify.go Make cache persistent 6ヶ月前
print.go Publish first working public version (1.0) 6ヶ月前
setup.go Fix .chihuahuarc script and use strict mode for setup script 5ヶ月前

README.md

chihuahua

The smallest watchdog on earth. Tiny, monitoring-plugins compatible monitoring with a status page, built with Go, Air, Vue.js and Bulma.

  • Run nagios checks on a remote server
  • Alert on state change via Gotify or email

Screenshot

Getting Started

mkdir -p ./data/.ssh
ssh-keygen -b 2048 -f ./data/.ssh/id_rsa -P "" -C "Chihuahua Monitoring"
nano ./data/chihuahua.yml
docker run -d -p 8080:80 -v "$PWD/data:/data" momar/chihuahua

Chihuahua now runs at http://localhost:8080.

Example chihuahua.yml

notifications:
- provider: gotify # Send notifications via https://gotify.net/
  server: https://gotify.example.org
  token: QwErTyUiOpAsDfG
- provider: email # Send notifications via E-Mail
  host: smtp.example.org
  port: 25
  username: example
  password: QwErTyUiOpAsDfG
  from: noreply@example.org
  to: postmaster@example.org

servers:
  example:
    ssh: monitoring@example.org -p 2222 # SSH connection parameters for the server. Leave away to run checks locally. You can add a ~/.chihuahuarc on the server that's being run before each check.
    checks:
      disk-space: check_disk -w 15% -c 5% # any monitoring-plugins compatible check command works here - you can basically use every command that returns 0 on success, 1 on warnings and 2 on critical errors
      sudo-check: check_sudo check_disk -w 15% -c 5% # run checks as root
      ram-check: check_linux_memory # run checks in /var/chihuahua - download like that: wget https://raw.githubusercontent.com/hugme/Nag_checks/master/check_linux_memory -O /var/chihuahua/ && chmod +x /var/chihuahua/check_linux_memory

      # Examples for basic checks:
      http: check_http -H example.org -w 2 -c 15 -t 20 --sni --ssl -r "This domain is established to be used for illustrative examples in documents."
      ssh: check_ssh -t 15 example.org 
      process: "check_procs -c 1: -C nginx" # check if nginx is running (has at least 1 process)
      errorInLogfile: check_sudo check_log -F /var/log/auth.log -O ./logs/auth.log -q "session opened for user root" # check for root sessions
      backupInLast24h: check_file_age -c 86400 /mnt/backup/meta.json # check if there was a backup in the last 24 hours (86400 seconds)

Example debian server setup

sudo sh <(curl http://status.example.org:8080/setup.sh)

API

GET /setup.sh
GET /checks
GET /checks/:server
GET /checks/:server/:check

Development

Requires Go

git clone https://codeberg.org/momar/chihuahua.git && cd chihuahua
cp chihuahua.example.yml chihuahua.yml && nano chihuahua.yml
go generate && DEBUG=1 go run ./cmd -c chihuahua.yml

Roadmap

  • Add custom messages to checks
  • Add private/hidden checks
  • More notification providers (mainly Clockwork SMS)
  • Gitea integration
  • Provide a Prometheus exporter