feat: send full daily report body and stats in SAC details
This commit is contained in:
+39
-1
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user