summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2022-10-28 10:30:45 +0300
committerPaul Buetow <paul@buetow.org>2022-10-28 10:30:45 +0300
commit7b71623df33336f8c69b2f6d12c9cf7230e1f6e6 (patch)
tree3443ff2e59999fa68d2c27e02ccdd70f3f667de7
parent0f9b7d69be4931f87d8513fab498311c9388f567 (diff)
add dserver configs
-rw-r--r--frontends/Rexfile40
-rw-r--r--frontends/etc/dserver/dtail.json.tpl127
-rwxr-xr-xfrontends/etc/rc.d/dserver.tpl16
-rw-r--r--frontends/scripts/dserver-update-key-cache.sh.tpl34
4 files changed, 216 insertions, 1 deletions
diff --git a/frontends/Rexfile b/frontends/Rexfile
index 79701d2..d2e4b31 100644
--- a/frontends/Rexfile
+++ b/frontends/Rexfile
@@ -93,7 +93,7 @@ task 'base', group => 'frontends',
pkg 'vger', ensure => present;
pkg 'zsh', ensure => present;
- append_if_no_such_line '/etc/rc.conf.local', 'pkg_scripts="uptimed httpd failunderd"';
+ append_if_no_such_line '/etc/rc.conf.local', 'pkg_scripts="uptimed httpd failunderd dserver"';
file '/etc/myname',
content => template('./etc/myname.tpl', fqdns => $fqdns),
@@ -336,6 +336,43 @@ task 'nsd_slaves', group => 'dnsslaves',
service 'nsd', ensure => 'started';
};
+desc 'Setup DTail';
+task 'dtail', group => 'frontends',
+ sub {
+ my $restart = FALSE;
+
+ file '/etc/rc.d/dserver',
+ content => template('./etc/rc.d/dserver.tpl'),
+ owner => 'root',
+ group => 'wheel',
+ mode => '755',
+ on_change => sub { $restart = TRUE };
+
+ file '/etc/dserver',
+ ensure => 'directory',
+ owner => 'root',
+ group => 'wheel',
+ mode => '755';
+
+ file '/etc/dserver/dtail.json',
+ content => template('./etc/dserver/dtail.json.tpl'),
+ owner => 'root',
+ group => 'wheel',
+ mode => '755',
+ on_change => sub { $restart = TRUE };
+
+ file '/usr/local/bin/dserver-update-key-cache.sh',
+ content => template('./scripts/dserver-update-key-cache.sh.tpl'),
+ owner => 'root',
+ group => 'wheel',
+ mode => '500';
+
+ append_if_no_such_line '/etc/daily.local', '/usr/local/bin/dserver-update-key-cache.sh';
+
+ service 'dserver' => 'restart' if $restart;
+ service 'dserver', ensure => 'started';
+ };
+
desc 'Setup failunderd';
task 'failunderd', group => 'frontends',
sub {
@@ -357,6 +394,7 @@ task 'commons', group => 'frontends',
relayd();
smtpd();
rsync();
+ dtail();
failunderd();
};
diff --git a/frontends/etc/dserver/dtail.json.tpl b/frontends/etc/dserver/dtail.json.tpl
new file mode 100644
index 0000000..6b96fba
--- /dev/null
+++ b/frontends/etc/dserver/dtail.json.tpl
@@ -0,0 +1,127 @@
+{
+ "Client": {
+ "TermColorsEnable": true,
+ "TermColors": {
+ "Remote": {
+ "DelimiterAttr": "Dim",
+ "DelimiterBg": "Blue",
+ "DelimiterFg": "Cyan",
+ "RemoteAttr": "Dim",
+ "RemoteBg": "Blue",
+ "RemoteFg": "White",
+ "CountAttr": "Dim",
+ "CountBg": "Blue",
+ "CountFg": "White",
+ "HostnameAttr": "Bold",
+ "HostnameBg": "Blue",
+ "HostnameFg": "White",
+ "IDAttr": "Dim",
+ "IDBg": "Blue",
+ "IDFg": "White",
+ "StatsOkAttr": "None",
+ "StatsOkBg": "Green",
+ "StatsOkFg": "Black",
+ "StatsWarnAttr": "None",
+ "StatsWarnBg": "Red",
+ "StatsWarnFg": "White",
+ "TextAttr": "None",
+ "TextBg": "Black",
+ "TextFg": "White"
+ },
+ "Client": {
+ "DelimiterAttr": "Dim",
+ "DelimiterBg": "Yellow",
+ "DelimiterFg": "Black",
+ "ClientAttr": "Dim",
+ "ClientBg": "Yellow",
+ "ClientFg": "Black",
+ "HostnameAttr": "Dim",
+ "HostnameBg": "Yellow",
+ "HostnameFg": "Black",
+ "TextAttr": "None",
+ "TextBg": "Black",
+ "TextFg": "White"
+ },
+ "Server": {
+ "DelimiterAttr": "AttrDim",
+ "DelimiterBg": "BgCyan",
+ "DelimiterFg": "FgBlack",
+ "ServerAttr": "AttrDim",
+ "ServerBg": "BgCyan",
+ "ServerFg": "FgBlack",
+ "HostnameAttr": "AttrBold",
+ "HostnameBg": "BgCyan",
+ "HostnameFg": "FgBlack",
+ "TextAttr": "AttrNone",
+ "TextBg": "BgBlack",
+ "TextFg": "FgWhite"
+ },
+ "Common": {
+ "SeverityErrorAttr": "AttrBold",
+ "SeverityErrorBg": "BgRed",
+ "SeverityErrorFg": "FgWhite",
+ "SeverityFatalAttr": "AttrBold",
+ "SeverityFatalBg": "BgMagenta",
+ "SeverityFatalFg": "FgWhite",
+ "SeverityWarnAttr": "AttrBold",
+ "SeverityWarnBg": "BgBlack",
+ "SeverityWarnFg": "FgWhite"
+ },
+ "MaprTable": {
+ "DataAttr": "AttrNone",
+ "DataBg": "BgBlue",
+ "DataFg": "FgWhite",
+ "DelimiterAttr": "AttrDim",
+ "DelimiterBg": "BgBlue",
+ "DelimiterFg": "FgWhite",
+ "HeaderAttr": "AttrBold",
+ "HeaderBg": "BgBlue",
+ "HeaderFg": "FgWhite",
+ "HeaderDelimiterAttr": "AttrDim",
+ "HeaderDelimiterBg": "BgBlue",
+ "HeaderDelimiterFg": "FgWhite",
+ "HeaderSortKeyAttr": "AttrUnderline",
+ "HeaderGroupKeyAttr": "AttrReverse",
+ "RawQueryAttr": "AttrDim",
+ "RawQueryBg": "BgBlack",
+ "RawQueryFg": "FgCyan"
+ }
+ }
+ },
+ "Server": {
+ "SSHBindAddress": "0.0.0.0",
+ "HostKeyFile": "cache/ssh_host_key",
+ "HostKeyBits": 2048,
+ "MapreduceLogFormat": "default",
+ "MaxConcurrentCats": 2,
+ "MaxConcurrentTails": 50,
+ "MaxConnections": 50,
+ "MaxLineLength": 1048576,
+ "Permissions": {
+ "Default": [
+ "readfiles:^/.*$"
+ ],
+ "Users": {
+ "paul": [
+ "readfiles:^/.*$"
+ ],
+ "pbuetow": [
+ "readfiles:^/.*$"
+ ],
+ "jamesblake": [
+ "readfiles:^/tmp/foo.log$",
+ "readfiles:^/.*$",
+ "readfiles:!^/tmp/bar.log$"
+ ]
+ }
+ }
+ },
+ "Common": {
+ "LogDir": "/var/log/dserver",
+ "Logger": "Fout",
+ "LogRotation": "Daily",
+ "CacheDir": "cache",
+ "SSHPort": 2222,
+ "LogLevel": "Info"
+ }
+}
diff --git a/frontends/etc/rc.d/dserver.tpl b/frontends/etc/rc.d/dserver.tpl
new file mode 100755
index 0000000..aec80f5
--- /dev/null
+++ b/frontends/etc/rc.d/dserver.tpl
@@ -0,0 +1,16 @@
+#!/bin/ksh
+
+daemon="/usr/local/bin/dserver"
+daemon_flags="-cfg /etc/dserver/dtail.json"
+daemon_user="_dserver"
+
+. /etc/rc.d/rc.subr
+
+rc_reload=NO
+
+rc_pre() {
+ install -d -o _dserver /var/log/dserver
+ install -d -o _dserver /var/run/dserver/cache
+}
+
+rc_cmd $1 &
diff --git a/frontends/scripts/dserver-update-key-cache.sh.tpl b/frontends/scripts/dserver-update-key-cache.sh.tpl
new file mode 100644
index 0000000..86b5ecf
--- /dev/null
+++ b/frontends/scripts/dserver-update-key-cache.sh.tpl
@@ -0,0 +1,34 @@
+#!/bin/ksh
+
+CACHEDIR=/var/run/dserver/cache
+DSERVER_USER=_dserver
+DSERVER_GROUP=_dserver
+
+echo 'Updating SSH key cache'
+
+ls /home/ | while read remoteuser; do
+ keysfile=/home/$remoteuser/.ssh/authorized_keys
+
+ if [ -f $keysfile ]; then
+ cachefile=$CACHEDIR/$remoteuser.authorized_keys
+ echo "Caching $keysfile -> $cachefile"
+
+ cp $keysfile $cachefile
+ chown $DSERVER_USER:$DSERVER_GROUP $cachefile
+ chmod 600 $cachefile
+ fi
+done
+
+# Cleanup obsolete public SSH keys
+find $CACHEDIR -name \*.authorized_keys -type f |
+while read cachefile; do
+ remoteuser=$(basename $cachefile | cut -d. -f1)
+ keysfile=/home/$remoteuser/.ssh/authorized_keys
+
+ if [ ! -f $keysfile ]; then
+ echo 'Deleting obsolete cache file $cachefile'
+ rm $cachefile
+ fi
+done
+
+echo 'All set...'