; all you need to know: https://docs.python.org/3/library/configparser.html ... ;) [linspector] ; report core errors to the following users error_receivers = admin@example.com ; available log levels are: "critical", "error", "warning", "info" and "debug". if no log_level is set, it will be set ; to "critical". log_level = debug ;log_file = ~/code/linspector/linspector/log/linspector.log ; number of log files to be kept. i recommend to use the lowest sensible value for keeping performance high. so set ; the size of the log file higher to increase the log history. log_file_count = 20 ; log file size in megabytes as int. the default is 10000000 bytes (10MiB) set in the code if not configured here. log_file_size = 1 ; log file size in bytes as int. you can set to bytes if you want to set a value lower then 1 megabyte. but it will ; only be used when log_file_size is not set. if this value is not set too the default in the code will be used. log_file_size_bytes = 100000 pid_file = /var/run/user/1000/linspector.pid ; plugins separated by ','. no whitespaces allowed! not case sensitive. plugins = api,httpd,lish ; globally configured tasks will always run on all monitors when no task is configured there. if tasks are configured in ; a monitor then maybe only run tasks from the dedicated monitor. maybe it is a good idea to run global tasks in every ; monitor and the monitor can add tasks to the global settings... need to think about it. ; tasks separated by ','. no whitespaces allowed! not case sensitive. tasks = sqlite notifications = sms ; maybe the run_mode is obsolete because this will be a daemon but maybe it is useful for one time execution? ; in uplink the available run_modes were cron, daemon and foreground run_mode = cron ; members to send notifications to if something internally in Linspector went wrong. members = superadmin@example.com,developers@example.com ; scheduler configuration start_scheduler = true ; the mode the scheduler should run. options are, process or thread. default is the thread mode. process mode will run ; multiple processes, thread mode will run only one process with multiple threads. maybe this can be combined to run ; multiple processes with multiple threads... dont know this actually but reading the APScheduler documentation will ; explain this.... :) default is "thread" but Linspector will only run on one CPU core then. default threads are 1024 ; but this can be set much higher here. this should be minimal set to the number of monitors you are running. in process ; mode log rotating is not working as expected so i need to investigate some time to figure out what happens. scheduler_mode = process ; the default job interval can be set here. in the code 300 seconds are set when this option does not exist here nor in ; the monitor configuration. default_interval = 5 ; the minimum interval for monitors minimum_interval = 1 max_threads = 2048 ; i recommend to set this to your number of CPU cores available when running on a dedicated Linspector host. but if the ; system is running other services you should lower this value when you have too high CPU load. if you have enough ; resources this value really can be higher then your available CPU cores. max_processes = 8 ; timezone can be set to a remote timezone to make monitors run at the remote time. this can be overridden in each ; monitor configuration. timezone = UTC ; this is for scheduling jobs to not run all at the same time. this should not be set lower then the lowest interval ; you use in monitors. it can be set to a lower value if you only have a small amount of services you are monitoring. ; i recommend the lowest interval you use in any monitor but higher values will reduce cpu load when using monitors ; with a higher value then the delta_range. it is always starting with 0. default is 60. the current setting is for ; development only. delta_range = 60 ; hostgroup parents; if the hostgroup "group1" is down, don't alert for the hosts in group2. see TODO for more ; information. [hostgroupparents] ; hostgroup group1 is parent of group2 group1 = group2 ; a flexible way to define groups of hosts which can be used by monitors as target for monitoring for easily monitor ; groups without adding a monitor for each host. for some more information see the "hosts" section in gateway.conf. ; hostgroups can be defined in separate files in etc/hostgroups to be more flexible. [hostgroups] ; add single hosts group1 = host1,host2,host3 ; add a range of ip addresses. ; for ip ranges see: https://stackoverflow.com/questions/19157307/generate-range-of-ips-in-python group2 = 192.168.1.1/28 ; add a combination of hosts and ranges group3 = host1,host2,host3,192.168.1.1/28 ; using groups inside groups. but need to take care about recursive dependencies. group4 = host10,host11,host12,@group3 ; member groups to define recipients for notifications. see hostgroups for more details. [membergroups] admins = admin1@example.com,admin2@example.com,admin3@example.com developers = hanez@example.com ; just an idea taken from the old Linspector design. not tried but seems a good idea to add global options to monitor ; groups. no idea of an implementation yet. [monitorgroups] ; members of monitors to automatically send notifications to all without need to set them in each monitor. members can ; be added to monitors in the configuration of each monitor though. network1_members = admin@example.com,@admins ; every notification can be configured in it's own configuration file in etc/notifications; there no notification ; name as prefix is needed. see email example. [notifications] ; values can be overridden in each defined monitor sms_receivers = +number1,+number2 sms_configuration_file = ~/linspector/etc/gammurc ; retry to send interval and number of retries if something failed sms_resend = 10 sms_resend_count = 5 email_resend = 10 ; every plugin can be configured in it's own ini file in etc/plugins; there no plugin name as prefix is needed. see ; httpd example. [plugins] api_host = 0.0.0.0 httpd_host = 192.168.23.42 httpd_port = 8089 ; if types can or must be configured before use; for now no use case seen. ; every type can be configured in it's own ini file in etc/types; there no type name as prefix is not needed. [services] ; run the speedtest not very often. it is not for alerting about problems bur maybe will be at some day. speedtest_interval = 3600 ; the file to get for calculation of the downlink speed. microsoft has very fast servers so it will become a meaningful ; result. speedtest_url = https://go.microsoft.com/fwlink/?Linkid=850641 ; tasks executed at the end of each monitor execution. this is for storing data for longtime analysis. not every task ; is storing results and this feature is fully optional. Linspector must run even without activated tasks! [tasks] mariadb_database = linspector mariadb_host = 10.0.0.254 mariadb_password = PASSWORD mariadb_port = 3306 mariadb_user = USER