# Monitorix for YunoHost [![Integration level](https://dash.yunohost.org/integration/monitorix.svg)](https://dash.yunohost.org/appci/app/monitorix) ![Working status](https://ci-apps.yunohost.org/ci/badges/monitorix.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/monitorix.maintain.svg) [![Install Monitorix with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=monitorix) *[Lire ce readme en français.](./README_fr.md)* > *This package allows you to install Monitorix quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview Monitorix is a free, open source, lightweight system monitoring tool designed to monitor as many services and system resources as possible. It has been created to be used under production Linux/UNIX servers, but due to its simplicity and small size can be used on embedded devices as well. **Shipped version:** 3.15.0~ynh2 **Demo:** https://www.fibranet.cat/monitorix/ ## Screenshots ![Screenshot of Monitorix](./doc/screenshots/mail.png) ## Disclaimers / important information ### Upgrade By default, a backup is performed before upgrading. To avoid this, you have the following options: - Pass the `NO_BACKUP_UPGRADE` env variable with `1` at each upgrade. For example `NO_BACKUP_UPGRADE=1 yunohost app upgrade monitorix`. - Set `disable_backup_before_upgrade` to `1`. You can set it with this command: `yunohost app setting monitorix disable_backup_before_upgrade -v 1` After that, the settings will be applied for **all** the next updates. From command line: `yunohost app upgrade monitorix` ### Backup This application now uses the core-only feature of the backup. To keep the integrity of the data and to have a better guarantee of the restoration it is recommended to proceed as follows: - Stop Monitorix service with this command: `systemctl stop monitorix.service` - Launch Monitorix backup with this command: `yunohost backup create --app monitorix` - Backup your data with your specific strategy (could be with rsync, borg backup or just cp). The data is generally stored in `/var/lib/monitorix`. - Restart Monitorix service with theses command: `systemctl start monitorix.service` ### Remove Due of the backup core only feature the data directory in `/var/lib/monitorix` **is not removed**. It must be manually deleted to purge user data from the app. ### More sensor If you want to see the temperature of some sensor you can install the `lm-sensor` packet. For disk temperature you can instal the `hddtemp` packet. ### Custom config If you want do custom the monitorix config for more personnal information you can add a file in `/etc/monitorix/conf.d/`. This config file will be overwritte the original config in `/etc/monitorix/monitorix.conf`. You will have a full complete documentation for monitorix config here : https://www.monitorix.org/documentation.html By example you can extends the basic config by this : ``` priority = 5 disk = y lmsens = y gensens = y mail = y # LMSENS graph # ----------------------------------------------------------------------------- core0 = temp1 core1 = mb0 = cpu0 = fan0 = fan1 = fan2 = volt0 = volt1 = volt2 = volt3 = volt4 = volt5 = volt6 = volt7 = # GENSENS graph # ----------------------------------------------------------------------------- 0 = cpu_temp 1 = cpu0_freq, cpu1_freq, cpu2_freq, cpu3_freq cpu_temp = /sys/class/thermal/thermal_zone0/temp cpu0_freq = /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq cpu1_freq = /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq cpu2_freq = /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq cpu3_freq = /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq cpu_temp = 1000 cpu0_freq = 0.001 cpu1_freq = 0.001 cpu2_freq = 0.001 cpu3_freq = 0.001 cpu_temp = CPU Temperature cpu0_freq = CPU 0 Frequency cpu1_freq = CPU 1 Frequency cpu2_freq = CPU 2 Frequency cpu3_freq = CPU 3 Frequency cpu_temp = 300, 65, /etc/monitorix/monitorix_alerts_scripts/cpu_temp.sh # DISK graph # ----------------------------------------------------------------------------- 0 = /dev/sda realloc_enabled = y realloc_timeintvl = 0 realloc_threshold = 1 realloc_script = /etc/monitorix/monitorix_alerts_scripts/disk_realloc.sh pendsect_enabled = y pendsect_timeintvl = 0 pendsect_threshold = 1 pendsect_script = /etc/monitorix/monitorix_alerts_scripts/disk_pendsect.sh # FS graph # ----------------------------------------------------------------------------- 0 = /, /home, /var, /$tempdir, swap / = Root FS /home = home /var = var /$tempdir = tmp rigid = 2, 0, 2, 0 limit = 100, 1000, 100, 1000 / = 3600, 98, /etc/monitorix/monitorix_alerts_scripts/fs_rootfs.sh /home = 3600, 98, /etc/monitorix/monitorix_alerts_scripts/fs_home.sh /var = 3600, 98, /etc/monitorix/monitorix_alerts_scripts/fs_var.sh /$tempdir = 3600, 98, /etc/monitorix/monitorix_alerts_scripts/fs_tmp.sh swap = 3600, 98, /etc/monitorix/monitorix_alerts_scripts/fs_swap.sh # MAIL graph # ----------------------------------------------------------------------------- mta = postfix greylist = postgrey stats_rate = real rigid = 0, 0, 0, 0, 0 limit = 1, 1000, 1000, 1000, 1000 delvd_enabled = y delvd_timeintvl = 60 delvd_threshold = 100 delvd_script = /etc/monitorix/monitorix_alerts_scripts/mail_delvd.sh mqueued_enabled = y mqueued_timeintvl = 3600 mqueued_threshold = 100 mqueued_script = /etc/monitorix/monitorix_alerts_scripts/mail_mqueued.sh # NET graph # ----------------------------------------------------------------------------- list = eth0,lo eth0 = FastEthernet LAN, 0, 10000000 lo = loopback, 0, 10000000 gateway = eth0 # PROCESS graph # ----------------------------------------------------------------------------- 0 = sshd, ntpd, monitorix, monitorix-httpd 1 = openvpn, ... ... 6 = mysqld, slapd, postgresql master = Postfix imap = Dovecot rigid = 2, 0, 0, 0, 0, 0, 0, 0 limit = 100, 1000, 1000, 1000, 1000, 1000, 1000, 1000 enabled = y url_prefix = http://127.0.0.1:8081/monitorix smtp_hostname = localhost from_address = noreply@domain.tld hour = 2 minute = 7 enabled = y graphs = system, fs, gensens, disk, netstat, port, nginx to = user@domain.tld enabled = y graphs = system, fs, gensens, disk, kern, proc, net, netstat, process, serv, port, user, nginx, mysql, fail2ban, int to = user@domain.tld enabled = y graphs = system, fs, gensens, disk, kern, proc, net, netstat, process, serv, port, user, nginx, mysql, fail2ban, int to = user@domain.tld enabled = y graphs = system, fs, gensens, disk, kern, proc, net, netstat, process, serv, port, user, nginx, mysql, fail2ban, int to = user@domain.tld ``` In this config we have : - We set the process priority to 5 (which mean that it will be lower priority than the other process). - We get the lmsensor sensor data. - We get some sensors data not accessible with lmsensor (with gensens) - We check the disk health and send an email if any error happens. For that you need to make some script. An example is available in `/usr/share/doc/monitorix/monitorix-alert.sh`. - We check the filesystem. - We check the traffic in the network card. - We check some process. - We send every day, week, month and year a rapport. ## Documentation and resources * Official app website: * Official admin documentation: * Upstream app code repository: * YunoHost documentation for this app: * Report a bug: ## Developer info Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/monitorix_ynh/tree/testing). To try the testing branch, please proceed like that. ``` bash sudo yunohost app install https://github.com/YunoHost-Apps/monitorix_ynh/tree/testing --debug or sudo yunohost app upgrade monitorix -u https://github.com/YunoHost-Apps/monitorix_ynh/tree/testing --debug ``` **More info regarding app packaging:**