]>
Commit | Line | Data |
---|---|---|
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 | services.cron = { | |
98 | mailto = "cron@immae.eu"; | |
99 | systemCronJobs = [ | |
100 | "0 0 * * * naemon cd ${package} && ./bin/Console.php cleanup" | |
101 | ]; | |
102 | }; | |
103 | ||
104 | systemd.services.status_engine_worker = { | |
105 | description = "Status engine worker"; | |
106 | after = [ "network.target" ]; | |
107 | wantedBy = [ "multi-user.target" ]; | |
108 | serviceConfig = { | |
109 | Type = "simple"; | |
110 | Restart = "on-failure"; | |
111 | User = "naemon"; | |
112 | ExecStart = "${package}/bin/StatusengineWorker.php"; | |
113 | }; | |
114 | }; | |
115 | }; | |
116 | } |