所属分类: linux&Unix 整理: FengNet.Com 更新日期:2008/5/15 12:58:08 阅读次数:6188

使用php-syslog-ng远程查看与管理系统日志


作为一个系统管理员,通常管理着数以百计的服务器和网络设备。如果在繁琐的工作之余,能方便、快捷的了解自己服务器的状况,确实会给自己的工作带来很大好处。 有很多途径能做到“了解自己服务器的状况”,比如用cacti和rrdtool,能忠实记录服务器的性能等指标。但是如果服务器挂了,或者登陆不上了,如何第一时间了解它出了什么问题呢?

本文主要介绍的是另外一个途径来方便的查询服务器的状况,即把众多服务器或者网络设备的syslog记录到一台服务器上面去。

————————————————————————————————

一、简单介绍

我们要用到的软件是syslog-ng和php-syslog-ng,前者的网站是http://www.balabit.com/,而phpsyslog-ng可以从sourceforge上面找到。

什么是syslog-ng? syslog-ng是”Balabit IT Security“公司的产品,不过也是一款“opensource”软件。它号称是“下一代”(next generation)的syslog,从功能上看,它的确比普通linux预装的syslog要强大,它有更好的消息过滤粒度,能提供UDP或TCP的listen,能与syslog服务无缝结合等等。详细可以到Balabit的网站上查看。

使用syslog-ng区组的系统架构可以参照下图:


点击打开新窗口

安装了syslog-ng和php-syslog-ng(当然还需要apache、php和mysql的支持)的机器作为这个系统的服务端,其它所有的服务器或者网络设备作为客户端, 通过udp协议向syslog-ng服务器发送syslog信息。syslog-ng服务器将这些log记录下来,记录为log文件或者insert到mysql数据库中(具体怎么做要看自己的syslog-ng配置了)。 其实php-syslog-ng唯一负责的只是显示mysql数据库中的log信息而已。

二、安装方法

apache、mysql、php的安装的就不多说了,如果你是使用debian的话,很轻松就会搞定。syslog-ng也是一样,如果你是使用debian,那么只需要输入:

apt-get install syslog-ng
系统即会自动帮你删除了原来的syslog服务,并生成一个完善的syslog-ng配置文件,取代旧的syslog的所有功能。 如果你是使用其它的linux或者bsd的话,那么我觉得下载一个tar包进行编译安装是一个不错的选择。

php-syslog-ng:
php-syslog-ng比起我从前第一次用它的时候有了一些改进,它现在有自己的安装页面,来完成数据库安装、配置文件的生成之类的工作,还是挺方便的。下载php-syslog-ng之后在apache中配置好,浏览器中打开install/index.php页面,一步一步的走下去就可以了。至于数据库的用户、密码之类的东西,自己确定就好。 php-syslog-ng目录下的子目录script里面有一些脚本需要运行:

syslog2mysql.sh --在该脚本中配置mysql用户名和密码(需insert权限),然后运行。该脚本的作用是将syslog-ng收集到的数据通过管道insert到mysql数据库中;
reloadcache.php -- 可以将其放到crontab中定时运行。该脚本的作用是,当有新的host的syslog信息发送到syslog-ng后,运行该脚本能及时更新host列表;
logrotate.php -- 应该是用来对syslog进行rotate的,不过其实有很多工具可以做这个事情,所以没有使用; 该目录下其它的脚本暂时没用到。

三、配置文件
1、syslog-ng的配置(server) 如果是debian的话,直接在/etc/syslog-ng/syslog-ng.conf配置文件的后面加上:

##for php-syslog-ng
#source src {
# unix-stream("/dev/log");
# internal();
#}; source net {
unix-stream("/dev/log");
internal();
udp(ip(0.0.0.0) port(514));
};

