# 远程日志收集

在实际环境中，有一些防火墙、交换机、路由器等设备会生成日志，wazuh管理端如果要收集这些日志的话，按照常理就需要在这些设备按照代理端进行日志收集，但是wazuh可以支持syslog远程收集日志，只需启动syslog端口和在wazuh管理端配置文件配置远程日志接收的信息。

在wazuh管理端的配置文件中找到remote标签，这个标签是设置远程收集日志选项，默认配置如下：

```
  <remote>
    <connection>secure</connection>
    <port>1514</port>
    <protocol>tcp</protocol>
    <queue_size>131072</queue_size>
  </remote>
```

具体子标签如下：

\*\*connection标签：\*\*指定收集什么类型的日志，选项有两个：syslog，secure，**可同时使用**。

\*\*port标签：\*\*指定监听的端口是多少，如果不填的话，syslog类型默认是514端口，secure类型默认是1515端口。

\*\*protocol标签：\*\*指定监听协议是什么，选项有两个：tcp，udp。只能指定一个协议。

\*\*allowed-ips标签：\*\*指允许什么网段的IP发送日志过来（必填项）。

\*\*denied-ips标签：\*\*指禁止什么网段的IP发送日志过来。

\*\*local\_ip标签：\*\*指监听的IP地址，在例子中并没有出现，因为默认的监听所有网卡地址。

\*\*ipv6标签：\*\*监听的IPV6的地址，不能与local\_ip标签一起用，目前还是IPV4地址，所以这个选项可以忽略。

\*\*queue\_size标签：\*\*接收远程日志容量的队列，默认值是131072，范围是1-262144，其中这个选项是与secure日志类型一起使用的。

***配置syslog日志收集***

```
  <remote>
    <connection>syslog</connection>
    <port>513</port>
    <protocol>tcp</protocol>
    <allowed-ips>192.168.1.0/24</allowed-ips>
  </remote>
```

secure类型和syslog类型可以同时使用，所以可以使用多个remote标签定义日志收集端口。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-Md7SltWdIswGC7GX9w8%2F-Md7UdnVMVUF-d8ZPb0E%2Fimage.png?alt=media\&token=66250f43-efdc-4d6c-9e97-8b4394133af1)

查看日志收集监听端口是否开启

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-Md7SltWdIswGC7GX9w8%2F-Md7UvxFJwRSP88xabKC%2Fimage.png?alt=media\&token=cc7099a7-b17b-41c3-af70-98967ed3cb27)

在wazuh管理端服务器安装rsyslog，用来转发日志到wazuh的日志远程收集端口。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-MdAMK0gem15TC_ONLPv%2F-MdATCN6YiP9KGwjTMm4%2Fimage.png?alt=media\&token=a1fe41c0-bcb4-4a1a-a3d1-df21fe5dbdd2)

先说明一下，在rsyslog配置文件中配置不同协议的远程转发都有区别，使用UDP协议转发日志的话，只需要一个@符号，而使用TCP协议转发日志的话，则需要两个@符号。

```
*.* @192.168.1.200:513  #一个@代表udp转发
*.* @@192.168.1.200:513  #两个@@代表tcp转发
```

修改rsyslog的配置文件（/etc/rsyslog.conf），只需在下面添加一行转发记录就可以。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-Md7J9mQVT6hgNphGR3v%2F-Md7Jz0j_s0hlxm1bb7K%2Fimage.png?alt=media\&token=87c2ae09-1b03-4cab-bbd1-aa69122a8535)

创建转发规则，主要关注InputFileName变量，将/opt/test.log的日志转发到192.168.1.200的513TCP端口。

```
[root@wazuh-manager ~]# cat /etc/rsyslog.d/test.conf
$ModLoad imfile
$InputFileName /tmp/test.log
$InputFileTag testtag
$InputFileStateFile tagfile
$InputFileSeverity info
$InputRunFileMonitor
```

重启rsyslog服务

```
[root@wazuh-manager opt]# systemctl restart rsyslog 
```

修改wazuh配置文件**logall**标签为\*\*yes，\*\*记录所有的日志（包括无法解码的日志）。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-MdCjeObjKcWOHswHIrj%2F-MdCp9SoOfbq_KUMCHs1%2Fimage.png?alt=media\&token=58877620-0673-4985-8c02-3f10dc1364b8)

{% hint style="info" %}
在wazuh管理端的配置文件的global标签下面有个子标签logall，这个logall的作用就是管理端收集到代理端的日志，会进行解析，如果解析失败，wazuh管理端则不会记录这段日志，如果logall设置为yes，则会记录解析失败的全日志，这样的后果就是日志文件非常大，测试发现，几分钟下来日志文件容量已经到了10M，一旦上生产环境，磁盘容量就会陷入负载。

所以wazuh管理端的配置文件默认不记录全部日志。其日志记录位置在\*\*/var/ossec/logs/archives/archives.log\*\*，logall\_all标签则是选择记录json类型格式，json日志记录位置在/var/ossec/logs/archives/archives.json。
{% endhint %}

往/tmp/test.log丢secure的日志进行测试。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-MdAcC6P6ttE2OGBQETQ%2F-MdAdXmMedqUvL_Z_UtZ%2Fimage.png?alt=media\&token=de499312-d80b-4c97-a757-9e1141fbdeff)

在/var/ossec/logs/archives/archives.log里面发现rsyslog将日志丢到wazuh管理端里面。

![](https://2658646806-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_7EhqBo_t9a-xYYzeH%2F-MdC10xNkfuESWdzm0Ec%2F-MdC1Eb-2k2qF_0GC1x_%2Fimage.png?alt=media\&token=2105c621-a57b-4258-ad7d-0f2d6050e7c5)
