https://github.com/diogopms/monit-docker
Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.
https://github.com/diogopms/monit-docker
devops docker kubernetes monit monitoring sre status
Last synced: 3 months ago
JSON representation
Monit is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.
- Host: GitHub
- URL: https://github.com/diogopms/monit-docker
- Owner: diogopms
- Created: 2019-08-02T16:27:40.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-01T15:17:18.000Z (over 1 year ago)
- Last Synced: 2024-08-01T17:18:06.814Z (over 1 year ago)
- Topics: devops, docker, kubernetes, monit, monitoring, sre, status
- Language: Shell
- Homepage:
- Size: 62.5 KB
- Stars: 17
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Monit - Docker/Kubernetes - UNIX Systems Management
Run Monit inside docker ( )
[](https://mmonit.com/monit/)
[Monit](https://mmonit.com/monit/) is a free open source utility for managing and monitoring, processes, programs, files, directories and filesystems on a UNIX system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.
## Supported architectures
- amd64
- arm32v6 (Raspberry Pi) [diogopms/monit-docker-kubernetes:arm32v6-latest](https://hub.docker.com/r/diogopms/monit-docker-kubernetes/tags?page=1&name=arm)
## Docker setup
Install docker: https://docs.docker.com/engine/installation/
Install docker compose: https://docs.docker.com/compose/install/
Docker documentation: https://docs.docker.com/
### Build-in docker image
- build docker image `docker build -t monit .`
- start monit: `docker run -ti -p 2812:2812 -v $(pwd)/monitrc:/etc/monitrc monit`
## ENV VARS
| ENVs | Description |
|----------------- |---------------------------------------------------------- |
| SLACK_URL | Webhook url for slack notifications (required for slack) |
| PUSH_OVER_TOKEN | Push over api token (required for pushover) |
| PUSH_OVER_USER | Push over api user (requiredfor pushover) |
| DEBUG | If set with 1 it will put monit in verbose mode |
### Docker Hub image
- pull docker image from docker hub: `docker pull diogopms/monit-docker-kubernetes`
- start monit: `docker run -ti -p 2812:2812 -v $(pwd)/monitrc:/etc/monitrc diogopms/monit-docker-kubernetes`
- create a docker container:
```
#Normal mode (support slack and pushover)
docker run -it \
-p 2812:2812 \
-v $(pwd)/monitrc:/etc/monitrc \
-e "SLACK_URL=" \
-e "PUSH_OVER_TOKEN=" \
-e "PUSH_OVER_USER=" \
diogopms/monit-docker-kubernetes
#Debug mode
docker run -it \
-p 2812:2812 \
-v $(pwd)/monitrc:/etc/monitrc \
-e "SLACK_URL=" \
-e "PUSH_OVER_TOKEN=" \
-e "PUSH_OVER_USER=" \
-e "DEBUG=1" \
diogopms/monit-docker-kubernetes
```
### Example monitrc (Slack)
```
set daemon 20
set log syslog
# Web interface
# set httpd port 2812 and allow admin:monit
check host www.google.com with address www.google.com
if failed
port 443 protocol https
request /
status = 200
for 2 cycles
then exec "/bin/slack"
else if succeeded then exec "/bin/slack"
EOF
```
### Example monitrc (Pushover)
```
set daemon 20
set log syslog
# Web interface
# set httpd port 2812 and allow admin:monit
check host www.google.com with address www.google.com
if failed
port 443 protocol https
request /
status = 200
for 2 cycles
then exec "/bin/pushover"
else if succeeded then exec "/bin/pushover"
EOF
```
### Supported notifications
- [Slack](https://www.slack.com)
- [Pushover](https://pushover.net)
### Kubernetes
### Troubleshooting
If when starting Monit returns the following message: `The control file '/etc/monitrc' permission 0755 is wrong, maximum 0700 allowed`, simply give the appropriate permissions to _monitrc_: `chmod 700 monitrc`.