Skip to content

使用Syslog协议上传日志

您可以使用Syslog协议往某个SLS示例发送日志。 本文介绍了两种方式: syslog-ng, ncat。

注: Syslog协议必须为标准的RFC5424协议

使用syslog-ng发送日志

syslog-ng是一个功能强大的日志管理工具,用于收集、处理和路由系统和应用程序生成的日志消息。 它提供灵活的配置选项和多样的目标输出,可帮助组织集中管理和分析日志数据,实现日志的集中存储、过滤、转发和分发。

  1. 安装syslog-ng
sh
apt install syslog-ng # ubuntu
apt install syslog-ng # ubuntu

或者,可以使用syslog-ngDocker镜像

  1. 填写syslog-ng.conf

将变量 sls-instance-idaccess-key-idaccess-key-secret、公网访问域名(cn-jiaxing.log.sihe.com) 更换 ,可参考如何获取accessKey与sls公网访问域名

你也根据自己需求修改Source配置来收集其他的日志

txt
# ./syslog-ng.conf
# 参考文档: https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.22/administration-guide/12

template LogServiceFormat {
    template("<${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [logservice@1 sls-instance-id=\"sls-s9kxxxxxxxxx\" access-key-id=\"Duxxxxxxxxxxxxxxxxxxxxxx\" access-key-secret=\"onxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"] $MSG\n"); template_escape(no);
};

destination d_sihecloud_tls{
    tcp("cn-jiaxing.log.sihe.com" port(11000)
    tls(peer-verify(required-untrusted))
    template(LogServiceFormat));
};

log {
    source(s_src); # default use s_src 
    destination(d_sihecloud_tls);
};
# ./syslog-ng.conf
# 参考文档: https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.22/administration-guide/12

template LogServiceFormat {
    template("<${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [logservice@1 sls-instance-id=\"sls-s9kxxxxxxxxx\" access-key-id=\"Duxxxxxxxxxxxxxxxxxxxxxx\" access-key-secret=\"onxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"] $MSG\n"); template_escape(no);
};

destination d_sihecloud_tls{
    tcp("cn-jiaxing.log.sihe.com" port(11000)
    tls(peer-verify(required-untrusted))
    template(LogServiceFormat));
};

log {
    source(s_src); # default use s_src 
    destination(d_sihecloud_tls);
};
  1. logger测试
sh
logger this is a test message
logger this is a test message

使用netcat上传日志

netcat(也称为nc)是一个多功能的网络工具,可以在不同系统之间建立 TCP 或 UDP 连接、发送和接收数据, 用于调试和测试网络服务、执行端口扫描、进行数据传输等。

  1. 安装netcat
sh
apt install ncat # ubuntu 
yum install nmap-ncat # centos
apt install ncat # ubuntu 
yum install nmap-ncat # centos
  1. 发送日志

将变量 sls-instance-idaccess-key-idaccess-key-secret、公网访问域名(cn-jiaxing.log.sihe.com) 更换 ,可参考如何获取accessKey与sls公网访问域名

sh
$ ncat --ssl cn-jiaxing.log.sihe.com 11000
<34>1 2023-11-29T06:00:15.003Z mymachine.example.com su - ID47 [logservice@1 sls-instance-id="sls-xxxxxxxxxxxx" access-key-id="Dxxxxxxxxxxxxxxxxxxxxxxx" access-key-secret="oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] this is a test message
$ ncat --ssl cn-jiaxing.log.sihe.com 11000
<34>1 2023-11-29T06:00:15.003Z mymachine.example.com su - ID47 [logservice@1 sls-instance-id="sls-xxxxxxxxxxxx" access-key-id="Dxxxxxxxxxxxxxxxxxxxxxxx" access-key-secret="oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] this is a test message