Collector Reference: Platform and Services
Collectors that monitor the services and platforms supporting your infrastructure, including storage clusters, databases, monitoring systems, secret management, and DNS
These collectors monitor the services and platforms that support your infrastructure: storage clusters, databases, monitoring systems, secret management, and DNS. Each collector connects to a platform's API, discovers its components, and publishes configuration items into Parascope for tracking and correlation.
Ceph Collector
The Ceph collector discovers storage infrastructure from Ceph clusters via the Ceph Dashboard/Manager REST API.
CI Types Discovered (11)
| CI Type | Description |
|---|---|
ceph.cluster | Cluster identity, health status, and capacity |
ceph.monitor | Monitor daemons (consensus/quorum) |
ceph.osd | Object Storage Daemons (data storage) |
ceph.pool | Storage pools with replication/erasure coding config |
ceph.host | Cluster member hosts |
ceph.mds | Metadata Server daemons (CephFS) |
ceph.manager | Manager daemons |
ceph.rgw | RADOS Gateway daemons (S3/Swift) |
ceph.rbd | RBD block device images |
ceph.pg | Placement groups (collected as pool sub-resources) |
ceph.filesystem | CephFS filesystems |
Authentication
- Ceph Dashboard API: username/password for the Ceph Manager Dashboard REST API
- Connects via the Ceph Dashboard URL (typically port 8443)
What Gets Collected
- Config (tracked): Cluster health status, CRUSH map, pool configuration, OSD class and weight, daemon versions
- Metrics (not tracked): Capacity usage, IOPS, throughput, OSD utilization percentages
Health Dashboard Integration
The Ceph collector feeds the Ceph Health Widget on the Parascope dashboard, showing cluster health status and capacity at a glance.
Key Relationships
- OSDs
member_ofCluster - Monitors
member_ofCluster - Hosts
member_ofCluster - Pools
member_ofCluster
PostgreSQL Collector
The PostgreSQL collector discovers database infrastructure, schemas, and configuration across one or more PostgreSQL servers.
CI Types Discovered
| CI Type | Description |
|---|---|
postgresql.server | PostgreSQL server instances |
postgresql.database | Individual databases |
postgresql.schema | Database schemas |
postgresql.table | Tables with row counts and sizes |
postgresql.index | Indexes |
postgresql.tableindex | Per-table index detail |
postgresql.extension | Installed extensions |
postgresql.role | Database roles and permissions |
postgresql.replication_slot | Replication slots |
Authentication
- Connection string: standard PostgreSQL connection parameters (host, port, database, user, password)
- Read-only access is sufficient for collection
Monitoring role and privileges
The collector only ever reads, but a few resource types need privileges a plain application user usually lacks:
- Replication slots (
postgresql.replication_slot) requirepg_monitor(or theREPLICATIONattribute) to readpg_replication_slots. - Cross-database introspection (schemas, tables, indexes, extensions in every database) requires
CONNECTon each target database. - Full role detail benefits from
pg_monitor, which exposes restricted system views without granting write access.
If those privileges are missing, the affected query is rejected as an insufficient-privilege error and that resource type is simply skipped on each cycle. Collection keeps running, but it quietly undercollects with no obvious signal. To get full coverage, provision a dedicated least-privilege monitoring role rather than connecting as a superuser or the application user:
-- Create a dedicated, login-capable monitoring role.
CREATE ROLE parascope_monitor WITH LOGIN PASSWORD 'change-me';
-- pg_monitor is a built-in role that grants read access to restricted
-- statistics/config views (incl. replication slots) WITHOUT any write access.
GRANT pg_monitor TO parascope_monitor;
-- Allow connecting to each database you want introspected (repeat per database).
GRANT CONNECT ON DATABASE app_db TO parascope_monitor;pg_monitor is preferred over a superuser because it is read-only by construction: the collector can never modify data or configuration. Point the collector's credentials at this role.
What Gets Collected
- Config (tracked): Server version, configuration parameters, database sizes, table structures, installed extensions, replication config
- Metrics (not tracked): Connection count, transaction rates, cache hit ratios
Multi-Server Support
Configure multiple PostgreSQL servers as separate sources, each with independent credentials and health tracking.
Key Relationships
- Databases
is_contained_byServers - Schemas
is_contained_byDatabases - Tables
is_contained_bySchemas
Prometheus Collector
The Prometheus collector discovers monitoring infrastructure from Prometheus servers: what targets are being monitored and what alerting rules are configured.
CI Types Discovered (4)
| CI Type | Description |
|---|---|
prometheus.instance | Prometheus server instances |
prometheus.target | Monitored scrape targets with health |
prometheus.rule | Alerting and recording rules |
prometheus.alertmanager | Alertmanager endpoints the instance alerts to |
Authentication
- HTTP: Prometheus API (typically unauthenticated or via reverse proxy)
What Gets Collected
- Config (tracked): Server configuration, target endpoints and labels, rule definitions and expressions
- Metrics (not tracked): Target scrape duration, sample counts
Key Relationships
- Targets
member_ofInstance - Rules
member_ofInstance - Instance
sends_alerts_toAlertmanager
Grafana Collector
The Grafana collector discovers dashboards and data sources from Grafana instances.
CI Types Discovered (3)
| CI Type | Description |
|---|---|
grafana.instance | Grafana server instances |
grafana.dashboard | Dashboard definitions |
grafana.datasource | Configured data sources |
Authentication
- API Key: Grafana API key or service account token with viewer permissions
What Gets Collected
- Config (tracked): Dashboard titles, folder organization, panel configurations, data source types and connection details
- Metrics (not tracked): Dashboard view counts
Key Relationships
- Dashboards
member_ofInstance - Datasources
member_ofInstance
OpenBao Collector
The OpenBao collector discovers secret management infrastructure from OpenBao instances, with a focus on PKI certificate tracking.
CI Types Discovered (5)
| CI Type | Description |
|---|---|
vault.instance | OpenBao server/cluster instances |
vault.secret_engine | Enabled secret engines (KV, PKI, Transit, etc.) |
vault.auth_method | Authentication methods (LDAP, OIDC, AppRole, etc.) |
vault.policy | Access control policies |
vault.pki_certificate | Issued PKI certificates with expiration tracking |
Authentication
- OpenBao Token: read-only access to
sys/mounts,sys/auth, and PKI engine paths, plusreadonauth/token/lookup-selffor the health check. The built-indefaultpolicy grants it; a token or role created withno_default_policyneeds it added explicitly.
Key Features
- PKI Certificate Tracking: Monitors issued certificates and their expiration dates
- Secret Engine Inventory: What secret engines are enabled and how they are configured
- Auth Method Discovery: What authentication methods are available
Key Relationships
- Secret Engines
member_ofServer - Auth Methods
member_ofServer - PKI Roles
is_contained_bySecret Engines - PKI Certificates
issued_byPKI Roles
Backstage Collector
The Backstage collector discovers service catalog entities from Backstage instances, providing visibility into your software catalog alongside your infrastructure.
CI Types Discovered (4)
| CI Type | Description |
|---|---|
backstage.component | Software components (services, libraries, websites) |
backstage.system | Systems that group related components |
backstage.domain | Business domains |
backstage.api | API definitions |
Authentication
- Backstage API: Bearer token or unauthenticated access depending on your Backstage configuration
What Gets Collected
- Config (tracked): Component metadata, ownership, lifecycle stage, system membership, API specifications
- Relationships: Components
member_ofSystems, Systemsmember_ofDomains, ComponentsprovidesAPIs
Keycloak Collector
The Keycloak collector discovers identity and access management configuration from Keycloak instances.
CI Types Discovered (5)
| CI Type | Description |
|---|---|
keycloak.realm | Identity realms |
keycloak.client | OIDC/SAML clients |
keycloak.group | User groups |
keycloak.role | Realm and client roles |
keycloak.user | User accounts |
Both realm roles and client roles are collected. A client role is named {clientId}/{role}, for example my-app/admin, so a client's admin never collides with the realm's own admin. Realm roles keep their bare name.
Authentication
- Keycloak Admin API: Admin credentials or service account token
What Gets Collected
- Config (tracked): Realm settings, client configurations, group hierarchy, role assignments, user attributes
- Relationships: Clients
member_ofRealms, Rolesmember_ofRealms, Groupsmember_ofRealms, Usersmember_ofGroups, Groupshas_roleRoles
DNS Collector
The DNS collector discovers DNS zones and records from a range of DNS sources. The source type is configured per source; supported sources are:
- CoreDNS: via zone transfer (AXFR); requires an explicit list of zones
- BIND: via zone transfer (AXFR); requires an explicit list of zones
- AWS Route53: via the AWS SDK; auto-discovers all hosted zones
- Infoblox: via the WAPI REST API; auto-discovers all authoritative zones
- Active Directory DNS: via LDAP; auto-discovers AD-integrated zones from the directory's DNS partition
CI Types Discovered
| CI Type | Description |
|---|---|
dns.zone | DNS zones with record inventory |
Authentication
Authentication depends on the configured source type:
- CoreDNS / BIND: zone transfer (AXFR) from the authoritative server; access is controlled by the server's
allow-transferACL - Route53: AWS credentials (access key/secret or an assumed role)
- Infoblox: WAPI username and password
- Active Directory DNS: domain controller credentials for an LDAP bind (NTLM or simple, over LDAPS)
What Gets Collected
- Config (tracked): Zone names, SOA records, record types and counts, DNSSEC configuration
- Zone records (A, AAAA, CNAME, MX, TXT, SRV, etc.) are tracked within the zone CI
Key Features
- FQDN Enrichment: DNS data enriches other CIs with hostname/FQDN information, enabling lookup of infrastructure by DNS name
- Zone Change Tracking: Detect when DNS records are added, modified, or removed
Cloudflare Collector
The Cloudflare collector discovers zones, DNS records, tunnels, Workers, and load balancers from a Cloudflare account through the Cloudflare API.
CI Types Discovered
| CI Type | Description |
|---|---|
cloudflare.account | The Cloudflare account that owns the other resources |
cloudflare.zone | DNS zones with settings, DNSSEC status, rulesets, page rules and certificates |
cloudflare.dns_record | DNS records in each zone |
cloudflare.tunnel | Cloudflare Tunnels and their configuration |
cloudflare.worker | Workers scripts with their routes and custom domains |
cloudflare.load_balancer | Load balancers with their pools and monitors |
Authentication
The collector uses a Cloudflare API token. Create a custom token with read-only permissions, scoped to the account and zones you want to discover.
Required permissions. Each resource type needs its permission. If the token lacks it, that resource type fails to collect and the source reports the error.
| Resource type | Token permission |
|---|---|
| Account | Account Settings Read |
| Zones | Zone Read |
| DNS records | DNS Read |
| Tunnels | Cloudflare Tunnel Read |
| Workers | Workers Scripts Read |
| Load balancers | Load Balancers Read, Load Balancing: Monitors and Pools Read |
Optional zone permissions. These enrich each zone. If the token lacks one, Parascope still collects every zone without that detail. The source turns degraded, and its error names the missing permission. The zone keeps the last value Parascope collected for that detail, so change history does not record a false removal.
| Zone detail | Token permission |
|---|---|
| Zone settings (SSL mode, TLS, WAF) | Zone Settings Read |
| DNSSEC status | DNS Read |
| Rulesets (WAF, rate limiting) | A zone ruleset Read permission, for example Zone WAF Read, plus the Read permission for each ruleset phase in use |
| Page rules | Page Rules Read |
| Certificate packs | SSL and Certificates Read |
| Custom hostnames (SSL for SaaS) | SSL and Certificates Read |
A token that is invalid or expired (HTTP 401) is never treated as optional. The whole collection fails until the token is fixed.
Key Relationships
- Zones, tunnels, and Workers
belongs_totheir Cloudflare account - DNS records and load balancers
belongs_totheir zone - Tunnels and Workers are
associated_withthe zones whose hostnames they serve
Related Documentation
- Managing Collectors: Collector health and configuration
- OS Collection: Agentless operating system discovery
- CI Types: Complete CI type reference