使用Rsyslog的VMware vSphere和vCenter Central Logs管理
在CentOS 7系统上安装了Rsyslog服务器,并将其配置为vCenter Server Appliance(vCSA)日志以及vSphere服务器生成的所有日志的中央日志服务器。在本教程中,我们将介绍Rsyslog服务器的安装/配置和vCSA/vSphere的配置,以将日志发送到我们配置的远程Rsysog服务器。
使用Rsyslog设置vSphere和vCenter Central Logs Management
在开始之前,让我在这里陈述假设:
我们已经安装了CentOS 7服务器;基于Debian的系统应该可以安装Rsyslog用户帐户具有sudo特权
如果不满足上述任何条件,请确保已完成所有设置。完成后,请使用以下步骤安装和配置Rsyslog服务器,以接收来自VMware vSphere和vCenter基础结构的日志。
更新系统
让我们将系统软件包更新为最新版本:
sudo yum update
对于Ubuntu,请使用apt执行相同操作:
sudo apt-get update && sudo apt-get upgrade
如果可能的话,重新启动系统以进行需要更新才能生效的更新,例如内核更新:
sudo reboot
配置Rsyslog服务器
CentOS和Ubuntu/Debian系统都已安装并正在运行rsyslog。我们将需要为VMware设置创建其他配置文件。
有关Ubuntu/Debian上Rsyslog的基本配置,请参阅如何在Ubuntu 18.04 LTS上配置Rsyslog集中式日志服务器。
默认配置文件是/etc/rsyslog.conf。可以在目录/etc/rsyslog.d/下放置任何其他配置。
为VMware vSphere和vCSA设备日志创建目录:
$sudo mkdir -p /data/logs/{vcenter,esxi}
然后将以下配置文件添加到/etc/rsyslog.d/vmware.conf。这是vSphere Infrastructure日志记录的配置。它具有指示位置和如何存储日志,匹配模式和日志时间戳定义的模板。
# Provides TCP syslog reception $ModLoad imtcp #### Create Templates for Log parsing #### Log store is created folder previously template(name="TIMESTAMP" type="string" string="%timegenerated:8:25%||%HOSTNAME%||%syslogtag%||%msg%\n") template(name="ESXI" type="string" string="/data/logs/esxi/%fromhost-ip%/%$YEAR%-%$MONTH%/%$DAY%.%$MONTH%-messages.log") template(name="VCENTER" type="string" string="/data/logs/vcenter/%fromhost-ip%/%$YEAR%-%$MONTH%/%$DAY%.%$MONTH%-messages.log") #### Define remote logging RuleSet $RuleSet remote ### The following rule is created to store logs coming from vCenter with different parameters ### If log is coming from vcenter with IP 192.168.10.50 it will be stored using VCENTER template. ### Replace 192.168.10.50 with your vCSA IP address if $fromhost == '192.168.10.50' then { *.* ?VCENTER } else { # Store all other logs using TIMESTAMP and ESXI templates. *.* ?ESXI;TIMESTAMP } ### Tell rsyslog to listen TCP port 514. ### All events coming to this port will be parsed using remote RuleSet. $InputTCPServerBindRuleset remote $InputTCPServerRun 514
其中我们定义了三个模板:
时间戳:用于格式化来自某个IP地址的所有日志。这是通过使用适当的时间格式来使日志更易读。
ESXI:这告诉rsyslog将每个主机的日志存储在单独的文件夹中,并将每天的日志存储在与该天相对应的文件夹中。来自vSphere主机的日志将存储在/data/logs/esxi
中
VCENTER:这告诉rsyslog使用时间戳和类似于ESXI模板的结构,将来自vCenter设备的日志存储在/data/logs/vcenter
中。
进行更改后,重新启动rsyslog服务:
sudo systemctl restart rsyslog
检查状态,它应该处于运行状态:
$systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2016-08-02 11:54:03 EAT; 1min ago Docs: man:rsyslogd(8) Main PID: 12489 (rsyslogd) Tasks: 8 Memory: 7.6M CGroup: /system.slice/rsyslog.service └─12489 /usr/sbin/rsyslogd -n Aug 02 11:54:03 rsyslog.example.com systemd[1]: Starting System Logging Service... Aug 02 11:54:03 rsyslog.example.com rsyslogd[12489]: [origin software="rsyslogd" swVersion="8.24.0" x-pid="12489" x-info="http://www.r...] start Aug 02 11:54:03 rsyslog.example.com systemd[1]: Started System Logging Service. Hint: Some lines were ellipsized, use -l to show in full.
打开Rsyslog防火墙端口
Rsyslog侦听端口514,我们将其配置为用户TCP,使用防火墙管理工具将其打开。
在具有ufw的Ubuntu/Debian上:
sudo ufw allow 514/tcp
在CentOS 7上:
sudo firewall-cmd --add-port=514/tcp --permanent sudo firewall-cmd --reload
配置vSphere主机和vCSA设备
唯一待处理的部分是配置vSphere和vCSA设备以将日志推送到我们的rsyslog服务器。
如何配置vSphere远程Syslog
打开vCenter并导航至:
Hosts and Clusters > Select Host > configure > Advanced System Settings > Edit
在"筛选器"框中,搜索syslog。我们应该看到Syslog.global.logHost。在此框中填写rsyslog服务器地址:
tcp://192.168.10.35:514
如果要同时配置tcp和udp,请使用逗号将它们分开:
tcp://192.168.10.35:514,udp://192.168.10.35:514
它应如下所示:
如何配置vCenter(vCSA)远程Syslog
对于vCSA,请打开vCSA管理界面来配置远程rsyslog:
http://vCSA-IP:5480
这将提供登录仪表板:
输入安装过程中提供的用户名和密码。初始默认用户名是root,默认密码是vmware。
过程:在vCenter Server Appliance管理界面中,选择Syslog。在转发配置部分中,如果尚未配置任何远程syslog主机,请单击配置。如果已经配置了主机,请单击"编辑"。在"创建转发配置"页面中,输入目标主机的服务器地址。支持的目标主机的最大数量为三。从"协议"下拉菜单中,选择要使用的协议。在"端口"文本框中,输入用于与目标主机进行通信的端口号。在"创建转发配置"窗格中,单击"添加"以输入另一个远程主机。 syslog服务器。单击Save。验证远程系统日志服务器正在接收消息。在转发配置部分中,单击发送测试消息。验证远程系统日志服务器上是否已接收测试消息。
如果返回rsyslog服务器,应该在先前配置的logs目录下创建两个文件夹:
$ls /data/logs/ esx vcenter $ls /data/logs/vcenter/192.168.10.50/2016-08/02.08-messages.log /data/logs/vcenter/192.168.10.50/2016-08/02.08-messages.log
对于ESXI主机:
$file /data/logs/esx/192.168.10.31/2016-08/02.08-messages.log /data/logs/esx/192.168.10.31/2016-08/02.08-messages.log: ASCII text, with very long lines
我们可以考虑为其配置日志轮换。
$cat /etc/logrotate.d/vmware /data/logs/esxi/*/*/*.log { rotate 90 daily notifempty compress } /data/logs/vcenter/*/*/*.log { rotate 90 daily notifempty compress }
现在,我们具有适用于vSphere Infrastructure的rsyslog服务器。