-
Rsyslog+LogAnalyzer+MySQL
部署日志服务器
一、安装并设置
lamp
环境
1
、
MySQL
数据库安装:(参考
MySQL
安装文档)
2
、编译安装源码版
apache
先安装
a
pr
,需要
1.4.0
以上的版本
p>
# tar xf 2 -C /usr/src/
# cd
/usr/src/apr-1.5.2
# ./configure
--apr
报错解决
rm: cannot remove `libtoolT': No such
file or directory
:
在
vim
configure
里面
RM='$$RM
-f'
这里的
p>
$$RM
后面一定有一个空格。
如果后面没有空格,直接连接减号,就依然会报错。把
RM='$$RM'<
/p>
改为
RM='$$RM -f'
# make make
install
# tar xf 2 -C
/usr/src/
# cd
/usr/src/apr-util-1.5.4/
# ./configure --with-
apr=/usr/local/apr/bin/apr-1-config
# make make
install
# echo
/usr/local/apr/lib >> /etc/.d/
# ldconfig
----------------------------------
# tar xf 2 -C /usr/src/
# cd /usr/src/httpd-2.4.20/
#
./configure
--enable-modules=all
--enable-mods-shared=all
--enable-so
--enable-rewrite
--with-mpm=prefork
--with-apr-
util=/usr/local/apr/bin/apu-1-config
--
错误
:
可能会出现下面的错误,表示<
/p>
pcre-
devel
没安装;解决方法
:yum install
pcre-devel
后,再用上面参数再编译
configure: error: pcre-config for
libpcre not found. PCRE is required and available
from /
# make
#
make install
# ls /usr/local/apache2/
--<
/p>
确认这个目录产生后,说明
apache
编译安装成功
bin
build
cgi-bin
conf
error
htdocs
icons
include
logs
man
manual
modules
3
、编译源码安装
php
# tar xf -C /usr/src/
# cd
/usr/src/php-5.6.21
#
./configure
--with-
apxs2=/usr/local/apache2/bin/apxs
--with-mysql=mysqlnd
--with-
mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-freetype-dir
--enable-opcache
# make
--make
成功后,会显示让你<
/p>
make test,
不用做
第
1
页
共
8
页
--with-
apr=/usr/local/apr/bin/apr-1-config
--with-openssl
--with-curl
--with-zlib
--enable-zip
--with-gd
--with-jpeg-dir
--with-png-dir
--enable-sockets
-with-
xmlrpc
--enable-soap
--enable-shmop
--enable-
mbstring
--enable-mbregex
--enable-pcntl
--enable-
sysvmsg --enable-sysvsem --enable-sysvshm
--enable-calendar --enable-bcmath --with-gettext
# make install
# ls
/usr/local/apache2/modules/
--
确认有这个
.so
模块文件,就表示编译
< br>php
成功
---------------------------------------
如果
make
报类似下面的错误的话;
或者你第一次
make
不成功,
第二次重做,建议你删除
/usr/src/php-5.6.11<
/p>
源码
目录,重新解压,并使用
make
ZEND_EXTRA_LIBS='-liconv'
来编译
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1
--
需要使用下面的参数来编译
make ZEND_EXTRA_LIBS='-liconv'
make install
---------------
-------------------------------------
4
、
lamp
环境配置:
配置中文优先支持
#
vim /usr/local/apache2/conf/
LoadModule
negotiation_module modules/mod_
# vim /usr/local/apache2/conf/extra/
DefaultLanguage zh-CN
--
打开注释,默认语言集改为中文
LanguagePriority zh-CN en ca cs da de
el eo es et fr he hr it ja ko ltz nl nn no pl pt
pt-BR ru sv tr zh-TW
--
语言集优先集,把
zh-CN
写到前面
------------
--------------------------------------------------
---------------------
配置网站家目录
# vim
/usr/local/apache2/conf/
DocumentRoot
和 <
br>这两句的意思是以
建立
apache
家目录
# mkdir /web
④配置
apache
对
php
支持
也就是配置
apache
php
的联系
# vim /usr/local/apache2/conf/
LoadModule php5_module
modules/
AddHandler php5-script
.php
AddType text/html
.php
--
.php
结尾的文件都认为是
php
程序文件,注意两句话的
.php
前面都是有一个空格的
---------
--------------------------------------------------
---------------------------
默认主页加上
,
并放在
前
# vim /usr/local/apache2/conf/
DirectoryIndex
-----------
--------------------------------------------------
----------------------------
⑤启动
apache
#
/usr/local/apache2/bin/apachectl start
第
2
页
共
8
页
--
此模块打开注释
Include conf/extra/
--
打开此选项,扩展配置文件就生效了
--
修改网站家目录
--
相应的目录容器那里也要修改
<
/p>
----------------------------------------
-------------------------------------------
--
找到这一句,在这句下面加上两句
AH00557: httpd: apr_sockaddr_info_get()
failed for
AH00558: httpd: Could not
reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set
the
'ServerName' directive globally to suppress this
message
--
启动时报错:在
hosts
中关联本地计算机名。
-------------------
简化
apache
启动和开机启动
cp /usr/local/apache2/bin/apachectl
/etc/init.d/apache
--
拷过去,因为默
认为
755
有执行权限,所以我们不用再改权限
-----------------------------
apache
设为开机启动
vim /etc/init.d/apache
在
#!/bin/sh
后面加入下面两行
#chkconfig:345 85 15
#description: Start and stops the
Apache HTTP Server.
-------------------
--------------------------------------------------
---
chkconfig apache on
⑥去网站家目录下写一个
php
的测试页
p>
# vim /web/
phpinfo();
?>
然后使用浏览器访问测试页,看是否支持
php
http://IP/
------
--------------------------------------------------
----------------------
⑦拷贝
PH
P
模块配置文件
# cp
/usr/src/php-5.6.21/-production /usr/local/lib/
# vim /usr/local/lib/
--<
/p>
查找到下面的四个参数,修改成对应的
[MySQL]
1151 t_port = 3306 <
/p>
--
改成对应的
mysql
的端口
1156 t_socket =
/mysqldata/
--<
/p>
对应的
socket
文件地址
[MySQLi]
1210 t_port
= 3306
1215 t_socket = /mysqldata/
重启下
apache
,
再访问
,
看是否仍然支持
,
可以图形看到
mysql
和
mysqli
里的端口和
socke
t
都变成了修改
的项了
(--
注意
修改后,需要重
启
apache
使之生效
)
===========================================
===========
二、检查并安装服务器端软件
1
检查是否安装了
rsyslog<
/p>
软件
# rpm -qa|grep
rsyslog
--
默认系统都安装了该软件
第
3
页
共
8
页
2
安装
rsyslog
连接
MySQL
数据库的模块
# yum install rsyslog-mysql
–
y
rsyslog-mysql
为
rsyslog
--
将日志传送到
MySQL
数据库的一个模块,这里必须安装。
==================================================
=======
三、配置服务器端
1
导入
rsyslog-mysql
数据库文件
# cd
/usr/share/doc/rsyslog-mysql-5.8.10/
#
mysql -uroot -pabc123 <
//
查看做了哪些操作
# mysql
–
p
mysql> show
databases;
mysql> show tables;
< br>---
导入数据库操作创建了
Syslog
库并在该库中创建了两张空表
SystemEvents
p>
和
SystemEventsProperties
。
----------------------
----------------------------------------
2
创建
rsyslog
用户在
mysql
下的相关权限
< br>
# mysql
–
p
mysql> grant
all on Syslog.* to rsyslog@localhost identified by
'123456';
mysql> flush privileges;
mysql> exit
----------------
--------------------------------------------------
-----
3
配置服务端支持
rsyslog-mysql
模块,并开启
UDP
服务端口获取网内其他
LINUX
系统日志
#
vim /etc/
$$ModLoad ommysql
*.*
:ommysql:localhost,Syslog,rsyslog,123456
//
在
#### MODULES ####
下添加上面两行。注:
日志无法写入数据库是,把
localhost
改为
127.0.0.1
说明:
localhost
表示本地主机,
Syslog
为数据库名,
rsyslog
为数据
库的用户,
123456
为该用户密码。
-------------------------------------
----------------------------------------
4
开启相关日志模块
# vi /etc/
$$ModLoad immark
#im
mark
是模块名,支持日志标记
$$ModLoad imudp
#imupd
是模块名,支持
udp
协议
$$UDPServerRun 514
#
允许<
/p>
514
端口接收使用
UDP
和
TCP
协议转发过来的日志
-------------------------------------
------------------------------------
5
重启
rsyslog
服务
# /etc/init.d/rsyslog restart
三、配置客户端
1
检查
rsyslog
是否安装
# rpm
-qa|grep rsyslog
2
配置
rsyslog
客户端发送本地日志到服务端
#
vim /etc/
*.* @192.168.1.243
--
行尾
新增上面这行内容,即客户端将本地日志发送到服务器。
3
重启
rsyslog
服务
# /etc/init.d/rsyslog restart
4
编辑
/etc/bashrc
p>
,将客户端执行的所有命令写入系统日志
/var/log/mes
sages
中。
第
4
页
共
8
页