feat: send full daily report body and stats in SAC details

This commit is contained in:
2026-05-27 14:15:13 +10:00
parent 8627fdbcec
commit 29c91ee0db
+39 -1
View File
@@ -1754,7 +1754,45 @@ send_daily_report() {
message="${message} Нет активных пользователей"$'\n'
fi
notify_or_sac "report.daily.ssh" "info" "Ежедневный отчёт SSH" "Отчёт за сутки" "$message"
local sac_summary sac_details_json
sac_summary="SSH 24ч: успех ${successful_logins:-0}, неудач ${failed_logins:-0}, sudo ${sudo_commands:-0}"
sac_details_json="$(
SAC_REPORT_BODY="$message" \
SAC_OK="${successful_logins:-0}" \
SAC_FAIL="${failed_logins:-0}" \
SAC_SUDO="${sudo_commands:-0}" \
SAC_BANS="${active_bans:-0}" \
SAC_ACTIVE="${active_count:-0}" \
python3 <<'PY'
import html
import json
import os
body = os.environ.get("SAC_REPORT_BODY", "")
stats = {
"successful_ssh": int(os.environ.get("SAC_OK", "0") or 0),
"failed_ssh": int(os.environ.get("SAC_FAIL", "0") or 0),
"sudo_commands": int(os.environ.get("SAC_SUDO", "0") or 0),
"active_bans": int(os.environ.get("SAC_BANS", "0") or 0),
"active_sessions": int(os.environ.get("SAC_ACTIVE", "0") or 0),
}
escaped = html.escape(body)
report_html = '<div class="agent-report">' + escaped.replace("\n", "<br>\n") + "</div>"
print(
json.dumps(
{
"stats": stats,
"report_body": body,
"report_format": "plain",
"report_html": report_html,
},
ensure_ascii=False,
)
)
PY
)" || sac_details_json=""
notify_or_sac "report.daily.ssh" "info" "Ежедневный отчёт SSH" "$sac_summary" "$message" "$sac_details_json"
write_log "Ежедневный отчет отправлен"
echo "$(report_date '+%F')" >"$LAST_REPORT_FILE"