Body

在IBM HTTP server for i上有一整套功能完备的日志系统。按照各自用途的分类主要有以下几类:

(1) Error log

默认生成路径为/www/instance_name/logs/error_log。主要用于记录HTTP服务器运行过程中产生的错误信息,是排查问题时最重要的日志。

(2)Custom log

此类日志用于记录服务器接收到的每条HTTP请求的信息。可由用户自定义日志格式。对于使用IBM Web Administration for i的默认选项创建的HTTP实例,会自动为其配置一个名为access log的此类日志,其默认路径为/www/instance_name/logs/access_log。下文均以access log表示此类日志。

(3) Forensic log

用于法律分析的日志,同样是记录HTTP的请求。每条HTTP请求都会被分配一个唯一的ID,并且拥有严格和固定的格式。

通常HTTP服务器都需要长时间不间断的运行。如果缺乏有效的维护手段,那么各类日志文件的体积将会与日俱增(特别是access log与forensic log两类日志),最终将占用大量的空间而难以管理。因此本文将介绍对这些日志进行维护的一些技巧。

(一)限制单个日志文件的大小

在IBM Web Administration for i中选择一个HTTP实例,在左侧列表中点击"Logging"按钮。然后在右侧的"General Settings "选项卡中的Maximum log file size后指定单个日志文件的最大大小。该选项可以接受从0(无限制)到2GB的数值。当日志文件增大到该数值设定的大小后,将不会继续往其中写入数据。该选项对error log、access log和forensic log都具有效果。可以有效防止日志文件的无序增大。

(二)按周期生成日志

虽然方案(一)可以有效控制日志文件的增大,但仍然不是一个易于维护的方案。在实际应用中,我们通常会按一定的时间间隔生成新日志。从而可以在一定时期后删除旧的日志,而不影响新日志的工作。

同样是在"General Settings "选项卡中,在Log cycle后我们可以选择产生新日志文件的周期。对于日志产生频繁的服务器,可以选择Hourly方式每个小时产生一个新文件。如果请求数量不是太多的服务器,可以按“天”或者更长的周期生成。

启用日志生成周期后,原来设定的日志文件名也会相应发生改变。例如在Daily方式下,如果原日志名设置为access_log的话,那么实际产生的日志成将会类似于access_log.Q112051200的形式。如下图所示:

通过周期日志的设置,管理员可以定期删除过期的日志,以控制日志文件的总大小。但是最智能的日志管理方式还需要配合第(三)点的技术来实现。* 无论是否启用日志周期,第(一)点中的文件大小限制依然对单个日志文件有效。

(三)智能自动删除日志

在IBM HTTP server for i上的每个HTTP实例都有一个每天按时启动一次的计时器。在启用该计时器后,可以在每天的某个整点的时间对日志进行定期的处理。我们可以在"General Settings "选项卡中的Specify hour of the day log maintenance occurs中指定每天几点钟触发日志整理操作。如下图所示:

而在该计时器被触发时所执行的具体操作,则由LogMaint指令指定。我们以error log为例说明。同样是在Logging页面中,选择Error logs标签。可以看到两个输入项,分别是Expiration和Maximum cumulative size。

Expiration表示生成日期超过设定天数的日志将被全部删除。而Maximum cumulative size则表示当当前日志的大小之和*超过设定数值后,将从最旧的日志开始依次删除,直到大小之和小于所设定的数值。显然,该功能必须配合第(二)点介绍的周期日志使用。

* 即errorlog.Q112051300、errorlog.Q112051400……等所有同类日志都会被放在一起计算总大小

通过设定这两个参数,再配合前面设定的计时器时间设定,我们便可以智能地自动删除过期日志。而且该功能支持所有可以按周期生成的日志类型。如果在标签页上找不到相应的日志类型,我们可以直接在配置文件中设置,例如对于logs/forensic_log,我们可以在配置文件中添加如下指令:

LogMaintHour 3

LogMaint logs/forensic_log 7 2000000

这样在每天3点的时候,HTTP服务器将对logs目录下的所有forensic_log.QCYYMMDDHH文件进行统计,删除所有7天前的日志,并对剩下的日志大小进行统计,删除最旧的日志直到大小总和小于2000000个字节。

* 对于Forensic log的支持需要相应的PTF SI45531(IBM i 6.1)/SI45532(IBM i 7.1)的支持。Group PTF SF99368-level14(i 7.1)以及SF99115-level26(i 6.1)中已经包含上述PTF。请确保机器满足这些要求。

