FlexNet Agent Alerts
Does anyone have a way or a tool that can monitor if FlexNet Agents has stopped and send out alerts as well as sending alerts if there are errors in the installation.log, policy.log and tracker.log.
@IronManMK10 There is nothing native to Flexera that will provide that level of detail for the agents. My recommendation would be to develop a PowerShell script to periodically check for the agent's service status and restart it if it is stop. Additionally you could include other functions in the script to check the registry for beacon entries and/or zip up logs and place them in a share drive for you to review.
Another way to considering approaching this would be from the "server" side: monitor Last Inventory Date values as tracked in FlexNet Manager Suite/Flexera One ITAM. Any computer record which has an old date but otherwise expected to be active is a candidate for follow-up.
Monitoring the data that ends up in the system will potentially pick up a wider range of failure modes than just monitoring the operation of the agent itself.
We are looking for a way to see when the agent last supplied inventory vs just the last inventory date. We pull in assets from Tanium, SCCM, as well as the agent itself. We have noticed that in some cases the agent will stop reporting inventory however since we are seeing the same device via Tanium or SCCM the last inventory date doesn't age, so we don't really have a way to identify agents that need troubleshooting. Are there any reports or views we could leverage to specifically see the last inventory date from just the Flexera Agent?
What about a query against the InventoryReport table in the FNMSInventory database:
--Show when computer(s) last reported their inventory
select comp.computerCN, rept.SWDate, rept.HWDate, rept.FilesDate
from FNMSInventory.dbo.Computer comp,
where comp.ComputerID = rept.ComputerID
and Cast(rept.SWDate as Date) = '2022-12-17'
order by SWDate DESC
The InventoryReport table contains a record of every user and computer that has reported hardware or software inventory through an agent. It details the date and time when the hardware or software tracking was performed. You could modify the above query to look for a particular date (or computer) and if one of those date columns is older than a certain date, you could consider it stale.
There are many use cases for using multiple inventory sources for devices. SCCM is often deployed to all Windows devices. Tanium is usually deployed to all compute devices. In my experience customers only deploy the FlexNet Agent in specialized use cases such as OracleDB, OracleFMW, and IBM PVU licensing. The agent is also good for end user devices especially when you are tracking Adobe products, client software usage, and other software. It is normal to have many inventory sources reporting on the same device which is why FNM has extensive inventory matching rules to normalize this data.
It seems like this exact question is the purpose behind the FlexNet Inventory Agent Status view in the WebUI. It would be helpful if this view had more information, such as, the last time the agent reported inventory and install date.
Drilling into how the FlexNet Inventory Agent Status view is populated. I found this query which appears to target only devices that appear in the ImportedComputer view that have the agents deployed to them and is ordered by the latest inventory date.
WITH Installations(ComplianceComputerID, VersionName, ExternalID, InstallDate) AS ( SELECT TOP 1 WITH TIES ic.ComplianceComputerID, ic.AgentVersion AS VersionName, ic.ExternalID, NULL AS InstallDate FROM dbo.ImportedComputer AS ic WHERE ic.InventoryAgent = 'FlexNet Manager Suite' AND ic.AgentVersion IS NOT NULL ORDER BY ROW_NUMBER() OVER (PARTITION BY ic.ComplianceComputerID ORDER BY ic.InventoryDate DESC) ), computer_cte(CCID, ComputerName, InventoryDate, [Platform], OS, ServicePack, IPAddress, FlexNetAgentVersion, InstallDate, CostCenter, CorporateUnit, Location) AS ( SELECT cc.ComplianceComputerID, cc.ComputerName, cc.InventoryDate, p.[Platform], cc.OperatingSystem AS [OS], cc.ServicePack, cc.IPAddress, ist.VersionName AS FlexNetAgentVersion, ist.InstallDate, cost.[Path] AS CostCenter, d.[Path] AS CorporateUnit, l.[Path] AS Location FROM dbo.ComplianceComputerInfo AS cc INNER JOIN Installations AS ist ON ist.ComplianceComputerID = cc.ComplianceComputerID LEFT OUTER JOIN @OperatingSystemPlatform AS p ON p.OperatingSystem = cc.OperatingSystem LEFT OUTER JOIN dbo.CostCenter AS cost ON cost.GroupExID = cc.CostCenterID LEFT OUTER JOIN dbo.CorporateUnit AS d ON d.GroupExID = cc.BusinessUnitID LEFT OUTER JOIN dbo.Location as l on l.GroupExID = cc.LocationID WHERE EXISTS ( SELECT 'x' FROM dbo.ComplianceComputerActive cca WHERE cca.ComplianceComputerID = cc.ComplianceComputerID ) )
I have updated my initial comment above to reflect possible additional columns of interest in that view. It is good to see that this view could be used to prompt investigation into agent issues.