我尝试找到将文本从 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
的源、目标和路径部分是否设置为通过网络接收陷阱。