Source code for insights.parsers.dirsrv_logs

'''
389 Directory Server logs
=========================

DirSrvAccessLog - files ``var/log/dirsrv/.*/access``
----------------------------------------------------

DirSrvErrorsLog - files ``var/log/dirsrv/.*/errors``
----------------------------------------------------

.. note::
    Please refer to the super-class :class:`insights.core.LogFileOutput`
'''

from insights import parser, LogFileOutput
from insights.specs import Specs


[docs] @parser(Specs.dirsrv_access) class DirSrvAccessLog(LogFileOutput): ''' The ``access`` log file from all directories in ``/var/log/dirsrv/`` This uses the standard LogFileOutput parser class for its implementation. Note: This parser class gets the access file from all directories in ``/var/log/dirsrv``. Therefore, you will use this parser as a list in the shared parsers dictionary. Iterate through and check the file name for the one you want, or scan all logs. Sample input:: 389-Directory/1.2.11.15 B2014.300.2010 ldap.example.com:636 (/etc/dirsrv/slapd-EXAMPLE-COM) [27/Apr/2015:13:16:35 -0400] conn=1174478 fd=131 slot=131 connection from 10.20.10.106 to 10.20.62.16 [27/Apr/2015:13:16:35 -0400] conn=1174478 op=-1 fd=131 closed - B1 [27/Apr/2015:13:16:35 -0400] conn=324375 op=606903 SRCH base="cn=users,cn=accounts,dc=example,dc=com" scope=2 filter="(uid=root)" attrs=ALL [27/Apr/2015:13:16:35 -0400] conn=324375 op=606903 RESULT err=0 tag=101 nentries=1 etime=0 [27/Apr/2015:13:16:35 -0400] conn=324375 op=606904 SRCH base="cn=groups,cn=accounts,dc=example,dc=com" scope=2 filter="(|(member=uid=root,cn=users,cn=accounts,dc=example,dc=com)(uniqueMember=uid=root,cn=users,cn=accounts,dc=example,dc=com)(memberUid=root))" attrs="cn" [27/Apr/2015:13:16:35 -0400] conn=324375 op=606904 RESULT err=0 tag=101 nentries=8 etime=0 [27/Apr/2015:13:16:40 -0400] conn=1174483 fd=131 slot=131 connection from 10.20.130.21 to 10.20.62.16 [27/Apr/2015:13:16:40 -0400] conn=1174483 op=0 SRCH base="" scope=0 filter="(objectClass=*)" attrs="* altServer namingContexts aci" [27/Apr/2015:13:16:40 -0400] conn=1174483 op=0 RESULT err=0 tag=101 nentries=1 etime=0 Examples: >>> for access_log in shared[DirSrvAccessLog]: ... print "Path:", access_log.path ... connects = access_log.get('connection from') ... print "Connection lines:", len(connects) ... Path: /var/log/dirsrv/slapd-EXAMPLE-COM/access Connection lines: 2 ''' time_format = '%d/%b/%Y:%H:%M:%S'
[docs] @parser(Specs.dirsrv_errors) class DirSrvErrorsLog(LogFileOutput): ''' The ``errors`` log file from all directories in ``/var/log/dirsrv/`` This uses the standard LogFileOutput parser class for its implementation. Note: This parser class gets the errors file from all directories in ``/var/log/dirsrv``. Therefore, you will use this parser as a list in the shared parsers dictionary. Iterate through and check the file name for the one you want, or scan all logs. Sample input:: 389-Directory/1.2.11.15 B2014.300.2010 ldap.example.com:7390 (/etc/dirsrv/slapd-PKI-IPA) [23/Apr/2015:23:12:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) [23/Apr/2015:23:17:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) [23/Apr/2015:23:22:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) [23/Apr/2015:23:27:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) [23/Apr/2015:23:32:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) [23/Apr/2015:23:37:31 -0400] slapi_ldap_bind - Error: could not send startTLS request: error -11 (Connect error) errno 0 (Success) Examples: >>> for error_log in shared[DirSrvErrorsLog]: ... print "Path:", error_log.path ... requests = error_log.get('could not send startTLS') ... print "TLS send error lines:", len(requests) ... tstamp = datetime.datetime(2015, 4, 23, 23, 22, 31) ... print "Connections not before 23:22:31:", len(error_log.get_after(tstamp, lines=requests)) ... Path: /var/log/dirsrv/slapd-PKI-IPA/errors TLS send error lines: 6 Connections not before 23:22:31: 4 ''' time_format = '%d/%b/%Y:%H:%M:%S'