温馨提示×

Linux syslog如何实现远程传输

小樊
43
2025-02-28 16:26:49
栏目: 智能运维
Linux服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Linux系统中,syslog协议用于记录系统日志。要将syslog日志远程传输到另一台服务器,可以使用以下几种方法:

  1. 使用rsyslog和UDP/TCP:

rsyslog是syslog的增强版本,支持TCP和UDP协议。要实现远程传输,需要在发送端(产生日志的服务器)和接收端(存储日志的服务器)上进行配置。

发送端(产生日志的服务器):

编辑rsyslog配置文件,通常位于/etc/rsyslog.conf/etc/rsyslog.d/50-default.conf。在文件末尾添加以下内容:

*.* @remote_server_ip:514

remote_server_ip替换为接收端服务器的IP地址。保存文件并重启rsyslog服务:

sudo systemctl restart rsyslog

接收端(存储日志的服务器):

编辑rsyslog配置文件,通常位于/etc/rsyslog.conf/etc/rsyslog.d/50-default.conf。在文件末尾添加以下内容:

module(load="imudp")
input(type="imudp" port="514")

或者,如果要使用TCP协议:

module(load="imtcp")
input(type="imtcp" port="514")

保存文件并重启rsyslog服务:

sudo systemctl restart rsyslog
  1. 使用syslog-ng:

syslog-ng是另一个流行的syslog实现。要实现远程传输,需要在发送端和接收端上进行配置。

发送端(产生日志的服务器):

编辑syslog-ng配置文件,通常位于/etc/syslog-ng/syslog-ng.conf。在文件中添加以下内容:

destination d_remote {
    udp("remote_server_ip" transport("UDP") port(514));
};

log {
    source(s_src);
    destination(d_remote);
};

remote_server_ip替换为接收端服务器的IP地址。保存文件并重启syslog-ng服务:

sudo systemctl restart syslog-ng

接收端(存储日志的服务器):

编辑syslog-ng配置文件,通常位于/etc/syslog-ng/syslog-ng.conf。在文件中添加以下内容:

source s_network {
    udp(ip(0.0.0.0) port(514));
};

destination d_local {
    file("/var/log/remote.log");
};

log {
    source(s_network);
    destination(d_local);
};

保存文件并重启syslog-ng服务:

sudo systemctl restart syslog-ng

这样,日志就会从发送端服务器传输到接收端服务器,并存储在指定的日志文件中。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Linux syslog如何实现远程日志传输

0