mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-02-10 08:46:58 +08:00
occtl: improved presentation of printed statistics
Also added different values to keep authentication failures and closed sessions, in total and per accounting period. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
This commit is contained in:
committed by
Nikos Mavrogiannopoulos
parent
99b2fdcd06
commit
ccb80b5d4f
@@ -27,6 +27,10 @@ message status_rep
|
|||||||
required uint32 avg_session_mins = 20;
|
required uint32 avg_session_mins = 20;
|
||||||
required uint32 max_auth_time = 21;
|
required uint32 max_auth_time = 21;
|
||||||
required uint32 max_session_mins = 22;
|
required uint32 max_session_mins = 22;
|
||||||
|
|
||||||
|
required uint64 auth_failures = 23;
|
||||||
|
required uint64 total_sessions_closed = 24;
|
||||||
|
required uint64 total_auth_failures = 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
message bool_msg
|
message bool_msg
|
||||||
|
|||||||
@@ -200,6 +200,10 @@ static void method_status(method_ctx *ctx, int cfd, uint8_t * msg,
|
|||||||
rep.max_auth_time = ctx->s->stats.max_auth_time;
|
rep.max_auth_time = ctx->s->stats.max_auth_time;
|
||||||
rep.max_session_mins = ctx->s->stats.max_session_mins;
|
rep.max_session_mins = ctx->s->stats.max_session_mins;
|
||||||
|
|
||||||
|
rep.auth_failures = ctx->s->stats.auth_failures;
|
||||||
|
rep.total_auth_failures = ctx->s->stats.total_auth_failures;
|
||||||
|
rep.total_sessions_closed = ctx->s->stats.total_sessions_closed;
|
||||||
|
|
||||||
ret = send_msg(ctx->pool, cfd, CTL_CMD_STATUS_REP, &rep,
|
ret = send_msg(ctx->pool, cfd, CTL_CMD_STATUS_REP, &rep,
|
||||||
(pack_size_func) status_rep__get_packed_size,
|
(pack_size_func) status_rep__get_packed_size,
|
||||||
(pack_func) status_rep__pack);
|
(pack_func) status_rep__pack);
|
||||||
|
|||||||
@@ -287,13 +287,41 @@ int handle_stats_cmd(struct unix_ctx *ctx, const char *arg, cmd_params_st *param
|
|||||||
print_separator(stdout, params);
|
print_separator(stdout, params);
|
||||||
|
|
||||||
if (NO_JSON(params))
|
if (NO_JSON(params))
|
||||||
printf("Sessions:\n");
|
printf("General info:\n");
|
||||||
|
|
||||||
|
t = rep->start_time;
|
||||||
|
tm = localtime(&t);
|
||||||
|
print_time_ival7(buf, time(0), t);
|
||||||
|
strftime(str_since, sizeof(str_since), DATE_TIME_FMT, tm);
|
||||||
|
|
||||||
|
print_single_value_ex(stdout, params, "Up since", str_since, buf, 1);
|
||||||
print_single_value_int(stdout, params, "Active sessions", rep->active_clients, 1);
|
print_single_value_int(stdout, params, "Active sessions", rep->active_clients, 1);
|
||||||
print_single_value_int(stdout, params, "Handled (closed) sessions", rep->sessions_closed, 1);
|
print_single_value_int(stdout, params, "Total sessions", rep->total_sessions_closed, 1);
|
||||||
|
print_single_value_int(stdout, params, "Total authentication failures", rep->total_auth_failures, 1);
|
||||||
|
print_single_value_int(stdout, params, "IPs in ban list", rep->banned_ips, 1);
|
||||||
|
if (params->debug) {
|
||||||
|
print_single_value_int(stdout, params, "Sec-mod client entries", rep->secmod_client_entries, 1);
|
||||||
|
print_single_value_int(stdout, params, "TLS DB entries", rep->stored_tls_sessions, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
print_separator(stdout, params);
|
||||||
|
if (NO_JSON(params))
|
||||||
|
printf("Current stats period:\n");
|
||||||
|
|
||||||
|
t = rep->last_reset;
|
||||||
|
if (t > 0 && t != rep->start_time) {
|
||||||
|
tm = localtime(&t);
|
||||||
|
print_time_ival7(buf, time(0), t);
|
||||||
|
strftime(str_since, sizeof(str_since), DATE_TIME_FMT, tm);
|
||||||
|
|
||||||
|
print_single_value_ex(stdout, params, "Last stats reset", str_since, buf, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
print_single_value_int(stdout, params, "Sessions handled", rep->sessions_closed, 1);
|
||||||
print_single_value_int(stdout, params, "Timed out sessions", rep->session_timeouts, 1);
|
print_single_value_int(stdout, params, "Timed out sessions", rep->session_timeouts, 1);
|
||||||
print_single_value_int(stdout, params, "Timed out (idle) sessions", rep->session_idle_timeouts, 1);
|
print_single_value_int(stdout, params, "Timed out (idle) sessions", rep->session_idle_timeouts, 1);
|
||||||
print_single_value_int(stdout, params, "Closed due to error sessions", rep->session_errors, 1);
|
print_single_value_int(stdout, params, "Closed due to error sessions", rep->session_errors, 1);
|
||||||
|
print_single_value_int(stdout, params, "Authentication failures", rep->auth_failures, 1);
|
||||||
|
|
||||||
print_time_ival7(buf, rep->avg_auth_time, 0);
|
print_time_ival7(buf, rep->avg_auth_time, 0);
|
||||||
print_single_value(stdout, params, "Average auth time", buf, 1);
|
print_single_value(stdout, params, "Average auth time", buf, 1);
|
||||||
@@ -307,35 +335,15 @@ int handle_stats_cmd(struct unix_ctx *ctx, const char *arg, cmd_params_st *param
|
|||||||
print_time_ival7(buf, rep->max_session_mins*60, 0);
|
print_time_ival7(buf, rep->max_session_mins*60, 0);
|
||||||
print_single_value(stdout, params, "Max session time", buf, 1);
|
print_single_value(stdout, params, "Max session time", buf, 1);
|
||||||
|
|
||||||
print_separator(stdout, params);
|
|
||||||
if (NO_JSON(params))
|
|
||||||
printf("General:\n");
|
|
||||||
|
|
||||||
t = rep->start_time;
|
|
||||||
tm = localtime(&t);
|
|
||||||
print_time_ival7(buf, time(0), t);
|
|
||||||
strftime(str_since, sizeof(str_since), DATE_TIME_FMT, tm);
|
|
||||||
|
|
||||||
print_single_value_ex(stdout, params, "Up since", str_since, buf, 1);
|
|
||||||
t = rep->last_reset;
|
|
||||||
if (t > 0 && t != rep->start_time) {
|
|
||||||
tm = localtime(&t);
|
|
||||||
print_time_ival7(buf, time(0), t);
|
|
||||||
strftime(str_since, sizeof(str_since), DATE_TIME_FMT, tm);
|
|
||||||
|
|
||||||
print_single_value_ex(stdout, params, "Last stats reset", str_since, buf, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
print_single_value_int(stdout, params, "IPs in ban list", rep->banned_ips, 1);
|
|
||||||
if (params->debug) {
|
|
||||||
print_single_value_int(stdout, params, "Sec-mod client entries", rep->secmod_client_entries, 1);
|
|
||||||
print_single_value_int(stdout, params, "TLS DB entries", rep->stored_tls_sessions, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
bytes2human(rep->kbytes_in*1000, buf, sizeof(buf), "");
|
bytes2human(rep->kbytes_in*1000, buf, sizeof(buf), "");
|
||||||
print_single_value(stdout, params, "RX", buf, 1);
|
print_single_value(stdout, params, "RX", buf, 1);
|
||||||
bytes2human(rep->kbytes_out*1000, buf, sizeof(buf), "");
|
bytes2human(rep->kbytes_out*1000, buf, sizeof(buf), "");
|
||||||
print_single_value(stdout, params, "TX", buf, 1);
|
print_single_value(stdout, params, "TX", buf, 1);
|
||||||
|
|
||||||
|
if (rep->min_mtu > 0)
|
||||||
|
print_single_value_int(stdout, params, "Min MTU", rep->min_mtu, 1);
|
||||||
|
if (rep->max_mtu > 0)
|
||||||
|
print_single_value_int(stdout, params, "Max MTU", rep->max_mtu, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_end_block(stdout, params, 0);
|
print_end_block(stdout, params, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user