我们建议对于频繁生成的日志文件(如access log与forensic log)启用智能日志管理,通过结合第二点介绍的“按周期生成日志”以及第三点介绍的“自动智能删除旧日志”,可以将日志文件的总体大小控制在一个设定的范围内,同时减少人工维护的成本。

作者: Xu Meng

服务器维护需要log日志,IBM HTTP server for i的日志维护相关推荐

  1. 查看mysql日志大小,SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)

    SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很多的 ...

  2. SQL日志文件查看工具(Log Explorer for SQL Server v4.2)

    下载地址:http://download.csdn.net/source/2284248 1.Log Explorer for SQL Server v4.2.1 该软件我比较推荐的 安装完毕后,注册 ...

  3. 实验一:SQL server 2005高可用性之----日志传送

    如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/31/4751070.aspx SQL server 2005高可用性之日志传 ...

  4. mysql 事务日志备份_SQL Server恢复模式与事务日志备份

    在SQL Server中,数据库不能像Oracle数据库一样设置归档模式,但是可以进行事务日志备份,其作用等同于Oracle数据库的日志文件归档. SQL Server 备份和还原操作发生在数据库的恢 ...

  5. SQL Server中的尾日志备份和还原

    A tail-log backup is a special type of transaction log backup. In this type of backup, the log recor ...

  6. IBM Http Server 配置问题

    楼主happynight(泪) 2003-07-24 16:24:43 在 WebSphere / 非技术区 提问 最近安装了IBM   Http Server   1.3.19,可是打不开IBM   ...

  7. 各类web服务器 http access log获取用户和代理ip

    IIS.apache.nginx日志中获取访客真实IP的解决方案 http://bbs.jiasule.com/thread-3957-1-1.html 一.        IIS Web服务器解决方 ...

  8. linux主机服务器日志采集,Linux通过Rsyslog搭建集中日志服务器

    (一)Rsyslog简介 ryslog 是一个快速处理收集系统日志的程序,提供了高性能.安全功能和模块化设计.rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地. rsys ...

  9. mysql事务日志备份_事务日志备份 (SQL Server)

    事务日志备份 (SQL Server)Transaction Log Backups (SQL Server) 01/05/2018 本文内容 适用于:Applies to: SQL ServerSQ ...

  10. Stairway to Transaction Log Management in SQL Server, Level 5: Managing the Log in Full Recovery

    译者:薛朝鹏,张鹏辉 当事情进展顺利时,没有必要特别注意事务日志的功能或工作方式. 您只需要确信每个数据库都有正确的备份机制. 当出现问题时,了解事务日志对于采取纠正措施非常重要,尤其是在需要对数据库 ...

最新文章

  1. Java基础23-集合类2(Set接口,Iterator迭代器)
  2. 07-XML 文件注解开发
  3. 鸟哥的Linux私房菜(服务器)- 簡易 APT/YUM 伺服器設定
  4. C++中如何去掉std::string对象的首尾空格
  5. LeetCode 面试题 链表中倒数第K个点
  6. 删除出现次数最少字符串JAVA_牛客网——华为机试(题23:删除字符串中出现次数最少的字符)(Java)...
  7. 利用Seaborn库进行简单的画图
  8. python为mysql设置id自增长_python mysql自增字段AUTO_INCREMENT值的修改方式
  9. WordPress 安装主题时 提示 “无法创建目录”
  10. ftl有三种映射地址_FTL地址映射的方法及装置与流程
  11. 当BIM遇上GIS-无人机倾斜摄影三维建模(ContextCapture) 建设智慧城市方法详解
  12. 微信小程序入门--注册账号
  13. FLASH学习(一)
  14. iOS 中input隐藏输入光标
  15. android 编程app_2020年用于Android App开发的顶级编程语言
  16. 《缠中说禅108课》69:月线分段与上海大走势分析、预判
  17. mariadb无法update修改root密码ERROR 1348 (HY000): Column 'Password' is not updatable
  18. Vscode c与c++编译环境配置(.vscode),看这一篇就够了
  19. 探秘Google苏黎世办公室:放肆的享乐主义
  20. 【ceph】ceph osd blacklist cep黑名单|MDS问题分析

热门文章

  1. CMake实践(2)
  2. 思维导图软件列表(mind mapping software list)
  3. android edittext不可复制_【EditText】Android设置EditText不可编辑 | 学步园
  4. SpringCloud整合Feign的调用源码流程解析
  5. SpringSecurity OAuth2搭建微服务安全认证网关
  6. 【Amaple教程】4. 组件
  7. 跟我学习dubbo-简介(1)
  8. 调整数组使奇数全部都位于偶数前面
  9. Visual Studio使用技巧---(1-10)
  10. [Android] 开发一款软件我学到了些什么?