I’m aware of ArcGIS Monitor and it’s full capabilities, but our requirement is much simpler: be able to generate an access list of which users are accessing which REST endpoints for all system usage (all users and all endpoints, with the possible exclusion of hosted layers). Does anyone know of any way to do this without using ArcGIS Monitor? And preferably not requiring a prohibitive amount of custom development, though some is acceptable.
About 10 minutes each week when I am not busy answering Community questions 🙂 I think about this problem. Mostly I have ideas right now. I asked Esri for pricing on ArcGIS Monitor but never got an answer so I presume they looked at our contract and decided we are not rich enough. I am still not sure what exactly it does.
What I really wanted was a service monitor. I wrote one that hits a list of URLs and reports failures to me via Telegram, meeting 95% of my need. When I saw version 11 has a "health monitor" of some kind I decided to let Esri off the hook on Monitor.
I asked Esri about using their log files in a tech support ticket and got the definitive answer regarding their logs. The answer was "you can't tie any service request back to a user through our logs". They said I'd need to look at the web server logs. So let's go that route.
Which web server do you use, and do you have access to its logs?
Can you control logging on there? (Like to change what gets logged in case it's not enough)
(I am using IIS on Windows Server and I run my own web server instance.)
In our setting, we have 1 computer = 1 county user on our intranet, and we are part of the IT dept so theoretically I can tie an IP address closely (not perfect but good enough) back to a person when I need to with few exceptions. Can you do this?
I suppose there could be a way to track logins and ip addresses and sessions and all that but I don't want to get into it at that level.
A couple months ago I put Matomo (free) on a docker instance and started adding tracker code to our apps, that does most of what I wanted. I can track usage of any web app built with Web AppBuilder or WAB Dev Edition. I just found out I can't track StoryMaps this way which is disappointing. It's too locked down.
Matomo does maps too, here's a fragment of the "real time" map.
We're small fry so not much traffic here. I wish I had more sites to monitor. Maybe we could help each other.
Thanks all - good info here. Ours is more a "security compliance and auditing requirement." We have a number of restricted datasets, and need to pull logs on who is accessing them to ensure that only those that should are. This falls more into the "does ArcGIS Enterprise security work the way they say" category unfortunately, which I have no reason to doubt, but the powers that be need to cross check logs anyway for auditing purposes.
And tracking at the web server (web adaptor, load balancer, etc) level could work, but would require custom development. Also a single map might make dozens if not hundreds of queries to the same service as the user pans and zooms - I'm hoping for a solution that does not require sorting though all that to generate single session logs.
Have a look at the Ope product here: https://www.esri.com/en-us/arcgis-marketplace/listing/products/805096c9a1ad4fa59c8c4d8e9dd7a497 There are all sorts of metrics in it. Ope also has a lightweight, simple-to-use Monitoring Tool that may also help with what you're looking for.