Linux系统存储交换机日志
日志记录是为系统设备在运行过程中报告其运行情况而设的, 为了保证系统正常运行, 解决每一天可能遇到的各种各样的问题, 网络管理员必须认真地读取日志记录。目前公司系统路由器共有50 台左右, 均为Cisco 路由器, 使用show log 命令来查看日志, 但将所有的路由器逐个查看是非常费时费力的。由于Cisco 路由器存储日志记录的缓存很小(默认是4 KB) , 一条记录的保存时间一般只有几分钟, 缓存器以先进先出的队列模式处理日志记录, 最早的记录将被刷新, 一些重要的日志记录有可能被覆盖。因此应该建立日志管理服务器, 将所有路由器的日志记录汇总, 便于管理和查询, 及时发现路由器在运行过程中出现的问题, 以保证MIS 系统正常运行。
1 建立过程
Syslog 是一种运行在UNIX 和LINUX 操作系统上的日志工具。它能够接收远程系统的日志记录, 在一个日志中按时间顺序处理包含多个系统的记录, 并以文件形式存盘。同时不需要连接多个系统, 就可以在一个位置查看所有的记录。Syslog 使用UDP 作为传输协议, 通过目的端口514 , 将所有路由器的日志管理配置发送到安装了Syslog 软件系统的服务器, Syslog 服务器自动接收日志数据并写到日志文件中, 存储外部路由器日志的日志文件通常存放在该服务器“/ var/ log”目录下的messages 文件中。为了查看日志文件的内容, 必须要有“Root”权限。日志文件中的信息很重要, 只能允许超级用户访问这些文件。
2 日志文件
日志文件是纯文本文件, 每1 行就是1 个消息。1 个消息是由下述4 个域的固定格式组成, 只要是在Linux 下, 能够处理纯文本的工具都可用来查看日志文件。
2.1 时间标签( Timestamp) 。表示消息发出的日期和时间, 即使用服务器的时间。在创建日志时路由器的时间被忽略, 使用服务器的时间可以作为一个单一标准, 而不必检查所有路由器的时间是否一样。
2.2 主机名(Hostname) 和日志ID。主机名是路由器发送日志的端口IP 地址, 表示生成消息的设备名字。如果只有1 台计算机,主机名就可以忽
略, 但是在网络环境中, 使用Syslog 就可以区分不同主机发送的消息。在IP 地址后面的数字表示日志ID 号, Cisco 路由器每生成一个日志记录就将日志ID 号加1 。
3 系统配置
3.1 服务器配置
硬件配置: 采用奔腾4 2.8GHz CPU、内存1G 或更高配置的PC 机。
操作系统: Redhat Linux As 5 Updata 2
将服务器连接网络, 设置IP 地址。例如:10.32.2.1 。Syslog 服务器的启动程序是Syslogd 。正常启动时, 它并不接收来自网络的消息,必须使用-r 的参数初始化Syslog 服务器, 启动步骤如下。
1. 首先打开服务器用“root”用户登陆;
2. 点击开始菜单“运行命令”项, 在命令框输入“syslogd -r”命令, 点击运行;
3. 查看/ var/ log/ messages 文件内是否产生了一条启动消息
Sep 25 14 : 44 : 05 localhost syslogd 1.4.1 :restart ;
4. 运行“终端”程序,即在(root@localhost root)# 提示符后,键入“netstat -a more”,回车后查看是否有“ udp 0 0 * ∶syslog * ∶* ”行,如果有,Syslog 服务器就启动成功。
3.2 路由器配置
在全局模式下输入下列命令。
router (config) # logging .
router (config) # logging 10.32.2.1
然后,使用“CTRL^Z”退出全局模式,路由器就开始转发其日志记录。(注:Cisco 路由器可以向5 台日志服务器同时发送日志消息)
3.3 配置测试
在路由器上输入2 条命令( router # config t ,router (config) # exit ) ,即可在服务器/ var/ log/ messages 文件内产生1 条消息: Sep 25 14:47:22 10.32.2.1 66:4w0d:%SYS-5-CONFIG I:Configured from console by vty0 (172.16.2.1)这说明日志服务器已经开始接收路由器的日志记录,系统配置成功。
4 查看日志文件
在“终端”程序窗口内,用像More 或Less 一样的分页显示程序,或者用Grep 命令查找特定的消息。绝对不要使用文本编辑器打开文件,否则易降低系统性能,而且不允许更改日志文件。以下提供几种查询方式。
方式1 :
分页显示日志文件。可以使用以下命令:
(root@localhost root)#more /var/log/messages
(root@localhost root)#less /var/log/messages
其中less 命令可以上下滚动文件,并可按字符串查找记录。
方式2 :
从日志文件中提取单个设备日志记录。例如:查找10.32.2.1 路由器的记录是否保存到router.txt 文件中时,就输入
(root@localhost root)# grep '10.32.2.1' /var/log/messages>router.txt
5 应用
通过查看日志记录中的各种信息,可以及时了解各个路由器的状态及各种突发事件,并且还能跟踪线路故障,例如以下这一条记录:
Sep 28 01:25:32 10.32.2.1 410:3w1d:%LINEPRO TO-5 UPDOWN:Line protocol . Interface Serial0,changed state to down这条记录指28 日01:25;32, 位于10.32.2.1 的路由器的串行接口0 的协议级中断,这反映了线路上的所有通信协议都失败了,虽然不能准确地知道故障原因,但可以分析出串行接口和相连的路由器之间的线路有问题。
本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/127050,如需转载请自行联系原作者