文档首页/ 云日志服务 LTS/ 最佳实践/ 日志接入/ 采集Syslog汇聚服务器日志到LTS
更新时间:2024-11-19 GMT+08:00

采集Syslog汇聚服务器日志到LTS

背景信息

Syslog是网络上各种设备将日志收集到日志服务器的一种数据协议,它几乎被所有的网络设备支持,并且能够记录多种事件类型的日志消息,支持syslog的设备常见的有路由器、交换机、打印机等,甚至unix-like的服务器也可以支持产生syslog消息,用以记录用户的登录、防火墙事件、apache或者nginx access日志等。

Syslog主要是基于RFC5424和RFC3164定义相关格式规范,RFC3164协议是2001年发布的,RFC5424协议是2009年发布的升级版本。因为新版兼容旧版,且新版本解决了很多问题,因此推荐使用RFC5424协议。更多信息请参见RFC5424RFC3164

本文介绍通过Syslog协议将日志上传到日志服务的操作步骤。您需要购买ECS作为Syslog汇聚服务器,Linux服务器默认自带Rsyslog,目前华为云主机默认未配置接收远程Syslog写入,需要手动开启。

方案概述

图1 方案流程图
  • 你可以购买Linux云主机,配置为Syslog汇聚服务器,用于接收其他设备发送的日志数据;Syslog服务器默认接收日志大小为1024字节,超过会截断。
  • 单台Syslog服务器处理日志能力为10MB/s,如果您的日志量较大,或者希望可靠性更高,可以购买多台ECS配置为Syslog服务器,并配置ELB负载均衡分发流量。
  • 您需要在Syslog服务器上安装ICAgent,并配置日志采集规则,就可以将日志采集到LTS。

资源规划

购买两台ECS机器,一台ECS作为Syslog汇聚服务器,另一台用为业务ECS模拟客户系统或者设备发送日志。

购买弹性云服务器

  1. 登录管理控制台,选择“计算 > 弹性云服务器 ECS”。
  2. 购买一台弹性云服务器作为Syslog汇聚服务器。

    推荐CentOS 6.5 64bit及其以上版本的镜像, 推荐规格为2vCPUs | 4GB。

  3. 使用root用户登录Syslog服务器,安装ICAgent。

    1. syslog服务器安全组出方向打开TCP协议的30200、30201、8149、8923、8102等端口,入方向需打开UDP的514端口作为syslog服务器默认监听端口。

    2. 在云日志服务 LTS管理控制台,左侧导航栏选择主机管理,单击“安装ICAgent”, 安装系统选择“Linux”,主机类型选择“区域内主机”,“安装方式”选择“获取AK/SK凭证”,单击“复制命令”复制ICAgent安装命令,并手动替换AK/SK。

    3. 使用root用户登录syslog服务器,执行ICAgent安装命令进行安装,当显示“ICAgent install success”时,表示安装成功。安装成功后,在云日志服务左侧导航栏中选择“主机管理 > 主机”,查看该服务器中ICAgent的状态。

  4. 打开RSyslog服务器监听接收功能。

    目前华为云主机rsyslog服务器默认未配置接收远程syslog写入,需要手动开启。
    1. 已登录云主机。
    2. 修改rsyslog配置文件。
      vi /etc/rsyslog.conf
    3. 配置文件中添加以下内容,开启tcp udp远程接收。
      Provides UDP syslog reception 
      $ModLoad imudp 
      $UDPServerRun 514
      
      Provides TCP syslog reception 
      $ModLoad imtcp 
      $InputTCPServerRun 514
    4. 保存后重启rsyslog服务器,单击云服务器“更多 > 重启”。

    5. 执行以下任意一条命令显示正常代表服务运行正常。

      执行“service rsyslog status”命令检查rsyslog运行状态为running。

      图2 检查rsyslog运行状态

      执行“systemctl status rsyslog”命令检查rsyslog运行状态为running。

      图3 rsyslog运行状态

      执行“netstat -anp | grep 514”命令查看是否打开监听。

      图4 查看是否打开监听

  5. 配置采集syslog日志。

    1. 创建主机组 ,在云日志服务 LTS控制台左侧导航栏中选择“主机管理 > 新建主机组”,设计“主机组名称”,勾选主机即可。

    2. 左侧导航栏中选择“日志接入 > 云主机ECS-文本日志”。
    3. 选择日志流。
    4. 选择主机组。
    5. 采集配置,配置采集路径为/var/log/messages。

  6. 登录业务ecs验证。

    当您的业务系统或者设备输出日志后,即可在LTS界面查看。登录业务ecs使用logger -n x.x.x.x -P 514 testremotelog命令发送syslog至汇聚服务器,x.x.x.x为syslog服务器ip(公网ip/私有ip)地址,testremotelog为发送日志内容,可以自定义。

    执行成功后,配置的日志组日志流里可以查看到该条日志。

    或登录syslog汇聚服务器,查看/var/log/messages中是否存在testremotelog日志。

    tail -f /var/log/messages
    图5 查看是否存在testremotelog日志

  7. 通过多台syslog服务器和elb实现负载均衡。

    目前采集单台syslog服务器处理日志能力为10MB/s,如果客户日志业务量较大,可以使用多台syslog服务器和elb实现扩容和负载均衡。

    1. 创建syslog汇聚服务器和安装ICAgent。
    2. 请参考实现单个Web应用的负载均衡创建负载均衡器。
    3. 分别为TCP/UDP的端口和514端口添加监听器,请参考添加TCP监听器
    4. 为后端添加服务器组,请参考后端服务器组