想请问一下rsyslog这个,为什么我用公司的服务器(linux)给本地Windows发送日志的时候可以发送(udp通信),但是我在服务器上创建一个udp服务器却接收不到内容呢。。我先让rsyslog启动后,在运行服务器会报错bind: Address already in use,端口被占用。。有没有能解释一下
*.* @192.168.1.25:514
如果需要更为可靠的协议,如TCP,而rsyslog服务器也被配置为监听TCP连接,可以在远程主机的IP地址前添加一个额外的@字符,像下面这样:
*.* @@192.168.1.25:514
注意:也可以将rsyslog服务器的IP地址替换成它的主机名(FQDN)。
如果你只想要转发服务器上的指定设备的日志消息,比如说内核设备,那么你可以在rsyslog配置文件中使用以下声明:
kern.* @192.168.1.25:514
CentOS 7:
systemctl restart rsyslog.service
CentOS 6:
service rsyslog restart
若需要发送非syslog 的日志,列如:假定在机器上安装了一个名为“foobar”的应用程序,它会在/var/log下生成foobar.log日志文件。现在,需要将它的日志定向到rsyslog服务器,这可以通过像下面这样在rsyslog配置文件中加载imfile模块来实现。
1)首先,加载imfile模块,这只需做一次。
module(load="imfile" PollingInterval="5")
2)然后,指定日志文件的路径以便imfile模块可以检测到:
input(type="imfile"
File="/var/log/foobar.log"
Tag="foobar"
Severity="error"
Facility="local7")
3)最后,定向local7设备到远程rsyslog服务器:
local7.* @192.168.1.25:514
4)重启syslog进程
这意味着这个端口已经被占用了,需要找到占用此端口的进程并关闭它,然后重新运行UDP服务器。