Symptoms:
Attempting to configure syslog as a FQDN in NSX Controller Attributes may result in the following error:
The controller cluster DNS is set correctly:
[root@nsxmgr-01a /home/secureall/secureall]# curl -k -u admin -H 'Content-Type:application/xml' -X GET https://xxx-xx.xxx.local/api/2.0/vdn/controller/cluster/dns
Enter host password for user 'admin': xxxxx
<?xml version="1.0" encoding="UTF-8"?>
<ControllerClusterDns><dnsServer>x.x.x.x</dnsServer><dnsSuffix>xxx.local</dnsSuffix></ControllerClusterDns>[root@nsxmgr-01a /home/secureall/secureall]#
NSX Controller can resolve syslog.xxx.local successfully from the OS level:
nsx-controller # ping syslog.xxxx.local
PING syslog.xxxx.local (x.x.x.x) 56(84) bytes of data.
64 bytes from controlcenter.xxxx.local (x.x.x.x): icmp_seq=1 ttl=128 time=0.886 ms
64 bytes from controlcenter.xxxx.local (x.x.x.x): icmp_seq=2 ttl=128 time=0.903 ms
64 bytes from controlcenter.xxxx.local (x.x.x.x): icmp_seq=3 ttl=128 time=1.56 ms
64 bytes from controlcenter.xxxx.local (x.x.x.x): icmp_seq=4 ttl=128 time=1.13 ms
^C
--- syslog.xxxx.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.886/1.120/1.563/0.276 ms
The following works, when specifying syslog as an IP address:
[root@nsxmgr-01a /home/secureall/secureall]# curl -k -u admin -H 'Content-Type:application/xml' -X PUT https://xxx-xxx.xxxx.local/api/2.0/vdn/controller/cluster/syslog -d '<ControllerSyslogServerList><controllerSyslogServer><syslogServer>x.x.x.x</syslogServer><port>999</port><protocol>UDP</protocol><level>ERROR</level></controllerSyslogServer></ControllerSyslogServerList>'
Enter host password for user 'admin':
<?xml version="1.0" encoding="UTF-8"?>
<ControllerSyslogServerList><controllerSyslogServer><syslogServer>x.x.x.x</syslogServer><port>999</port><protocol>UDP</protocol><level>ERROR</level></controllerSyslogServer></ControllerSyslogServerList>[root@nsxmgr-01a /home/secureall/secureall]#
With ControllerClusterDns set up correctly, the following fails, when specifying syslog as a FQDN:
curl -k -u admin -H 'Content-Type:application/xml' -X PUT https://xxx-xxxx.xxxx.local/api/2.0/vdn/controller/cluster/syslog -d '<ControllerSyslogServerList><controllerSyslogServer><syslogServer>syslog.xxxx.local</syslogServer><port>999</port><protocol>UDP</protocol><level>ERROR</level></controllerSyslogServer></ControllerSyslogServerList>'
Enter host password for user 'admin':
{"errorCode":408,"details":"Invalid Parameter(s) - syslogServer.","rootCauseString":null,"moduleName":"core-services","errorData":null}
The following works successfully, when specifying syslog as a TLD FQDN, syslog.xxxx.local.com:
[root@nsxmgr-01a /home/secureall/secureall/nikhil]# curl -k -u admin -H 'Content-Type:application/xml' -X PUT https://nsxmgr-xxx.xxxx.local/api/2.0/vdn/controller/cluster/syslog -d '<ControllerSyslogServerList><controllerSyslogServer><syslogServer>syslog.xxx.xxx</syslogServer><port>999</port><protocol>UDP</protocol><level>ERROR</level></controllerSyslogServer></ControllerSyslogServerList>'
Enter host password for user 'admin':
<?xml version="1.0" encoding="UTF-8"?>
<ControllerSyslogServerList><controllerSyslogServer><syslogServer>syslog.xxxxx.local.com</syslogServer><port>999</port><protocol>UDP</protocol><level>ERROR</level></controllerSyslogServer></ControllerSyslogServerList>