Skip to content

Check getent

Overview

Queries the Name Service Switch (NSS) for entries in system databases such as group, hosts, networks, passwd, protocols, or services using the getent command. Alerts if the lookup fails or if a specific key is not found. This is particularly useful for verifying that directory services (FreeIPA, Active Directory via sssd) are resolving users and groups correctly.

Important Notes:

  • Calling getent --database=passwd without --key lists only local users, not users on a directory server. To check the availability of a FreeIPA or Active Directory connected via sssd, add the name of a known network account via --key to test if network users are resolved correctly. For example: getent --database=passwd --key=<ldapuser>
  • For details see man getent

Data Collection:

  • Executes /usr/bin/getent <database> [key ...] and evaluates the exit code

Fact Sheet

Fact Value
Check Plugin Download https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/getent
Nagios/Icinga Check Name check_getent
Check Interval Recommendation Every 15 minutes
Can be called without parameters Yes
Runs on Cross-platform
Compiled for Windows No

Help

usage: getent [-h] [-V] [--database DATABASE] [--key KEY]

Queries the Name Service Switch (NSS) for entries in system databases such as
group, hosts, networks, passwd, protocols, or services. Alerts if the lookup
fails or if a specific key is not found.

options:
  -h, --help           show this help message and exit
  -V, --version        show program's version number and exit
  --database DATABASE  NSS database to query. May be any database supported by
                       "getent". Example: `--database passwd`. Default: group
  --key KEY            Lookup key to search for in the database. If not
                       specified, all entries are fetched (unless the database
                       does not support enumeration). Can be specified
                       multiple times. Example: `--key root --key nobody`.

Usage Examples

./getent --database group --key SysOps
./getent --database hosts --key localhost --key localhost.localdomain
./getent --database passwd --key ldapuser

Output:

Everything is ok. Executed `/usr/bin/getent group SysOps`, got 1 results.

States

  • OK if the getent lookup succeeds and all requested keys are found.
  • WARN if one or more supplied keys could not be found in the database (getent exit code 2).
  • UNKNOWN if the database name is invalid or arguments are missing (getent exit code 1).
  • UNKNOWN if enumeration is not supported for the given database (getent exit code 3).

Perfdata / Metrics

There is no perfdata.

Credits, License