SAS Environment Manager monitors and administers many aspects of a SAS 9.4 deployment. EV (as we refer to it internally) is comprised of two different software components: a Server and its Agents. An agent is deployed to each host of a SAS deployment where it gathers information about ongoing operations. The agent relays that information back to the EV server where it can be analyzed and shared with the SAS software's administration personnel.
In this way, SAS Environment Manager is flexible to the many possible topologies of SAS software deployments and enables administration, alerts, auditing, logging, and many other features to help keep the SAS deployment running smoothly.
However, there are some SAS deployment topologies for which EV needs configuration beyond what the standard install process can provide. In particular, SAS installations which require additional configuration of the EV agents are those where the SAS Compute Tier runs across multiple hosts machines which all share a single deployment of the SAS configuration directory. In the past we relied on a separately downloadable utility to help configure the EV agents for this scenario. But with SAS 9.4 M6, we have a new smart agent technology to make it even easier.
This post dives right into some of the deeper aspects of multi-tiered, multi-machine deployments of SAS. Where possible, I'll try to provide relevant background to keep us all on the same happy path.
A multi-tiered SAS deployment is a reference to distributing SAS software components to different machines based on their primary function. We typically see tiers referenced like:
- When talking about the new EV Smart Agent functionality, we're focused exclusively on the SAS Compute Tier.
It comes down to how the SAS software is deployed initially and then accessed for ongoing operations. To understand why the compute tier is different, let's first look at how other SAS software tiers are deployed. Consider this clustered SAS Metadata Server on three host machines:
Select any image to see a larger version.
To deploy the SAS Metadata Server, we must run the SAS Deployment Wizard (SDW) on each host. The SDW lays down physical files for sashome and sasconfig on to each machine. Once the files are in place, then the SDW starts up the SAS software services on that host automatically, including the EV Agents.
The process is pretty similar for a clustered SAS Middle Tier as well:
In each case, every host machine has its own set of sashome and sasconfig files - and each one has its own SAS Environment Manager Agent as well. Also, one (or more) of these hosts is also running the SAS Environment Manager Server component, too.
So if you're keeping count, you'll notice that this approach requires running the SDW five times so far - once on each machine shown in these two illustrations.
The SAS Compute Tier can be treated differently. It's possible that the SAS Compute Tier might not just have one, two, or three hosts - it may have dozens, scores, potentially hundreds of hosts. Instead of running the SDW on every single one, wouldn't it be great if we could just run the SDW once and share that one set of files across all of the compute tier hosts?
TAKE NOTE: The SAS Compute Tier for this post is in reference to the software components which provide Foundation SAS through connectivity provided by either SAS/CONNECT or SAS Integrations Technology (IOM) software. This includes the SAS/CONNECT Server or SAS processes spawned by the SAS/CONNECT Spawner as well as IOM application servers like the SAS Workspace Server, SAS Stored Process Server, SAS Pooled Workspace Server, and SAS OLAP Server. And so, of course, SAS Grid Manager is included in this, too. For this post, the compute tier does not include SAS LASR Analytic Server, SAS Event Stream Processing, anything from SAS Viya, etc.
For the hosts in the SAS Compute Tier, we can choose to share one instance of the SAS configuration directory. And if our SAS deployment is running on Linux (or UNIX) hosts, then we can also share the sashome directory (with all of SAS' binary executables) as well:
In this illustration, notice that the SDW is only run on one host machine of the compute tier. All of the other compute tier hosts will be configured to access the files for sashome and sasconfig through the use of shared filesystem technology. This simplifies the deployment significantly since we only need run the SDW for the compute tier just one time. It also simplifies ongoing administration and maintenance because we can make one change (or apply a hotfix just once) and all of the machines in the compute tier will see it automatically.
Yes, indeed. I'm just getting to it. But first you need to know that the standard EV Agent is already installed, configured, and running on every host where the SDW was executed. In the illustrations above, the SDW has already provided a perfectly good EV agent on:
We don’t change those. Leave them alone. They're fine.
However, notice that we don't have any EV agents running on the compute tier hosts where the SDW was not executed: comp02, comp03, comp04, …, compn.
This is where the new EV Smart Agent comes into play.
This is actually super simple. There's nothing to deploy. As of 9.4 M6, the EV Smart Agent software files are already in place in the sasconfig directory. You just need to use them.
On every SAS Compute Tier host which relies on a shared configuration *and* has not run the SDW:
Notice the standard EV agent directory is still there: agent-5.8.0-EE. And remember it's actively being used on the compute tier host machine where the SDW did run.
hq-agent.shscript and specify the start parameter. For it's first-ever execution, the smart agent will automatically create a new directory structure just for this host's files:
/[SASCONFIGDIR]/Lev1/Web/SASEnvironmentManager/smart-agent/hq-agent.sh [ start | stop | restart | status ]
Let's be clear. For every machine where the SDW ran, we already have the standard EV Agent and it works great. Each of those hosts where the SDW ran also has its own
sas.servers utility to start (and stop and status) all of the SAS services, including the default EV Agent. So continue working with those as you always have.
The EV Smart Agent is used on the compute tier only - and only those hosts which rely on the shared SAS configuration directory - and only those which did not run the SDW. So your SAS deployment when its complete will run with the standard EV Agent running on some hosts and the EV Smart Agent on the compute tier hosts which need it.
This is important to remember. Here's why…
On the first-deployed host of the SAS Compute Tier, you'll typically use the
sas.servers utility to operate all of the SAS services together. But if you want to operate just the EV Agent, you can do so by calling the correct
However, on the other hosts of the SAS Compute Tier which are running the EV Smart Agent, the command path is different:
I know. You want to run the EV Smart Agent on the first-deployed compute tier host (where the SDW ran). And technically, you can. It'll work (assuming you stop the standard EV agent first) and report statistics to the EV Server just the same. But it's a bad idea.
It's a bad idea because the
sas.servers utility - which you want to continue using - is not equipped to work with the EV Smart Agent. So you'd end up wrangling with competing executions of the EV agent to no real benefit.
Okay, now I bet you want to run the standard EV Agent on the other hosts of the compute tier, right? And well, you can. It's just that's the old way of doing things. And the EV Smart Agent is the new way.
Unfortunately, no one can be told what the Matrix is. You have to see it for yourself.
Here's an interesting twist to consider: there is no EV Smart Agent.
As I said above, whether you're running the standard EV Agent or the new EV Smart Agent, you're getting the exact same agent-5.8.0 process. It's just that the parameters fed to that agent which tell it how to run are different. The "smarts" are only in the scripting which invokes the agent - specifically to create that dedicated directory structure per host and direct the agent to use it. In terms of what the EV agent reports on and monitors, the standard and smart agents are exactly the same.
With so much power and flexibility in how we deploy SAS software, there's still a lot of ground to cover when discussing the concepts here, not just for SAS Environment Manager, but the various topologies, operational considerations, and so on.
Learn more about saving time and effort with a shared configuration directory.
And when working with a multi-tiered (or multi-machine) deployment of SAS software, coordination of SAS software services as they run across hosts is important. SAS Technical Support provides the SAS_lsm utility to help manage the operations of SAS software on multiple machines.
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
Data Literacy is for all, even absolute beginners. Jump on board with this free e-learning and boost your career prospects.