服务行业日志

服务行业日志,第1张

NFS服务日志分析 NFS服务日志分析

之前博客中介绍的Apache、Ftp、iptable等网络服务的日志可以详细记录客户端的信息,如IP地址、访问时间、内容等。然而,在Linux发行版中,NFS服务的日志功能非常弱,例如当一个远程IP地址访问NFS服务器时,其信息无法记录在服务器端的日志中。而Unix家族中的OracleSolaris系统(被Oracle收购前称为SunOS)拥有相对完善的NFS日志功能,比如与KerberosV5的完美集成,可以为系统提供更好的保密性。

1Linux下的NFS日志

RedHatLinux发行版的NFS服务的日志记录在/var/log/messages文件中。让我们使用cat命令来查看消息文件。内容如下:

#cat/var/log/messages|grepnfs

12月29日14时49分59秒本地主机nfs:rpc.mountdshutdown成功

12月29日14:49:59本地主机内核:nfsd:lastserver已退出

Dec2914:49:59localhost内核:nfsd:取消导出所有文件系统

12月29日14时49分59秒本地主机NFS:nfsd-2成功

12月29日14时49分59秒本地主机nfs:rpc.rquotadshutdown成功

12月29日14:50:09localhostNFSlock:RPC.statdshutdown成功

12月29日15:57:53Linux-1NFSlock:RPC.statd启动成功

12月29日15时58分08秒linux-1nfs:启动nfs服务:成功

NFS:rpc.rquotad启动成功

从上面的日志中,我们可以简单的分析服务启动时间和状态,缺点是不能作为独立的NFS服务日志输出,不方便阅读和查找错误。

2Solaris下NFS服务器日志

UNIX平台下的NFS服务广泛应用于虚拟化、中央存储系统服务器集群。本节主要讲述Solaris平台下的NFS日志。在Solaris的服务器平台上配置了NFS服务后,如果没有手动设置日志文件,那么日志模式与Linux相同,也放在messages文件中。但是,Solaris下的nfslogd守护进程提供了非常详细的日志记录功能,在进程启动后,NFS内核模块会将NFS文件系统上的所有 *** 作记录到一个缓存文件中。这些记录包括时间戳、客户端IP地址、请求UID、访问文件和 *** 作类型。

Nfslogd过程的功能如下:

将原始数据从 *** 作记录转换成ASCII记录。

将IP解析为主机名

将UID解析为登录名。

将文件句柄映射到路径名。

因此,Nfslogd进程必须在nfs服务器中启动,Solaris系统中NFS服务的日志记录在配置文件/etc/etc/nfs/nfslog.conf中定义。以下示例使用默认值启动NFS日志守护程序。

#/usr/lib/nfs/nfslogd

1)。配置NFS日志(以下配置适用于Solaris平台)

用于在Solaris系统下配置NFS服务的配置文件的路径是/etc/nfs/nfslog.conf,它定义了nfslogd必须使用的路径、日志类型和文件名。每个定义类型都有一个

为了启用NFS服务,首先我们在/etc/dfs/dfstab配置文件中添加一个共享目录,如图1所示。

然后编辑文件/etc/nfs/nfslog.conf并添加globaldefaultdir=/var/NFSlog=NFSlogFHtable=fhtablebuffer=NFSlog_workbufferlogformat=extended。这个脚本的目的是将日志记录到一个单独的文件中,路径是/var/nfs/目录中的nfslog文件。有关配置文件的说明,请参见表1。


表1NFS配置文件参数说明

区域

的意思是

默认目录

主目录的路径

日志

日志文件的路径和定义的文件名。

fhtable

文件句柄到路径数据库文件的路径名

缓冲区

缓存文件路径

logformat=extended

创建一个用户可读的日志文件,扩展,表示更多的细节,最基本的用basic表示。

以下命令可以启动NFS服务:

#/etc/init.d/nfs.serverstart

#PS–ef|grepNFS\\*验证NFS服务是否成功启动。

相关的守护程序解释如下:

(1)statd和lockd为锁管理器提供崩溃恢复功能。

(2)nfsd控制客户端的文件系统请求。为成功挂载本地共享资源的客户端提供资源读写服务。

(3)mountd处理来自远程系统的装载请求,并提供访问控制。当收到客户机的挂载请求时,它会检查/etc/dfs/sharetab文件,以确定资源是否共享以及客户机是否具有访问权限。

(4)lockd记录对NFS文件的锁定 *** 作。

(5)nfslogd *** 作日志。它的行为由/etc/default/nfslogd定义。

注意:以上进程是服务器端的,客户端有两个进程:statd和lockd。

当NFS服务成功启动时,会在/var/nfs目录中生成四个文件:

FHtable.019800050000002.dir

FHtable.0198000050000002.PAG

nfslog_工作缓冲区_日志_进程

nfslog

图2显示了NFS服务器在Solaris系统下生成的日志信息。

图2UNIX系统中的NFS日志

其中一个日志中每个字段的含义详细解释如下:

1)就诊时间:2012年12月30日20时45分41秒

2).耗时,这意味着读取或写入文件所需的大致时间。它只能精确到秒,所以在这个例子中它是0,这意味着它用了不到1s的时间。

3).远程访问的IP或主机名,此处为“bjtest”

4).文件容量(单位:字节),此处为“0”

5).路径名,/home/cgweb/test

6).数据类型,这个字段总是有一个“B”,因为NFS总是以二进制传输,B代表数据传输类型。

7).传输选项“_”,因为NFS不执行任何特殊 *** 作。该值为“_”。

8). *** 作指令,mkdir表示创建新目录,read表示读取。

9).访问模式,其中字段为“R”。

10).用户ID,代表用户标识符,这里是60001。我们从/etc/passwd可以看到,没有人的ID是6001。

11).服务类型:表示客户端访问的服务类型,nfs3-tcp表示使用tcp的NFSv3版本作为nfs3-tcp的扩展日志格式。

12)认证。此项表示用户是否已经过身份验证,0表示身份验证失败,1表示身份验证通过。

13).验证名称,*验证通过则显示名称,验证失败则显示*。

理解了NFS日志格式的含义后,在日常工作中要注意访问时间、主机(或IP)、路径、执行 *** 作的详细变化。此外,在调试NFS服务时,经常使用Solaris自带的snoop命令,该命令可以显示NFS客户端与NFS服务器之间的网络通信过程,对于调试特别有效。这里有一个例子。

2)例如:

NFS服务器IP:192.168.168.0.200

客户:192.168.0.201

#snoop192.168.0.200

这一行命令意味着捕获192.168.0.200和192.168.0.201之间的数据流。捕获的信息如图3所示。

图3Snoop抓取数据包

从图3中的粗体日志可以看出,客户端(192.168.0.201)在NFS服务器共享中创建了一个名为chentest的新目录。上图清楚的记录了客户端访问服务器的详细 *** 作,这个过程也记录在nfslog日志文件中。如果在snoop之后添加“-v”参数,将会显示底层以太网帧的更多信息。

本文摘自2014年畅销书《UNIX/Linux的网络日志分析与流量监控》第一章。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/783748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存