Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kos-v/sensors-informer
Daemon for checking CPU temperature sensors and sending notifications to channels (notify-send, smtp, telegram)
https://github.com/kos-v/sensors-informer
lm-sensors notification notify-send sensors smtp telegram
Last synced: 2 days ago
JSON representation
Daemon for checking CPU temperature sensors and sending notifications to channels (notify-send, smtp, telegram)
- Host: GitHub
- URL: https://github.com/kos-v/sensors-informer
- Owner: kos-v
- License: mit
- Created: 2021-11-27T14:35:07.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-22T11:13:50.000Z (almost 2 years ago)
- Last Synced: 2024-10-11T22:22:53.375Z (28 days ago)
- Topics: lm-sensors, notification, notify-send, sensors, smtp, telegram
- Language: Go
- Homepage:
- Size: 643 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sensors informer
This service checks data from lm_sensors (Linux monitoring sensors) and
sends notifications when critical indicators are reached.## Building, installation, etc
### Compilation
To compile, you must have installed Go at least version 16.
1. `git clone https://github.com/kos-v/sensors-informer.git`
2. `cd sensors-informer`
3. `make`
### Installation
You can install this service and the global configuration file to the system directory.
Run (you may need root-rights): `make install`
### Uninstallation
To uninstall run (you may need root-rights): `make uninstall`
## Configuring
To start the service, you need a configuration file, a template of which is in the `./etc/conf/` repository folder. When installing the service to the system directory, the template will be copied to the directory `/etc/sensors-informer`, after which you need to configure the necessary channels and other parameters.
It is also possible to load a local config file, for this put the config in the same directory with the executable file.
In addition, you can pass the path to the config via the `-config=/path/config.yml` argument when starting the service.
Only one config can be loaded and with this priority:
1. Specific config passed via command line argument `-config=/path/config.yml`.
2. Local config: `./config.yml`.
3. Global config: `/etc/sensors-informer/config.yml`### Description of configuration parameters
```yaml
# lm_sensors options
lmSensors:
# Path to the "sensors" command
command: sensors# List of channels to which you can send a notification.
# Enabling/disabling a channel is controlled by the "enable" parameter, which by default is false.
channels:
# Sends a notification to a file, the path to which is specified in the "path" parameter
# Can be used, for example, when testing, debugging or other cases.
file:
# Enable/disable
enable: true
# The path to a file
path: ./notifications.out
# Sends a notification to the notify-send program, which is often installed in gnome
# and other graphical unix-shells on a desktop.
# See https://manpages.ubuntu.com/manpages/xenial/man1/notify-send.1.html
notifySend:
# Enable/disable
enable: false
# Path to the "notify-send" command
command: notify-send
# Specifies the urgency level (low, normal, critical)
# See notify-send documentation.
urgency: critical
# Specifies the timeout in milliseconds at which to expire the notification.
# See notify-send documentation.
expireTime: 10
# Specifies basic extra data to pass. Valid types are int, double, string and byte.
# See notify-send documentation.
hint:
# Sends a notification to a email via smtp
smtp:
# Enable/disable
enable: false
# Username for authentication
username: [email protected]
# Password for authentication
password: "password"
# Connection SMTP host
host: smtp.example.local
# Connection port
port: 465
# Sender data
from:
# Sender's email address
email: [email protected]
# Sender name
name: Sensors Informer
# List of email recipients
to: [[email protected]]
# Encryption type. Valid values: ssl, tls, starttls.
encryption: ssl
# TLS encryption parameters
tls:
# InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name.
# If InsecureSkipVerify is true, TLS accepts any certificate presented by the server and any host name in that certificate.
# In this mode, TLS is susceptible to machine-in-the-middle attacks unless custom verification is used.
insecureSkipVerify: false
# ServerName is used to verify the hostname on the returned certificates unless InsecureSkipVerify is given.
# It is also included in the client's handshake to support virtual hosting unless it is an IP address.
serverName:
# Sends a notification to your telegram bot
telegramBot:
# Enable/disable
enable: false
# The token that you received when creating a bot through @BotFather
token: "0000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# The id of a chat that you initiated with your bot.
# The chat ID can only be obtained by calling the telegram api method: https://api.telegram.org/bot{token}/getUpdates
# where, {token} is a token issued when creating a bot through @BotFather.
chatId: 000000000# Sensors options
sensors:
# Temperature check interval in seconds
pollingInterval: 10
# Temperature sensor options
temperature:
# Temperature at which a notification will be sent
critical: 80
# The unit of measure for the critical parameter. Default: celsius.
# Valid options: "c" (celsius), "f" (fahrenheit).
unit: c# Notification options
report:
# Format of notification
format:
# The format in which the temperature will be displayed in a notification.
# Valid options: "c" (celsius), "f" (fahrenheit).
temperatureUnit: с
# Format of notification title
title:
# Title text.
# If you specify {timestamp}, then the title will contain the date when the notification was generated.
text: "Critical temperature readings [{timestamp}]:"
# Time in seconds when a notification can be resubmitted
repeatTimeout: 1800
```