我在CentOS 7系统上安装Rsyslog服务器,并将其配置为vCenter Server Appliance(vCSA)日志和vSphere服务器生成的所有日志的重要日志服务器,本文将介绍Rsyslog服务器的安装/配置和vCSA/vSphere的配置,以便将日志发送到我们配置的远程Rsysog服务器,安装Rsyslog请参考在Debian 9上使用Rsyslog安装一台中央日志服务器。
一、更新系统 让我们将系统包更新到最新版本: sudo yum update 对于Ubuntu,使用apt执行相同的操作: sudo apt-get update && sudo apt-get upgrade 如果可能,请重新启动系统以进行需要更新才能生效的更新,例如内核更新: sudo reboot
二、配置Rsyslog服务器 CentOS和Ubuntu/Debian系统都安装并运行了rsyslog,我们需要为VMware设置创建一个额外的配置文件。 默认配置文件是/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 这里我们定义了三个模板: TIMESTAMP:用于格式化来自某个IP地址的所有日志,这是为了通过适当的时间格式使日志更具可读性。 ESXI:这告诉rsyslog将每个主机的日志存储在一个单独的文件夹中,每天的日志存储在与该日相对应的文件夹中,vSphere主机的日志将存储在/data/logs/esxi中。 VCENTER:这告诉rsyslog使用/data/logs/vcenter中的vCenter设备存储日志,使用与ESXI模板上使用的时间戳和结构类似的时间戳和结构。 进行更改后重新启动rsyslog服务: sudo systemctl restart rsyslog 使用systemctl status rsyslog命令检查状态,没问题的话会返回运行状态信息:
然后打开Rsyslog防火墙端口,Rsyslog侦听端口514,我们将其配置为用户TCP,使用firewalld管理工具打开它。 在Ubuntu/Debian上使用ufw: sudo ufw allow 514/tcp 参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程。https://ywnz.com/linuxaq/4277.html 在CentOS 7上: sudo firewall-cmd --add-port=514/tcp --permanent sudo firewall-cmd --reload
三、配置vSphere主机和vCSA Appliance 唯一尚未解决的问题是配置vSphere和vCSA设备以将日志推送到我们的rsyslog服务器。 1、如何配置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 它应该有如下所示:
2、如何配置vCenter(vCSA)远程Syslog 对于vCSA,通过打开vCSA管理UI来配置远程rsyslog: http://vCSA-IP:5480 然后就可以登录控制中心了,如下图:
输入安装期间提供的用户名和密码,初始默认用户名为root,默认密码为vmware。 程序的说明: 1.在vCenter Server Appliance管理界面中,选择Syslog。 2.在“转发配置”部分中,如果尚未配置任何远程syslog主机,请单击“配置”,如果已配置主机,请单击“编辑”。 3.在“创建转发配置”页面中,输入目标主机的服务器地址,支持的目标主机的最大数量为三个。 4.从“协议”下拉菜单中,选择要使用的协议。 5.在“端口”文本框中,输入用于与目标主机通信的端口号。 6.在“创建转发配置”窗格中,单击“添加”以输入另一个远程syslog服务器。 7.单击保存。 8.验证远程syslog服务器是否正在接收消息。 9.在“转发配置”部分中,单击“发送测试消息”。 10.在远程syslog服务器上验证是否收到了测试消息。 新配置设置显示在“转发配置”部分中。 如果你返回到rsyslog服务器,则应在前面配置的logs目录下创建两个文件夹: $ ls /data/logs/ esx vcenter $ ls /data/logs/vcenter/192.168.10.50/2019-02/02.22-messages.log /data/logs/vcenter/192.168.10.50/2019-02/02.22-messages.log 对于ESXI主机: $ file /data/logs/esx/192.168.10.31/2019-02/02.22-messages.log /data/logs/esx/192.168.10.31/2019-02/02.22-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服务器。
相关主题 |