如何向 syslog-ng 服务器发送文本

如何向 syslog-ng 服务器发送文本

我尝试找到将文本从 Linux 发送到 syslog-ng 服务器的最简单方法。我尝试了以下几种方法:

curl -d "my data heure" -X POST server:port

cat bootlog | netcat server port port

这可行,但它会挂起。

我想设置一个脚本来自动将数据发送到 syslog-ng。我无法在客户端安装 syslog-ng,这就是我试图寻找解决方法的原因。

我原本考虑在请求末尾使用“&”(curl -d "my data heure" -X POST server:port &),但我不确定这是否是个好主意。

有人可以帮忙解决这个问题吗?

此致。

德克斯

答案1

在 syslog-ng 服务器上进行本地测试

第一个终端窗口将持续显示收到的系统日志消息:

tail -f /var/log/syslog

或者当收到许多系统日志陷阱时:

tail -f /var/log/syslog | grep "This is only test message"

第二航站楼向服务器本身发送测试消息:

logger -p 0 "This is only test message -----"

您应该在第一个终端中看到 syslog 收到的消息:

May 11 21:23:13 YourServerName YourUserName: This is only test message -----

从远程节点发送消息

让你的系统日志服务器的地址例如192.168.20.5

logger -p 0 -n 192.168.20.5 "This is only test message ----- remote"

如果一切设置正确,您将在服务器上看到收到的消息。

故障排除

如果消息不是通过网络到达的,请检查服务器上监听的UDP端口514以及防火墙上的允许规则:

sudo netstat -lnup | grep 514
sudo iptables-save

sudo iptables-save | grep 514

还必须检查文件/etc/syslog-ng/syslog-ng.conf的源、目标和路径部分是否设置为通过网络接收陷阱。

相关内容