如何收集Domino服务器日志
如何收集Domino服务器日志
在论坛已久,发现用户提交问题,太过于简单,很多就是说明现象,不太便于分析和理解。
来论坛发帖大部分都是Domino管理员和开发者,希望更加细致和专业,同时提高自己分析能力。
以下来自ibm的邮件或者帮助:
1 当Windows平台上服务器挂起(非HTTP)时,收集数据的流程:
1 在服务器的控制台上输入
set config CONSOLE_LOG_ENABLED=1
set config DEBUG_THREADID=1
set config DEBUG_CAPTURE_TIMEOUT=1
set config DEBUG_SHOW_TIMEOUT=1
2 当服务器挂起,在Domino控制台上执行如下命令:
sh server
sh task debug
sh task time
sh user
sh stat
3 用Dos命令手工收集nsd日志,当nsd完成收集后,请在五分钟内执行'dump'命令对所有Domino服务器线程做另一个快照。
下面是如何收集nsd的提示:
I 打开一个dos命令窗口
II 进入domino data目录,例如"cd c:\lotus\domino\"
III 在Domino程序目录下执行nsd,例如"c:\lotus\domino\nsd"
当nsd运行结束,命令行中的提示符会更改为:
nsd>
IV 五分钟后执行dump命令,用来dump线程堆栈。在问题期内至少收集两次dump
V 退出Domino服务器,如果可以,可在Domino控制台输入'q'或者'quit'命令来退出Domino,如果服务器不能正常退出,就需要在"nsd>"提示符下用'kill'这个命令来杀掉所有Domino进程。
4 需要收集的数据有:
- nsd log, 文件名: nsd_<plaftform>_<ServerName>_date@timelog, date/time 应是nsd运行的时刻
- console log, 文件名: console_name_yyyy_mm_dd@hh_mm_sslog,the date/time 应是服务器最后一次启动的时刻
- SEMDEBUG txt, 文件名: SEMDEBUG_name_yyyy_mm_dd@hh_mm_ssTXT, the date/time 应是服务器最后一次启动的时刻
上面的文件位于Domino Data目录,IBM_TECHNICAL_SUPPORT 子目录
2 Lotus Traveller服务器日志收集
收集服务器日志
本主题包含有关收集日志文件和信息以协助 Lotus Notes® Traveler 支持人员解决服务器安装、启动和运行时问题的指示信息。
提高记录级别
执行以下操作,为 Lotus Notes Traveler 服务器任务提高记录级别、增加日志文件大小和最大活动日志文件数。请注意,可能不必增加日志文件大小或最大活动文件数。
在 IBM® Lotus® Domino® Administrator 中,打开 Lotus Notes Traveler 服务器的服务器配置文档。
在文档中单击 Lotus Traveler 选项卡,然后单击编辑服务器。
将记录级别更改为最详细。
将活动日志的最大文件大小更改为所需的最大文件大小。
将最大活动日志文件数更改为所需的最大活动日志数。
保存并关闭服务器文档。
等几分钟让更改生效,然后重现问题。
注: 还可以为每个用户逐个设置记录以节约输入/输出空间和带宽。有关记录命令的详细信息,请参阅控制台命令。
收集日志
以下文件和目录包含记录或配置信息,这些信息在对服务器启动/运行时问题进行故障诊断时很有用。以 Zip 或 tar 格式压缩下面指定的所有文件和目录。当指示目录时,包括整个目录。
\Lotus\Domino\notesini
\Lotus\Domino\data\servletsproperties
\Lotus\Domino\data\traveler\cfg\
\Lotus\Domino\data\traveler\logs\
如果问题涉及在创建 \traveler 目录前安装失败,请提供以下临时日志(如果存在):%TEMP%\Idatetime\Windows\NTSInstalllog(例如 C:\Documents and Settings\Administrator\Local Settings\Temp\I1206535899\Windows\NTSInstalllog)。
如果问题涉及 Domino 服务器崩溃,另请提供以下日志:
用于捕获崩溃的 NSD 日志,位于 \Lotus\Domino\data\IBM_TECHNICAL_SUPPORT\NSDdatetimelog 中
Javacore 文件,根据具体安装情况,其位置可能会有不同,但或许能在 \Lotus\Domino\javacoredatetimetxt 中找到
注: 为了不影响性能,在收集日志并解决问题后,建议您将日志级别恢复到原来的设置。
二 以上主要收集的是服务器日志,Notes客户端也是类似
本地存在lognsf,同时在数据目录下也存在:
data\IBM_TECHNICAL_SUPPORT\
和服务器类似,同样用来分析Notes客户端问题。
一个合格的站长或者seoer必须要能看懂网站的服务器日志文件,这个日志记录了网站被搜索引擎爬取的痕迹,给站长提供了蜘蛛是否来访的有力佐证,站长朋友可以通过网站日志来分析搜索引擎蜘蛛的抓取情况,分析网站的是否存在收录异常问题。并且我们可以根据这个日志文件判断蜘蛛来访频率以及抓取规律,这将非常有利于我们做优化。另外,学习分析网站日志文件也是站长必须具备的能力,也是你从一个初级seo进阶到seo高手的必由之路。但是前提是要主机服务商开通日志统计功能,一般虚拟主机提供商都不会开通,你可以申请开通,或者自己到服务器管理后台开通这个日志统计功能,不过日志也会占用空间的,我们在看完日志文件后,可以隔段时间清理下日志文件。那么如何分析服务器日志文件呢听我娓娓道来。
搜索引擎抓取网站信息必会在服务器上留下信息,这个信息就在网站日志文件里。我们通过日志可以了解搜索引擎的访问情况,一般通过主机服务商开通日志功能,再通过FTP访问网站的根目录,在根目录下可以看到一个log或者weblog文件夹,这里面就是日志文件,我们把这个日志文件下载下来,用记事本(或浏览器)打开就可以看到网站日志的内容。那么到底这个日志里面隐藏了什么玄机呢其实日志文件就像飞机上的黑匣子。我们可以通过这个日志了解很多信息,那么到底这个日志给我们传递了什么内容呢
如果想要知道网站日志文件包含了什么内容,首先必须知道各搜索引擎的蜘蛛名称,比如百度的蜘蛛程序名称是baiduspider,Google的机器人程序名称是Google-Googlebot等等,我们在日志的内容里搜索上述的的蜘蛛名就可以知道哪个搜索引擎已经爬取过网站了,这里就留下了他们的蛛丝马迹。再者,必须能看懂常见的http状态码,最常见的HTTP状态码有200(页面抓取成功)、304(上次抓取的和这次抓取的没变化),404(未找到页面,错误链接)500(服务器未响应,一般由服务器维护和出故障,网站打不开时出现的),这些状态码是我们站长朋友必须能看懂的,服务器状态码的值是我们和蜘蛛交流的信号。知道了这些基本信息以后我们就可以根据网站日志进行分析了,一般来说我们只看百度和谷歌蜘蛛的爬行和抓取情况,当然有特殊需要的也可以对其他几个蜘蛛的爬行情况进行分析。网站日志中出现大量的谷歌蜘蛛和百度蜘蛛,说明搜索引擎蜘蛛时常来光顾你的网站。
说到分析日志文件,我们就不得不说分析日志文件的时机了,那么在什么情况下我们要去分析日志文件呢首先,新网站刚建立的时候,这个时候也是站长朋友最急切的时候,我们一般都会焦急的等待搜索引擎收录网站内容,经常会做的事情就是去百度或者Google用命令site:下网站域名看看是否被收录,这个时候,其实我们没必要频繁的查询网站是否被收录,要想知道搜索引擎是否关顾我们的网站。我们就可以借助网站日志文件来查看,怎么看看网站日志是否有搜索引擎的蜘蛛来网站抓取过,看返回的状态码是200还是其他,如果返回200说明抓取成功,如果返回404说明页面错误,或者页面不存在,就需要做301永久重定向或者302暂时重定向。一般抓取成功后被搜索引擎放出来的时间也会晚点,一般谷歌机器人放出来的比较快,最快可秒杀,但是百度反应就慢了,最快也要一周左右,不过11月份百度算法调整后,放出来的速度还是很快的。其次,当网站收录异常时我们要把正常收录的日志和异常的日志进行对比分析,找出问题所在,这样可以解决网站收录问题,也是对完整优化大有裨益的。第三,网站被搜索引擎K掉后,我们必须要观察网站日志文件来亡羊补牢,一般这种情况下,日志文件里只有很少的几个蜘蛛爬行了首页和robots,我们要找出被K的原因并改正,再提交给搜索引擎,接下来就可以通过观察日志来看蜘蛛是否正常来临,慢慢过一段时间,如果蜘蛛数量增加或者经常来临并且返回200状态吗,那么恭喜你,你的网站又活了,如果半年都没反应,那么建议放弃该域名重新再战了。
很多站长朋友不懂得如何利用网站日志文件,遇到网站收录问题就去提问别人,而不好好自检,这是作为站长或者seoer的悲哀。而且网上的很多软文都提到要做好日志文件的分析,但是那只是软文而已,说不定写文章的作者都没有去看日志文件。说到底,还是希望站长朋友一定不要忽略了网站日志文件,合理的利用好网站日志文件是一个站长或seoer必备的技能。再者说,看懂网站日志文件并不需要你有多么高深的编码知识,其实只要看得懂html代码和几个返回的状态码就可以了,一定不能懒,或者抱着侥幸心理去对待你的网站,这种心理会导致你输得很惨。如果你是一个小站长,或者你是一个seoer,如果你以前没有意识到网站日志文件的重要性,那么从看到我写的这篇文章开始要好好对待你的网站日志了。
可能是因为你网络的安全设置问题,远程日志服务器的设置没错,只要打开-r参数就可以接收日志了,你要确保自己的服务器都与日志服务器能够在网络段内能够相互连通,网络设备有没有设防火墙呢?如果没有的话,应该是solaris系统的安全设置问题,还真找不出什么问题来。
1、进入日志文件所在的文件目录,比如:
cd /opt/tomcat7/logs
2、通过命令打开日志,分析需求场景打开需要的日志
比如:
tail -f catalinaout
3、常用命令一:tail
比如:
tail -f testlog (循环查看文件内容)
4、按照行号查询:cat(过滤出关键字附近的日志)
cat -n testlog |grep "订单号"
然后使用 head -n 20 查看查询结果里的向前20条记录
5、按照时间日期查询,(查询出一段时间内的记录)
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' testlog
查看该段时间内的日志
但是前提是用方法4试一下查询的哪个其实时间是不是存在
在Linux系统中,有三个主要的日志子系统:
连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。
错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
常用的日志文件如下:
Access-log 纪录HTTP/web的传输
acct/pacct 纪录用户命令
aculog 纪录MODEM的活动
btmp 纪录失败的纪录
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录
messages 从syslog中记录信息(有的链接到syslog文件)
sudolog 纪录使用sudo发出的命令
sulog 纪录使用su命令的使用
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 纪录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久纪录
xferlog 纪录FTP会话
utmp、wtmp和lastlog日志文件是多数重用Unix日志子系统的关键--保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp1;第二天后wtmp1变为wtmp2等等,直到wtmp7。
每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。
下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。
具体命令
wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。
who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示
chyang pts/0 Aug 18 15:06
ynguo pts/2 Aug 18 15:32
ynguo pts/3 Aug 18 13:55
lewis pts/4 Aug 18 13:35
ynguo pts/7 Aug 18 14:12
ylou pts/8 Aug 18 14:15
如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。
w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 023, 029, 027。
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
chyang pts/0 2023868242 3:06pm 2:04 008s 004s -bash
ynguo pts/2 202387947 3:32pm 000s 014s 005 w
lewis pts/3 2023864233 1:55pm 30:39 027s 022s -bash
lewis pts/4 2023864233 1:35pm 600s 403s 001s sh /home/users/
ynguo pts/7 simbanicustce 2:12pm 000s 047s 024s telnet mail
ylou pts/8 2023864235 2:15pm 1:09m 010s 004s -bash
users:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如:users(回车)显示:chyang lewis lewis ylou ynguo ynguo
last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:
chyang pts/9 2023868242 Tue Aug 1 08:34 - 11:23 (02:49)
cfan pts/6 2023864224 Tue Aug 1 08:33 - 08:48 (00:14)
chyang pts/4 2023868242 Tue Aug 1 08:32 - 12:13 (03:40)
lewis pts/3 2023864233 Tue Aug 1 08:06 - 11:09 (03:03)
lewis pts/2 2023864233 Tue Aug 1 07:56 - 11:09 (03:12)
如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:
ynguo pts/4 simbanicustce Fri Aug 4 16:50 - 08:20 (15:30)
ynguo pts/4 simbanicustce Thu Aug 3 23:55 - 04:40 (04:44)
ynguo pts/11 simbanicustce Thu Aug 3 20:45 - 22:02 (01:16)
ynguo pts/0 simbanicustce Thu Aug 3 03:17 - 05:42 (02:25)
ynguo pts/0 simbanicustce Wed Aug 2 01:04 - 03:16 1+02:12)
ynguo pts/0 simbanicustce Wed Aug 2 00:43 - 00:54 (00:11)
ynguo pts/9 simbanicustce Thu Aug 1 20:30 - 21:26 (00:55)
ac:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 517747
ac -d(回车)显示每天的总的连结时间
Aug 12 total 26187
Aug 13 total 35139
Aug 14 total 39609
Aug 15 total 46263
Aug 16 total 27045
Aug 17 total 10429
Today total 17902
ac -p (回车)显示每个用户的总的连接时间
ynguo 19323
yUCao 335
rong 13340
hdai 1052
zjzhu 5287
zqzhou 1314
liangliu 2434
total 517824
lastlog:lastlog文件在每次有用户登录时被查询。可以使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示"Never logged。注意需要以root运行该命令,例如:
rong 5 2023864187 Fri Aug 18 15:57:01 +0800 2000
dbb Never logged in
xinchen Never logged in
pb9511 Never logged in
xchen 0 2023864190 Sun Aug 13 10:01:22 +0800 2000
另外,可一加一些参数,例如,last -u 102将报告UID为102的用户;last -t 7表示限制上一周的报告。
进程统计
Unix可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程统计子系统可以告诉你。它对还跟踪一个侵入者有帮助。与连接时间日志不同,进程统计子系统缺省不激活,它必须启动。在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。Accton命令的形式accton file,file必须先存在。先使用toUCh命令来创建pacct文件:toUCh /var/log/pacct,然后运行accton: accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令。
lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内纪录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。下面的例子:
crond F root 000 seCS Sun Aug 20 00:16
promisc_checks S root 004 seCS Sun Aug 20 00:16
promisc_check root 001 seCS Sun Aug 20 00:16
grep root 002 seCS Sun Aug 20 00:16
tail root 001 seCS Sun Aug 20 00:16
sh root 001 seCS Sun Aug 20 00:15
ping S root 001 seCS Sun Aug 20 00:15
ping6pl F root 001 seCS Sun Aug 20 00:15
sh root 001 seCS Sun Aug 20 00:15
0条评论