下午好。我在 UBuntu 16.04 中使用 Freeradius 2 服务器时遇到问题,它是从 vmware 5.5 Hypervisor 中的模板安装的,由于缺少 HHD 空间,日志开始使系统崩溃,freeradius 服务器承受的负载非常大。每秒有 (5000) 个自动机通过 GPRS 连接。
我使用 Ubuntu 16.04 和 syslog-ng 安装了一个日志收集服务器,还在客户端安装了 syslog-ng,并在日志部分取消了注释
/etc/freeradius/radiusd.conf
log{
file syslog
syslog_facility daemon
}
问题如下:
syslog-ng 客户端通过 UDP 端口 514 到 syslog-ng 服务器的连接已建立,但 freeradius 和客户端 syslog-ng 之间的连接为 UNIX 流(不清楚)。问题是,我如何检查 freeradius 是否有效地将日志发送到 syslog-ng 客户端。由于 syslog-ng 源具有不同的源驱动程序(如文件、流等),因此应使用什么机制。
Syslog服务器和客户端的配置如下:
服务器@version: 3.5
@include "scl.conf"
@include "`scl-root`/system/tty10.conf"
options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
##################################################
options {
create_dirs(yes);
owner(radiusmaster);
group(radiusmaster);
perm(0640);
dir_owner(radiusmaster);
dir_group(radiusmaster);
dir_perm(0750);
};
##################################################
source s_udp {
udp(ip("172.19.144.27") port(514));
};
##################################################
# Filters #
##################################################
#Freeradius1
filter f_radius-1 {
host("172.19.144.31");
};
destination d_radius-1 {
file("/media/disco_logs/freeradius/radius-1/$YEAR/$MONTH/$YEAR-$MONTH-$DAY.radius-1.log");
};
log {
source(s_udp);
filter
@include "/etc/sys#log-ng/conf.d/*.conf"(f_radius-1);
destination(d_radius-1);
};
@include "/etc/sys#log-ng/conf.d/*.conf"
客户
@version: 3.5
@include "scl.conf"
@include "`scl-root`/system/tty10.conf"
options { chain_hostnames(off); flush_lines(0); use_dns(no);
use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
source s_log_radius_1 {
file("/var/log/freeradius/radius.log" follow-freq(1)); };
destination d_syslog_udp {
syslog("172.19.144.27" transport("udp") port(514));
};
log {
source(s_log_radius_1);
destination(d_syslog_udp);
};
@include "/etc/syslog-ng/conf.d/*.conf"
我将非常感谢任何帮助,并提前致谢。
答案1
- 首先在客户端上检查 freeradius 日志是否出现在 /var/log/freeradius/radius.log 文件中。(虽然似乎可以将 freeradius 配置为直接登录到 syslog 而不是文件,但请参阅https://wiki.freeradius.org/config/Logging和https://wiki.freeradius.org/guide/Syslog-HOWTO)。
此外,您的 syslog-ng 驱动程序不匹配:
- 在客户端上,你有一个 syslog() 目标(RFC5424 消息格式),而
- 在服务器上使用 udp() (RFC3164 消息格式)
这些不兼容(见在此处输入链接描述)。更改您的配置以使用匹配的驱动程序(我建议使用 syslog(),如果您的环境允许,请使用 tcp 传输)。