21.4. 获取访问日志统计信息

logconv.pl 脚本解析访问日志,并返回服务器上运行的不同用户和操作的摘要信息。
在最简单的情况下,脚本只需解析访问日志(或日志):
# logconv.pl /relative/path/to/accessLog
脚本可以接受通配符来解析多个访问日志,这在使用了日志轮转时非常有用。
# logconv.pl /var/log/dirsrv/slapd-instance/access*
logconv.pl 的不同选项在 man page 和 Configuration, Command, and File Reference 中介绍。
logconv.pl 可以通过多种方式从访问日志中拉取常规使用信息。
在最简单的情况下,logconv.pl 会打印总操作列表、连接总数、每种操作类型计数,以及持久性搜索等某些扩展操作计数。
# logconv.pl /var/log/dirsrv/slapd-instance/access
Access Log Analyzer 8.2
Command: logconv.pl /var/log/dirsrv/slapd-instance/access
Processing 1 Access Log(s)...

[001] /var/log/dirsrv/slapd-instance/access	size (bytes):        77532

Total Log Lines Analysed:  527

Start of Logs:    14/Oct/2017:16:15:22.452909568
End of Logs:      14/Oct/2017:16:39:50.157790196

Processed Log Time:  0 Hours, 24 Minutes, 27.704877056 Seconds

Restarts:                     10
Secure Protocol Versions:
  - TLS1.2 client bound as uid=user_name,ou=people,o=example.com (11 connections)
  - TLS1.2 128-bit AES; client CN=CA Subsystem,O=example.com; issuer CN=Certificate Authority,O=example.com (11 connections)
  - TLS1.2 128-bit AES-GCM (2 connections)
  - TLS1.2 128-bit AES (3 connections)

Peak Concurrent Connections:  38
Total Operations:             4771
Total Results:                4653
Overall Performance:          97.5%

Total Connections:            249           (0.17/sec)  (10.18/min)
 - LDAP Connections:          107           (0.07/sec)  (4.37/min)
 - LDAPI Connections:         128           (0.09/sec)  (5.23/min)
 - LDAPS Connections:         14            (0.01/sec)  (0.57/min)
 - StartTLS Extended Ops:     2             (0.00/sec)  (0.08/min)

Searches:                     2963          (2.02/sec)  (121.13/min)
Modifications:                649           (0.44/sec)  (26.53/min)
Adds:                         785           (0.53/sec)  (32.09/min)
Deletes:                      10            (0.01/sec)  (0.41/min)
Mod RDNs:                     6             (0.00/sec)  (0.25/min)
Compares:                     0             (0.00/sec)  (0.00/min)
Binds:                        324           (0.22/sec)  (13.25/min)

Proxied Auth Operations:      0
Persistent Searches:          17
Internal Operations:          0
Entry Operations:             0
Extended Operations:          4
Abandoned Requests:           0
Smart Referrals Received:     0

VLV Operations:               30
VLV Unindexed Searches:       0
VLV Unindexed Components:     20
SORT Operations:              22

Entire Search Base Queries:   12
Paged Searches:               2
Unindexed Searches:           0
Unindexed Components:         149

FDs Taken:                    249
FDs Returned:                 212
Highest FD Taken:             107

Broken Pipes:                 0
Connections Reset By Peer:    0
Resource Unavailable:         0
Max BER Size Exceeded:        0

Binds:                        324
Unbinds:                      155
---------------------------------
 - LDAP v2 Binds:             41
 - LDAP v3 Binds:             180
 - AUTOBINDs(LDAPI):          103
 - SSL Client Binds:          0
 - Failed SSL Client Binds:   0
 - SASL Binds:                134
   - EXTERNAL: 114
   - GSSAPI: 20
 - Directory Manager Binds:   10
 - Anonymous Binds:           1

Cleaning up temp files...
Done.
除了操作和连接的摘要信息外,还详细介绍了与服务器的所有连接信息。此信息包括用于连接到服务器的最常见 IP 地址、带有最多失败的登录尝试的 DN、用于访问服务器的总绑定 DN,以及最常见的错误或返回代码。
其他连接摘要作为单个选项传递。例如,列出用于连接到服务器 (b) 数量,由服务器 (c) 返回的总连接代码通过 -bc 传递。
# logconv.pl -bc /var/log/dirsrv/slapd-instance/access
...
----- Total Connection Codes -----

U1              3    Cleanly Closed Connections
B1              1    Bad Ber Tag Encountered

----- Top 20 Bind DN's -----

Number of Unique Bind DN's: 212

1801            cn=Directory Manager
1297            Anonymous Binds
311             uid=jsmith,ou=people...
87              uid=bjensen,ou=peopl...
85              uid=mreynolds,ou=peo...
69              uid=jrockford,ou=peo...
55              uid=sspencer,ou=peop...
...
在特定开始时间(-S)或范围内,数据可以限制为特定开始时间(-S)后的条目。设置开始和结束时间后,logconv.pl 会首先打印给定的时间范围,然后显示该周期的概述。
# logconv.pl -S "[01/Jul/2016:16:11:47.000000000 -0400]" -E "[01/Jul/2016:17:23:08.999999999 -0400]" /var/log/dirsrv/slapd-instance/access
...
----------- Access Log Output ------------

Start of Logs:    01/Jul/2016:16:11:47
End of Logs:      01/Jul/2016:17:23:08
...
开始和结束期限仅为用于生成总摘要计数的数据设置时间限值。它仍然显示聚合或总计计数。要获得到 Directory 服务器的连接和操作中的模式视图,可以输出每分钟计数(-M)或每秒(-m)的数据。在这种情况下,数据会在时间单位递增输出到指定的 CSV 输出文件中。
# logconv.pl -m|-M outputFile accessLogFile
例如:
# logconv.pl -M /home/output/statsPerMin.txt /var/log/dirsrv/slapd-instance/access*
-M|-m 选项也可以与 -S-E 参数一起使用,在特定时间段内平均或每秒数。
文件中的每一行代表一个时间单位(以分钟或秒为单位),且该时间段的总数。CSV 文件(用于每分钟和每秒统计)包含以下列,顺序如下:
Time,time_t,Results,Search,Add,Mod,Modrdn,Delete,Abandon,Connections,SSL Conns,Bind,Anon Bind,Unbind,Unindexed
CSV 文件可以在任何电子表格计划中操作,如 LibreOffice Calc 以及许多其他商业应用程序中。导入 CSV 数据并生成 chart 或其他指标的流程取决于应用程序本身。
例如,要在 LibreOffice Calc 中创建 chart:
  1. 打开 CSV 文件。
  2. Insert 菜单,然后选择 Chart
  3. Chart Type 区域中,将 Chart 类型设置为 XY (Scatter)
    1. 将 sub 类型设置为行。
    2. 选择要按 X 值排序的选项。
  4. 接受其他屏幕中的默认值(特别是,使用列中的数据集),并将第一行和第一列设置为标签,并创建 chart。