转载请注明:linux运维之家 www.linuxpub.net
Redhat6.0部署日志服务器之rsyslog+loganalyzer
1 系统需求
前期环境部署lamp ,下载rsyslog+loganalyzer
log服务器 CentOS 6.032位 ip:192.168.1.105
安装lamp环境
[root@bogon html]# yum -y install httpd* mysql* php php-mysqlphp-common php-gd php-mbstring php-mcrypt php-devel php-xml gd*
整合Apache与PHP及系统初化配置
vi /etc/httpd/conf/httpd.conf
添加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
添加 index.php
2.下载需要的源码包软件
我的环境用的是centos6.0系统预装了rsyslog服务,但是默认应该不支持数据库,所以要先卸载,我为了方便直接把rsyslog启动脚本复制一份,等下面编译成功rsyslog支持数据库后,直接把rsyslog脚本放到/etc/init.d/下面即可,省略了创建rsyslog脚本的麻烦
rsyslog-5.6.2.tar.gz
loganalyzer-3.0.4.tar.gz
3.安装rsyslog
[root@bogon 桌面]# tar zxvf rsyslog-5.6.2.tar.gz
[root@bogon 桌面]# cdrsyslog-5.6.2
[root@bogon rsyslog-5.6.2]# ./configure --enable-mysql
到这里出错如图
解决方法是
[root@hn rsyslog-5.6.2]# yum install mysql-devel
[root@bogon rsyslog-5.6.2]# ./configure --enable-mysql
[root@bogon rsyslog-5.6.2]# make
[root@bogon rsyslog-5.6.2]# make install
[root@bogon rsyslog-5.6.2]# ln -s /usr/local/sbin/rsyslogd /sbin/rsyslogd
[root@bogon rsyslog-5.6.2]# cp rsyslog.conf /etc/
4 修改rsyslog 的主配置文件
修改如下:
[root@bogon rsyslog-5.6.2]# vi /etc/rsyslog.conf
添加
$ModLoad ommysql #添加对数据库的支持
*.* :ommysql:localhost,Syslog,root,12345
# 注 localhost 字节是database-server
Syslog 是数据中database-name
root 是database-userid
12345 是root用户登录mysql的密码
#该行的格式
#*.* :ommysql:database-server,database-name,database-userid,database-password
########## 下面的配置接受远程主机的日志
UDP Syslog Server:
$ModLoad imudp.so # provides UDP syslog reception
$UDPServerRun 514 # start a UDP syslog server at standard port 514
5 关闭系统自带的syslog 进程
#service syslog stop
#chkconfig syslog off
[root@bogon rsyslog-5.6.2]# chkconfig rsyslog on
[root@bogon rsyslog-5.6.2]# chkconfig --level 345 rsyslog on
导入数据库
[root@bogon rsyslog-5.6.2]# cd plugins/ommysql/
[root@bogon ommysql]# mysql -uroot -p <createDB.sql
[root@bogon rsyslog-5.6.2]# service rsyslog start
启动系统日志记录器: [确定]
检查数据库是否有相应数据
[root@bogon ommysql]# mysql -uroot -p
Enter password:
mysql> use Syslog;
Database changed
mysql> select * from SystemEvents;
如果有数据,则表示成功
创建syslog用户访问Syslog
mysql> grant all on Syslog.* to syslog@'localhost' identified by 'syslog';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
mysql> \q
##################安装loganalyzer
[root@bogon 桌面]# tar zxvf loganalyzer-3.0.4.tar.gz
[root@bogon 桌面]# mkdir/var/www/syslog
[root@bogon 桌面]# cp -Rloganalyzer-3.0.4/src/* /var/www/syslog/
[root@bogon 桌面]# chown -Rapache:apache /var/www/syslog
[root@bogon www]# cd /root/桌面/loganalyzer-3.0.4
[root@bogon loganalyzer-3.0.4]# cd contrib/
[root@bogon contrib]# cp * /var/www/syslog
[root@bogon contrib]# cd /var/www/syslog
[root@bogon syslog]# chmod 755 *.sh
[root@bogon syslog]# ./configure.sh
[root@bogon syslog]# ./secure.sh
[root@bogon syslog]# chmod 666 config.php
[root@bogon syslog]# chown -R daemon:daemon *
配置httpd服务
[root@bogon syslog]# vi /etc/httpd/conf/httpd.conf
<VirtualHost *:8080>
ServerAdminwebmaster@dummy-host.example.com
DocumentRoot /var/www/syslog/
ServerName bbs.linuxpub.net
ErrorLog logs/dummy-host.example.com-error_log
CustomLoglogs/dummy-host.example.com-access_log common
</VirtualHost>
[root@bogon syslog]# service httpdrestart
输入http://localhost:8080/
点击红框选出来的here
一定要注意数据库名字为Syslog,表名称为SystemEvents
特别注意
这里一定要注意数据库名字为Syslog,表名称为SystemEvents 注意大小写 就这里郁闷了我两三天
现在我们来看下成果,当然这只是这种技术的基本操作,具体的还要慢慢研究
linux客户端部署:
vim /etc/syslog.conf
在最后面添加:
*.* @192.168.1.2//这是UDP协议时的格式
*.* @@192.168.1.2//这是TCP协议时的格式
保存退出,重启syslog服务
service syslog restart
Windows客户端安装需要下载的第三方工具
1. eventlog-to-syslog (evtsys): http://code.google.com/p/eventlog-to-syslog/
2. winlogd : http://edoceo.com/creo/winlogd
设置 winlogd--
将 winlogd.exe 放至 %systemroot%\system32\
CMD执行-----生成服务 %systemroot%\system32\winlogd-i
提示错误,需要安装net2.0或者更高版本,我的环境下安装的是net3版本,net安装这里不在叙述安装成服务成功,如图
以下为注册表文件配置相关信息
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winlogd\Parameters]
"Facility"="local4"
"Port"=dword:00000202
“Server”=192.168.110.128
打开windows服务管理,启动新安装的winlogd服务
如果需要卸载服务的话在命令行
卸载服务:%systemroot%\system32\winlogd-u
设置 evtsys --
从官网下载最新匹配压缩包,
解压將 evtsys.dll 及 evtsys.exe 放至 %systemroot%\system32\
CMD安装:
%systemroot%\system32\evtsys -i -h 192.168.110.128
安装过后一样cmd运行services.msc 打开服务管理,启动evtsys服务
如果需要卸载服务使用下面命令行即可
%systemroot%\system32\evtsys -u
下面来看我们的成果
先看下windows上的日志
rsyslog服务器上的日志,和windows上一样的话我们的实验就成功反之亦然
实验成功,实验出现一个乱码问题,没有截图,也就是windows上的中文日志在rsyslog上会显示乱码,解决方法是修改functions_common.php以支持中文,大约在1082行
vi /var/www/html/loganalyzer/include/functions_common.php
将
return htmlentities($myStr);
修改为
return htmlspecialchars($myStr);
然后重启rsyslog服务,这时即可支持中文
在交换机上的配置:
华为的:
info-center loghost 1.1.1.1 facility local4 //local4要和rsyslog.conf 里配置的一致,192.168.1.2为你的syslog服务器地址记得要改啊
info-center loghost source Vlan-interface 1//你的网管VLAN接口,要改的
info-center source SHELL channel loghost log level notifications//我只想要操作日志,其他的不关心,如果你想要更多,请更改
思科的:
logging 1.1.1.1(配置 syslog服务器地址,可以定义多个)
service timestamps debug datetime localtime show-timezone msec
service timestamps log datetime localtime show-timezone msec (syslog 信息包含时间戳) logging facility local4 (定义 facility 级别,缺省为local7,可以设置从 local0 到 local7)
logging trap warning (定义severity 级别缺省为 infor 级别)
此时在服务器上就可以看到相关服务器的日志信息了。