| Age | Commit message (Collapse) | Author |
|
**🪵 all: rename notif field "webhook_url" to "remote_url"
These changes is to minimize duplicate field on "notif" section, so
different kind of notif can use the same "remote_url" value.
**🌱 all: support sending notification to SMTP server (email)**
In the main configuration, lilin.cfg, user now can add "notif" section with
kind "smtp" to send notification using user's email.
|
|
|
|
The title will be displayed for window title and as the heading in
the status page.
While at it, remove the status column on the Down History section, since
the value is static.
|
|
The footer contains information about the program.
|
|
To minimize defining the same templates in notification, user can set
default down and up templates under the default section.
|
|
In the main configuration, lilin.cfg, user now can add "notif" section with
kind "smtp" to send notification using user's email.
This require renaming "webhook_url" to "remote_url" to minimize duplicate
field, so different kind of notif can use the same "remote_url" value.
|
|
This is the first release of lilin project with the following features,
* Monitoring HTTP, TCP, UDP services
* Sending notification when service up or down through,
** Mattermost incoming webhook
|
|
In the README, we add section on how building the program, the main
configuration, and how to monitor the services using configuration.
Inside the _www directory, we create doc/ directory that contains
symlink to README.md as index.md.
This allow us to serve the lilin as page under
https://kilabit.info/project/lilin .
|
|
|
|
Using 5 seconds timeout cause an error "context deadline exceeded" when
sending notification on some instance of Mattermost.
While at it, fix missing return statement on pushNotifMattermost.
|
|
|
|
In the server configuration, one can defined the following section
to send the notification using Mattermost,
[notif]
kind = mattermost
webhook_url = # The incoming webhook URL.
channel = # The channel where the notification will be placed.
down_template = # Message template when service is down.
up_template = # Message template when service is up.
|
|
The basedir flag set the working directory where the program
will read the configuration and store the logs.
By default the basedir is empty, which is equal to "/".
|
|
While at it, remove logging on Store.
|
|
|
|
Since we use the service ID, derived from file name, change
the class name to sid instead of name.
|
|
Instead of using name, which may contains space, use the
file name as service ID.
In this way, the log file name will match with the service
file name.
|
|
|
|
Options means optional, while the field in struct may contains
mandatory or must not be empty.
|
|
|
|
Add a background color for section "Service status" and "Down history"
to highlight it with other text.
Add background color for service that is down in "Service status".
|
|
|
|
The "-dev" flag enable running in development mode, where each refresh
will re-read, parse, and execute the template.
|
|
In the main Reports struct, we record the failed ScanReport in separate
slices.
Those slices then displayed on the main page under "Fail history"
section.
|
|
When the service keep scanning longer than let say 1 day, the history
of service report keep growing.
We did not want this history consume memory, so at one point we need
to purge it.
This changes limit the maximum history to 120 items.
|
|
The start method run all the services scanner in the background and
consume the report from it from channel.
Each time new report coming it will notify the Server to update the
index page body.
|
|
The Start method start the scanning periodically and send the report
to channel reportq.
The Stop method stop the periodic scanning.
This changes introduces new option Interval in the Service that define
the time interval between each scan.
|
|
Instead of using HTML and JavaScript, generate the web page using
template.
This minimize number of works we do in the future (creating client
in JavaScript and HTTP APIs).
|
|
Instead of defining the options in the Service, create it in the
ServiceOptions and pass it to NewService function.
In this way, we can check it, initialize it, and set default value.
The Address option now use URL with scheme, so we can derive the
service type based on the scheme, for example "http://" for HTTP based
service, "tcp://xxx" for TCP based service, and so on.
|
|
The service configuration is stored under "$BASE_DIR/etc/lilin/service.d".
with ".cfg" as the file extension.
The service configuration use INI format.
|
|
lilin is a program to help monitor other services through HTTP, TCP,
and UDP connection.
|