hardware rewrite
This commit is contained in:
parent
46c2e595fe
commit
277291f346
8 changed files with 40 additions and 50 deletions
|
|
@ -1,85 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
services = {
|
||||
prometheus = {
|
||||
enable = true;
|
||||
exporters.node.enable = true;
|
||||
scrapeConfigs = [ {
|
||||
job_name = "node";
|
||||
static_configs = [ { targets = [
|
||||
"localhost:${toString config.services.prometheus.exporters.node.port}"
|
||||
]; } ];
|
||||
} ];
|
||||
};
|
||||
grafana = {
|
||||
enable = true;
|
||||
settings = {
|
||||
security.secret_key = "$__file{/secrets/grafana-key}";
|
||||
server = {
|
||||
enable_gzip = true;
|
||||
protocol = "socket";
|
||||
socket_mode = "0666";
|
||||
root_url = "https://bogaledev.ru/grafana";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd = {
|
||||
timers = {
|
||||
tgbot-send = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
Persistent = true;
|
||||
OnCalendar = "*-*-01 16:00:00";
|
||||
};
|
||||
};
|
||||
network-watchdog = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnBootSec = 30;
|
||||
AccuracySec = 1;
|
||||
OnUnitActiveSec = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
tgbot-send = {
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
. /secrets/tgbot.env
|
||||
for msg in "''${MESSAGES[@]}"; do
|
||||
TEXT="''${msg#*:}"
|
||||
CHAT_ID="''${msg%%:*}"
|
||||
${pkgs.curl}/bin/curl -X POST "https://api.telegram.org/$BOT/sendMessage" \
|
||||
-d "chat_id=$CHAT_ID" -d "text=$TEXT" 2> /dev/null | ${pkgs.jq}/bin/jq
|
||||
sleep 1
|
||||
done
|
||||
'';
|
||||
};
|
||||
network-watchdog = {
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
LogLevelMax = "warning";
|
||||
};
|
||||
script = ''
|
||||
if [ ! -e /run/network.failures ] || [ ! -e /run/network.limit ] || \
|
||||
${pkgs.curl}/bin/curl --head --max-time 3 https://www.google.com; then
|
||||
limit=3
|
||||
failures=0
|
||||
else
|
||||
limit=$(cat /run/network.limit)
|
||||
failures=$((1+$(cat /run/network.failures)))
|
||||
fi
|
||||
if [ $failures -ge $limit ]; then
|
||||
echo "<4>restarting network"
|
||||
systemctl restart NetworkManager.service
|
||||
[ $limit -lt 360 ] && limit=$((2*$limit))
|
||||
failures=0
|
||||
fi
|
||||
echo $limit > /run/network.limit
|
||||
echo $failures > /run/network.failures
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue