Unexpected Error during CentOS 7 Server Discovery
As most readers are aware, Microsoft added support for cross-platform monitoring of Unix and Linux systems to Operations Manager (SCOM) back in 2009 and has been improving the capability with each new release. SCOM 2012 R2 ships with specific management packs and cross-platform agents designed for certain popular enterprise Linux distributions (such as RHEL, SUSE, etc.), as well as a “Universal” Linux agent designed to work with many modern Linux distributions.
Having need to demonstrate SCOM’s cross-platform monitoring capabilities for a client, I sat down this morning to spin up some new CentOS virtual machines and add them to our demo SCOM 2012 R2 UR3 environment. Deciding that my demo should include the latest and greatest, I decided to skip the tried-and-true CentOS 6.5 and instead deploy the recently-released CentOS 7. This turned out to be a fantastic decision, allowing me to learn something new and share it with you, the community.
Instead of documenting the complete process of preparing SCOM for Unix and Linux monitoring and deploying agents, allow me to link to Kevin Holman’s excellent write-up of that process. It is written specifically for SCOM 2012, but it remains fully relevant for configuring SCOM 2012 R2. For the purpose of this blog post, suffice to say that I installed the latest SCOM management packs for cross-platform monitoring, added my Linux Monitoring run as account, associated it to the Unix/Linux run as profiles, and created a resource pool for cross-platform monitoring. Additionally, the deployment of the CentOS servers went smoothly, with all updates applied, firewall rules being created for SCOM traffic, and the creation of my account to be used by SCOM for local monitoring. Finally, A and PTR records were added in DNS to ensure name resolution, an important prerequisite for using SCOM’s Discovery Wizard to push the agent to the Linux servers.
Once I had all the components in place, I attempted discovery of one of my newly-created CentOS 7 servers from the SCOM console, only to be faced with the following result:
The full error text is as follows:
Failed during SSH discovery. Exit code: 2
Standard Output:
Standard Error: /etc/centos-release: line 1: syntax error near unexpected token `(‘
/etc/centos-release: line 1: `CentOS Linux release 7.0.1406 (Core) ‘Exception Message:
Despite the blank Exception Message value, the error still showed clearly that the script used to perform SSH discovery wasn’t expecting the OS to identify itself with a string containing parenthesis. Having not come across an error like this when deploying the SCOM Linux agent before, it was time for a bit of research. I checked the Technet’s Unix/Linux Discovery Troubleshooting page, Bing, and that other search engine, only to find no matches to the error in question. I did, however, come across this thread on the Technet forums which confirmed that CentOS 7 won’t be supported by the SCOM product team until the upcoming SCOM 2012 R2 UR4, due out in October (2014). A lack of support for the new version can easily explain the syntax error, but before I accepted defeat and started over with CentOS 6.5, I wanted to be certain that this wasn’t just a problem with Discovery rather than with monitoring itself.
I moved ahead with a manual installation of the SCOM Universal Linux Agent via the RPM installer, followed by manual signing of the agent certificate, per the instructions here. After that, I attempted discovery again, specifying in the Discovery Wizard that the agent was already installed. The agent was recognized successfully and quickly initialized, and now SCOM is successfully monitoring my new CentOS 7 servers.
Summary
As of SCOM 2012 R2 UR3, SCOM’s Discovery Wizard will fail to properly discover CentOS 7 servers. These can still be monitored by performing a manual agent installation.