diff options
-rw-r--r-- | modules/private/databases/mariadb_replication.nix | 1 | ||||
-rw-r--r-- | modules/private/monitoring/objects_common.nix | 2 | ||||
-rwxr-xr-x | modules/private/monitoring/plugins/check_mysql_replication | 8 | ||||
-rw-r--r-- | modules/private/system/eldiron.nix | 26 |
4 files changed, 33 insertions, 4 deletions
diff --git a/modules/private/databases/mariadb_replication.nix b/modules/private/databases/mariadb_replication.nix index ae54265..5a5a8b0 100644 --- a/modules/private/databases/mariadb_replication.nix +++ b/modules/private/databases/mariadb_replication.nix | |||
@@ -145,6 +145,7 @@ in | |||
145 | --gtid \ | 145 | --gtid \ |
146 | --master-data \ | 146 | --master-data \ |
147 | --flush-privileges \ | 147 | --flush-privileges \ |
148 | --ignore-database=netdata \ | ||
148 | --all-databases > $filename | 149 | --all-databases > $filename |
149 | ${pkgs.gzip}/bin/gzip $filename | 150 | ${pkgs.gzip}/bin/gzip $filename |
150 | ''; | 151 | ''; |
diff --git a/modules/private/monitoring/objects_common.nix b/modules/private/monitoring/objects_common.nix index 4b44e56..ee158dc 100644 --- a/modules/private/monitoring/objects_common.nix +++ b/modules/private/monitoring/objects_common.nix | |||
@@ -145,7 +145,7 @@ in | |||
145 | check_smtp = "$USER1$/check_smtp -H $HOSTADDRESS$ -p 25 -S -D 21,15"; | 145 | check_smtp = "$USER1$/check_smtp -H $HOSTADDRESS$ -p 25 -S -D 21,15"; |
146 | check_tcp = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -e \"$ARG2$\" -Mcrit"; | 146 | check_tcp = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -e \"$ARG2$\" -Mcrit"; |
147 | check_tcp_ssl = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -S -D 21,15"; | 147 | check_tcp_ssl = "$USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -S -D 21,15"; |
148 | check_zfs = "$USER2$/check_zpool.sh -p ALL"; | 148 | check_zfs = "$USER2$/check_zpool.sh -p ALL -w 80 -c 90"; |
149 | 149 | ||
150 | check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; | 150 | check_host_alive = "$USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5"; |
151 | check_last_file_date = "${sudo} -u \"$ARG3$\" $USER2$/check_last_file_date \"$ARG1$\" \"$ARG2$\""; | 151 | check_last_file_date = "${sudo} -u \"$ARG3$\" $USER2$/check_last_file_date \"$ARG1$\" \"$ARG2$\""; |
diff --git a/modules/private/monitoring/plugins/check_mysql_replication b/modules/private/monitoring/plugins/check_mysql_replication index 4027f63..1ee5de1 100755 --- a/modules/private/monitoring/plugins/check_mysql_replication +++ b/modules/private/monitoring/plugins/check_mysql_replication | |||
@@ -10,7 +10,10 @@ config_file=$2 | |||
10 | info=$(mysql --defaults-file=${config_file} -S $socket -e "show slave status" --vertical) | 10 | info=$(mysql --defaults-file=${config_file} -S $socket -e "show slave status" --vertical) |
11 | exit_code=$? | 11 | exit_code=$? |
12 | 12 | ||
13 | lag=$(echo "$info" | grep Seconds_Behind_Master | cut -d':' -f2 | sed -e "s/\s//g") | 13 | lag=$(echo "$info" | grep "\bSeconds_Behind_Master\b" | cut -d':' -f2 | sed -e "s/\s//g") |
14 | |||
15 | IO_running=$(echo "$info" | grep "\bSlave_IO_Running\b" | cut -d':' -f2 | sed -e "s/\s//g") | ||
16 | SQL_running=$(echo "$info" | grep "\bSlave_SQL_Running\b" | cut -d':' -f2 | sed -e "s/\s//g") | ||
14 | 17 | ||
15 | if [[ $exit_code -ne 0 ]]; then | 18 | if [[ $exit_code -ne 0 ]]; then |
16 | echo "UNKNOWN - Impossible to run mysql command" | 19 | echo "UNKNOWN - Impossible to run mysql command" |
@@ -18,6 +21,9 @@ if [[ $exit_code -ne 0 ]]; then | |||
18 | elif [[ -z "$lag" ]]; then | 21 | elif [[ -z "$lag" ]]; then |
19 | echo "UNKNOWN - No replication found for mysql" | 22 | echo "UNKNOWN - No replication found for mysql" |
20 | exit $STATE_UNKNOWN | 23 | exit $STATE_UNKNOWN |
24 | elif [[ "$IO_running" != "Yes" || "$SQL_running" != "Yes" ]]; then | ||
25 | echo "UNKNOWN - Replication is not running" | ||
26 | exit $STATE_UNKNOWN | ||
21 | else | 27 | else |
22 | output="Replication lag for mysql is ${lag}s" | 28 | output="Replication lag for mysql is ${lag}s" |
23 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) | 29 | LC_ALL=C lag=$(printf "%.*f" 0 $lag) |
diff --git a/modules/private/system/eldiron.nix b/modules/private/system/eldiron.nix index 102a517..2475710 100644 --- a/modules/private/system/eldiron.nix +++ b/modules/private/system/eldiron.nix | |||
@@ -31,12 +31,34 @@ | |||
31 | myEnv = import "${privateFiles}/environment.nix" // { inherit privateFiles; }; | 31 | myEnv = import "${privateFiles}/environment.nix" // { inherit privateFiles; }; |
32 | 32 | ||
33 | fileSystems = { | 33 | fileSystems = { |
34 | # pools: | ||
35 | # zpool: ashift=12 | ||
36 | # zfast: ashift=12 | ||
37 | # zfs: | ||
38 | # zpool/: acltype=posixacl ; xattr=sa ; atime=off ; mountpoint=legacy | ||
39 | # zpool/root: encryption=on ; keyformat=passphrase ; keylocation=file:///boot/pass.key | ||
40 | # zpool/root/var: atime=on | ||
41 | # zfast/: acltype=posixacl ; xattr=sa ; atime=off ; mountpoint=legacy | ||
42 | # zfast/root: encryption=on ; keyformat=passphrase ; keylocation=file:///boot/pass.key | ||
43 | # zfast/root/etc: ø | ||
44 | # zfast/root/nix: ø | ||
45 | # zfast/root/tmp: async=disabled | ||
46 | # zfast/root/var: atime=on | ||
47 | # zfast/root/var/lib: ø | ||
48 | # zfast/root/var/lib/mysql: logbias=throughput ; atime=off ; primarycache=metadata | ||
49 | # zfast/root/var/lib/postgresql: recordsize=8K ; atime=off ; logbias=throughput | ||
50 | # zfast/root/var/lib/postgresql/11.0: ø | ||
51 | # zfast/root/var/lib/postgresql/11.0/pg_wal: ø | ||
34 | "/" = { fsType = "zfs"; device = "zpool/root"; }; | 52 | "/" = { fsType = "zfs"; device = "zpool/root"; }; |
35 | "/boot" = { fsType = "ext4"; device = "/dev/disk/by-uuid/e6bb18fb-ff56-4b5f-ae9f-e60d40dc0622"; }; | 53 | "/boot" = { fsType = "ext4"; device = "/dev/disk/by-uuid/e6bb18fb-ff56-4b5f-ae9f-e60d40dc0622"; }; |
36 | "/etc" = { fsType = "zfs"; device = "zpool/root/etc"; }; | 54 | "/etc" = { fsType = "zfs"; device = "zpool/root/etc"; }; |
37 | "/nix" = { fsType = "zfs"; device = "zpool/root/nix"; }; | 55 | "/nix" = { fsType = "zfs"; device = "zfast/root/nix"; }; |
38 | "/tmp" = { fsType = "zfs"; device = "zpool/root/tmp"; }; | 56 | "/tmp" = { fsType = "zfs"; device = "zfast/root/tmp"; }; |
39 | "/var" = { fsType = "zfs"; device = "zpool/root/var"; }; | 57 | "/var" = { fsType = "zfs"; device = "zpool/root/var"; }; |
58 | "/var/lib/mysql" = { fsType = "zfs"; device = "zfast/root/var/lib/mysql"; }; | ||
59 | "/var/lib/postgresql" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql"; }; | ||
60 | "/var/lib/postgresql/11.0" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql/11.0"; }; | ||
61 | "/var/lib/postgresql/11.0/pg_wal" = { fsType = "zfs"; device = "zfast/root/var/lib/postgresql/11.0/pg_wal"; }; | ||
40 | }; | 62 | }; |
41 | swapDevices = [ { label = "swap1"; } { label = "swap2"; } ]; | 63 | swapDevices = [ { label = "swap1"; } { label = "swap2"; } ]; |
42 | hardware.enableRedistributableFirmware = true; | 64 | hardware.enableRedistributableFirmware = true; |