diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-06-16 15:23:20 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-06-16 16:16:00 +0200 |
commit | a97118c489a59d723538292214efaa10dfcb96df (patch) | |
tree | 853ec20d2af94dc8d3325fa3b781dd535cd72c86 /modules/private/monitoring/status_engine.nix | |
parent | b1b8a5623d22a7ee4301afe4e7b9d368ef7ded8f (diff) | |
download | Nix-a97118c489a59d723538292214efaa10dfcb96df.tar.gz Nix-a97118c489a59d723538292214efaa10dfcb96df.tar.zst Nix-a97118c489a59d723538292214efaa10dfcb96df.zip |
Add status engine website
Diffstat (limited to 'modules/private/monitoring/status_engine.nix')
-rw-r--r-- | modules/private/monitoring/status_engine.nix | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/modules/private/monitoring/status_engine.nix b/modules/private/monitoring/status_engine.nix new file mode 100644 index 0000000..c74a44d --- /dev/null +++ b/modules/private/monitoring/status_engine.nix | |||
@@ -0,0 +1,109 @@ | |||
1 | { config, pkgs, lib, name, ... }: | ||
2 | let | ||
3 | package = pkgs.status_engine.worker.override { config_file = config.secrets.fullPaths."status_engine"; }; | ||
4 | env = config.myEnv.tools.status_engine; | ||
5 | in | ||
6 | { | ||
7 | config = lib.mkIf config.myServices.status.enable { | ||
8 | systemd.services.gearmand = { | ||
9 | description = "Gearman daemon"; | ||
10 | after = [ "network.target" ]; | ||
11 | wantedBy = [ "multi-user.target" ]; | ||
12 | serviceConfig = { | ||
13 | DynamicUser = true; | ||
14 | User = "gearmand"; | ||
15 | Type = "simple"; | ||
16 | ExecStart = "${pkgs.gearmand}/bin/gearmand --syslog -L 127.0.0.1 -q libsqlite3 --libsqlite3-db /var/lib/gearmand/gearmand.db --store-queue-on-shutdown -l stderr -P /run/gearmand/gearmand.pid"; | ||
17 | RuntimeDirectory = "gearmand"; | ||
18 | StateDirectory = "gearmand"; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | secrets.keys = [{ | ||
23 | dest = "status_engine"; | ||
24 | permissions = "0400"; | ||
25 | user = "naemon"; | ||
26 | group = "naemon"; | ||
27 | text = '' | ||
28 | node_name: ${name} | ||
29 | use_gearman: 1 | ||
30 | gearman: | ||
31 | address: 127.0.0.1 | ||
32 | port: 4730 | ||
33 | timeout: 1000 | ||
34 | use_rabbitmq: 0 | ||
35 | use_redis: 1 | ||
36 | redis: | ||
37 | address: 127.0.0.1 | ||
38 | port: 6379 | ||
39 | db: 0 | ||
40 | store_live_data_in_archive_backend: 1 | ||
41 | use_mysql: 1 | ||
42 | mysql: | ||
43 | host: ${env.mysql.remoteHost} | ||
44 | port: ${env.mysql.port} | ||
45 | username: ${env.mysql.user} | ||
46 | password: ${env.mysql.password} | ||
47 | database: ${env.mysql.database} | ||
48 | use_crate: 0 | ||
49 | number_of_bulk_records: 100 | ||
50 | max_bulk_delay: 5 | ||
51 | number_servicestatus_worker: 1 | ||
52 | number_hoststatus_worker: 1 | ||
53 | number_logentry_worker: 1 | ||
54 | number_statechange_worker: 1 | ||
55 | number_hostcheck_worker: 1 | ||
56 | number_servicecheck_worker: 1 | ||
57 | number_misc_worker: 1 | ||
58 | |||
59 | process_perfdata: 1 | ||
60 | number_perfdata_worker: 1 | ||
61 | perfdata_backend: | ||
62 | - mysql | ||
63 | |||
64 | check_for_commands: 1 | ||
65 | command_check_interval: 15 | ||
66 | external_command_file: /run/naemon/naemon.cmd | ||
67 | query_handler: /run/naemon/naemon.qh | ||
68 | submit_method: qh | ||
69 | |||
70 | syslog_enabled: 1 | ||
71 | syslog_tag: statusengine-worker | ||
72 | |||
73 | # Archive age | ||
74 | age_hostchecks: 5 | ||
75 | age_host_acknowledgements: 60 | ||
76 | age_host_notifications: 60 | ||
77 | age_host_statehistory: 365 | ||
78 | age_host_downtimes: 60 | ||
79 | age_servicechecks: 5 | ||
80 | age_service_acknowledgements: 60 | ||
81 | age_service_notifications: 60 | ||
82 | age_service_statehistory: 365 | ||
83 | age_service_downtimes: 60 | ||
84 | age_logentries: 5 | ||
85 | age_tasks: 1 | ||
86 | age_perfdata: 90 | ||
87 | |||
88 | disable_http_proxy: 1 | ||
89 | ''; | ||
90 | }]; | ||
91 | |||
92 | services.redis = rec { | ||
93 | enable = true; | ||
94 | bind = "127.0.0.1"; | ||
95 | }; | ||
96 | |||
97 | systemd.services.status_engine_worker = { | ||
98 | description = "Status engine worker"; | ||
99 | after = [ "network.target" ]; | ||
100 | wantedBy = [ "multi-user.target" ]; | ||
101 | serviceConfig = { | ||
102 | Type = "simple"; | ||
103 | Restart = "on-failure"; | ||
104 | User = "naemon"; | ||
105 | ExecStart = "${package}/bin/StatusengineWorker.php"; | ||
106 | }; | ||
107 | }; | ||
108 | }; | ||
109 | } | ||