destination hosts {
file("/home/data/syslogs/$HOST/$FACILITY-$YEAR$MONTH$DAY" owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};

log {
source(net);
destination(hosts);
};

# Add the following to /etc/syslog-ng/syslog-ng.conf (or whereever the conf file is located on your system
# pipe messages to /var/log/mysql.pipe to be processed by mysql

destination d_mysql {
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( $HOST, $FACILITY, $PRIORITY, $LEVEL, $TAG, $YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC,
$PROGRAM, $MSG );\n") template-escape(yes));
};

filter f_mysql {
level(notice..emerg)
or facility(auth,authpriv)
and facility(cron);

};

log {
source(s_all);
filter(f_mysql);
destination(d_mysql);
};

log {
source(net);
destination(d_mysql);
};

如果是其它linux或者bsd的话,这里有完整的syslog-ng.conf配置文件下载。

2、syslog的配置(client):

只需

echo "*.notice;cron.none;authpriv.* @remote_IP" >> /etc/syslog.conf
/etc/init.d/sysklogd restart

即可。

四、解决错误

php-syslog-ng不知道是不是维护的人偷懒,我发现它的页面有两个地方错误:

1、表格式出错: include/regularresult.php文件的471行

echo "</td><td>";
应该注释掉; 否则html表格格式会出错。

2、图片链接错误:
修改

include/html_header.php
文件,在开头加入:

require_once config/config.php;
并将28行:

myDatePicker.toggleButton.imgPath = /images/buttons/;
改为

myDatePicker.toggleButton.imgPath = <?=SITEURL;?>/images/buttons/;
同理,将59行:

myDatePicker.toggleButton.imgPath = /images/buttons/;
改为

myDatePicker.toggleButton.imgPath = <?=SITEURL;?>/images/buttons/;
否则首页的选择日期的图片会出现404错误。


--------------------------------------------------------------------------------

相关文章
notify文件监控工具inotify-tools使用方法介绍 2015/9/25 10:19:02
Cisco路由器故障诊断技术详解 2014/2/8 23:20:14
TCP/UDP常见端口参考 2013/5/23 15:26:35
Cisco 交换机与路由器故障处理方法分享 2013/4/27 10:41:58
防恶意扫描 PortSentry保护Linux服务器 2011/10/23 13:08:21
POSTFIX邮局系统搭建全过程 2011/10/22 9:33:19
NetEye防火墙与Cisco路由器的安全问题 2010/4/5 11:50:04
运用Solaris的系统安全特性进行企业审计 2010/3/15 21:21:29
管理思科路由器的十大蠢事 2009/12/16 13:13:32
路由器崩溃故障排除 2009/2/2 12:44:19
理解掌握Cisco错误消息 2009/2/2 12:42:44
Linux系统日志记录到远程服务器简单配置 2008/9/28 16:17:23
loopback具体作用 2008/8/20 14:45:14
路由器的一般故障分类和排障步骤 2008/7/16 8:23:31
用Swatch做Linux日志分析 2008/6/1 17:59:36
改变网络接口的速度和协商方式的工具miitool 和ethtool 2008/6/1 17:50:37
HP小型机的信息的命令集 2008/5/15 18:26:59
wu-ftpd服务器配置手册 2008/4/27 8:16:31
vsftp配置大全---完整版 2008/4/27 8:13:22
Linux下一般最常用的工具wu-ftpd. 2008/4/27 8:04:14
在思科路由器上确定和跟踪DoS攻击源 2007/12/24 14:38:56
改变网络接口的速度和协商方式的工具miitool 和ethtool 2007/9/20 9:43:00
Linux 2.6.19.x 内核编译配置选项简介 2007/5/29 7:55:59
用rsync实现网站镜像和备份 2007/5/17 17:43:10
分类防范对Linux的DoS攻击 2007/5/10 14:46:31
Cisco IOS Cookbook 中文精简版第十八章日志 2007/4/2 9:36:07
Cisco IOS Cookbook 中文精简版第十七章 SNMP 2007/4/2 9:22:27
iptables防火墙配置工具ShoreWall的安装和使用实例 2007/3/22 10:32:05
JUNOS、IOS、VRP对比 2007/3/7 12:27:38
基于FreeBSD5.4全能服务器安装 2007/2/1 17:19:40
简单的bind 9 安装 2007/2/1 16:20:44
LINUX下配置DNS全文 2007/1/16 15:06:17
UNIX应急响应攻略 2006/12/14 13:41:20
Linux安全配置步骤简述 2006/12/14 13:36:24
信息技术日志分析产品安全检验规范 2006/12/14 10:31:54
理解Cisco错误消息 2006/11/28 9:14:05
排除路由器崩溃故障 2006/10/28 9:59:03
Catalyst 4006交换机的配置实例 2006/10/28 9:56:03
Cisco防火墙技术汇总 2006/10/28 9:50:56
Cisco网络设备的SNMP及Syslog配置参考 2006/9/13 19:29:36
MAC地址的访问控制 2006/9/13 19:28:58
Catalyst 4006交换机的配置实例 2006/8/9 17:01:46
UNIX网络系统的安全管理策略 2006/8/4 7:45:43
信息技术日志分析产品安全检验规范 2006/7/29 7:58:46
网络故障处理手册 2006/7/25 14:09:43
Solaris系统安全之审计 2006/7/22 17:26:03
Cisco路由器故障诊断技术(重新编辑) 2006/7/14 9:42:38
DNS服务器日志维护 2006/6/26 17:23:00
服务器的日志合并统计 2006/6/17 11:31:34
用snort和空IP做一个安全的log纪录服务器 2006/6/17 11:09:10
网络安全讲座之七:IDS系统 2006/5/24 19:45:52
网络安全讲座之四:账号安全 2006/5/24 19:42:35
Solaris基本安全配置规范 2006/5/24 11:14:30
网络专业人士笔记 2006/5/22 10:06:48
探查DNS服务器运行状况 2006/5/12 15:55:08
用Cisco产品和功能构建安全的网络 2006/5/10 10:37:05
vsftp配置大全 2006/5/6 18:17:32
Linux下配置完整安全的DHCP服务器详解 2006/4/30 12:46:51
用专用Linux日志服务器增强系统安全 2006/4/3 13:37:51
cisco四种类型的网络防火墙技术汇总 2006/3/20 12:59:53
HP-UX COMMAND 2006/1/6 15:13:17
HP-UX安全手册 2006/1/6 15:11:16
HP小型机的信息的命令集 2006/1/6 14:33:13
用Cisco产品和功能构建安全的网络 2006/1/4 13:46:58
多服务器的日志合并统计 2005/8/29 15:16:44
ARP地址解析协议详解及其漏洞分析 2005/8/19 8:29:37
Linux 2.4 Packet Filtering HOWTO 简体中文版 2005/8/19 8:27:48
Web服务器日志统计分析完全解决方案 2005/8/10 12:27:24
网络使用的学习总结 2005/8/10 8:27:09
CCNP-CIT中文笔记 完整版 2005/6/24 15:31:49
路由器安全配置速查表 2005/6/17 15:06:17
流量检测的几种方案 2005/6/17 14:59:54
把linux配置成pix 的日志主机 2005/6/3 12:07:51
Solaris 系统管理命令及相关技术中英文对照 2005/4/13 10:36:48
Solaris启动过程详解 2005/3/23 13:22:12
[Linux命令]进程查看 2004/9/9 9:47:05
Linux下硬盘分区的最佳方案 2004/9/1 10:24:46
常见的CatcOs错误消息在Cisco Catalyst 交换机 2004/8/29 12:29:00
CISCO网络安全 2004/7/26 8:42:25
CIT中文笔记 2004/7/15 11:52:42
Cisco路由器故障诊断技术 2004/5/26 14:16:19
使用路由器作流量检测的几个手段 2004/4/9 13:17:44
网络端口及其详解分页 2004/2/17 9:03:12
Snort 中文手册 2004/1/29 11:53:10
sudoers中文man文档 (特别推荐) 2004/1/24 19:22:56
安全的log纪录服务器 2004/1/24 19:17:43
LINUX新手入门及安装配置faq200(上) 2003/12/31 20:51:43
基于包过滤的FIREWALL的过滤法则 2003/11/27 9:26:01
使用图形客户端远程访问Linux服务器 2003/11/19 10:42:48
Cisco路由器是怎样被攻陷的------SolarWinds2002的简单使用 2003/10/23 10:42:37
理解Linux系统的日志 2003/8/27 13:41:13
Linux服务器的一些基本应用 2003/8/15 12:11:07
Debian GNU/Linux下的入侵检测系统 2003/8/12 8:41:10
快速建立一个入侵检测系统 2003/8/12 8:39:47
Sino-trade.com集群技术报告 2003/8/12 8:24:37
iptables基础,绝对的基础 2003/7/30 17:17:23
linux系统安全工具列表 2003/7/30 16:53:01
4006交换机(IOS版)简明配置维护手册 2003/7/28 18:02:12
Solaris 问答集 2003/7/19 19:06:09
SOLARIS 9 FTP server configuration 2003/7/15 8:43:17
安装完系统后需要做的一些事 2003/7/15 8:37:58
系统平台安装操作手册 SUN Fire 280安装配置手册 2003/7/15 8:36:18
Solaris高级系统管理员指南!(某公司内部培训教材) 2003/7/15 8:28:23
DNS配置全文 2003/7/14 10:35:53
理解 Linux 配置文件 2003/7/4 9:25:55
Linux 组网入门 2003/5/25 20:56:32
Linux 2.4内核下新型包过滤结构的使用 2003/5/21 9:59:12
Linux 2.4中netfilter框架实现 2003/5/13 9:35:24
Redhat Linux 8.0工作站服务加载列表解释 2003/5/5 13:33:38
Linux服务器的一些基本应用 2003/3/24 10:43:09
Linux简明系统维护手册 2003/3/11 18:35:40
Netfilter的高级使用 2003/2/24 13:25:49
简易防火墙建置与流量统计之五 2003/2/22 14:45:12
理解Linux系统的日志 2003/2/22 14:34:13
unix日志文件安全小议 2003/2/21 22:06:40
Linux简明系统维护手册3 2003/2/18 19:44:15
Linux简明系统维护手册2 2003/2/18 19:42:27
简易防火墙建置与流量统计 2003/2/18 14:54:01
用iptales实现包过虑型防火墙 2003/1/15 16:55:53
Netfilter/Iptables的防火墙功能介绍 4 2003/1/12 16:21:46
Netfilter/Iptables的防火墙功能介绍 2 2003/1/12 16:19:33
Netfilter的高级使用 2003/1/12 16:00:27
理解防火墙及防火墙实例系列: 第二部分 unix 下的防火墙软件 ipfilter 2003/1/12 15:47:31


感性空间
设计&运维
网络技术
休闲娱乐
NetFilter
linux&Unix
网络安全
程序空间
软件考试
RFC&ISO
规划&规范
虚拟&存储
Apple技巧
云计算&大数据



文章搜索



站内搜索