实验:用loganalyzer实现web浏览器访问日志
来源:互联网 发布:京东网络司法拍卖平台 编辑:程序博客网 时间:2024/05/21 03:55
一:实验环境;
1、使用LAMP实现web服务器访问日志;
2、A:Centos 6;ip:172.17.250.109 ---》mariadb
B:Centos 6;ip:172.17.250.106 ---》rsyslog、rsyslog-mysql(Centos 6以后的版本)
C:Centos 7;ip:172.17.253.35 ----》httpd、php-fpm、php-gd、php-mysql
即,将数据库和日志分别放在不同机器上,实现远程查看管理日志的功能,然后有另一台机器是web服务器为远程web访问日志响应资源(即做反向代理),若是访问静态的页面,web服务器利用Apache的httpd直接响应,但若是访问像日志这种动态的页面的时候,就需要借助FCGI(快速通用网关接口)协议传给php运行,,若果需要访问数据库的话,php去访问数据库,然后再将结果变成静态页面传给httpd,httpd再去响应客户端,在这里用的是php的独立方式php-fpm;并且与Apache服务放在一台机器上;
3、使用loganalyzer程序实现web查看日志的功能;loganalyzer是一个编好的程序,直接拿来用就好了;
二:实验步骤;
1、B机器上;
用yum安装rsyslog;首先需要将yum配好;我的yum源是这样的;
[root@B ~]# cat /etc/yum.repos.d/sjj.repo [base1]name=Centos 6baseurl=file:///media/CentOS_6.9_Finalgpgcheck=0[epel]name=Centos 6.9baseurl=http://172.17.0.1/fedora-epel/6/x86_64/gpgcheck=0[root@B ~]#
[root@B ~]# yum install rsyslog rsyslog-mysql -y #将两个一起安装一下;其中安装rsyslog-mysql时会有一个创建数据库的一个脚本/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql数据库文件生成;
root@B ~]# scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 172.17.250.109: #将这个数据库文件传到A机器上,用于创建数据库然后定义配置文件;
[root@B ~]# vim /etc/rsyslog.conf #### MODULES ####$ModLoad ommysql #在MODULES添加上去的rsyslog-mysql的模块#### RULES ####*.info;mail.none;authpriv.none;cron.none :ommysql:172.17.250.109,Syslog,loguser,magedu #在RULES里改这一行为后面的格式;其中Syslog是数据库名,loguser是在A中创建授权的用户及“magedu”密码,这些都是利用传到A上的数据库脚本自动创建的
[root@B ~]# service rsyslog start #启动rsyslog服务
2、A机器上;
用逻辑卷安装二进制mariadb数据库;
1)、创建逻辑卷;
先加一块200G的硬盘(为了给数据库足够大的空间,用整块盘做数据库);然后执行命令使其生效;
[root@A ~]# echo '- - -' > /sys/class/scsi_host/host0/scan #有时候也可能是host2,两个都试一下接下来开始创建逻辑卷;
[root@A ~]# pvcreate /dev/sdb #创建pv物理卷[root@A ~]# vgcreate vg_mysqldb /dev/sdb #创建vg卷组[root@A ~]# lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb #创建lv逻辑卷,将所有的空间都分给它
[root@A ~]# mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /data/mysql #将其格式化,并设卷标为/data/mysql挂载;
[root@A ~]# mkdir -p /data/mysql #创建一个目录作为挂载点;[root@A ~]# vim /etc/fstab #写到挂载文件里,使其永远生效/dev/vg_mysqldb/lv_mysqldb /data/mysql ext4 defaults 0 0
[root@A ~]# tune2fs -o acl /dev/vg_mysqldb/lv_mysqldb #可以加上acl权限(也可以直接写在挂载文件default后面)
[root@A ~]# mount -a #使/etc/fstab文件里没有挂载的立即挂载生效
[root@A ~]# chown mysql /data/mysql/ #改变/data/mysql的所属人,使mysql在其下可以创建或删除文件(注意若mysql用户不存在要先创建一下)2)、安装二进制mariadb;(可以参考我的博客http://blog.csdn.net/oh_on/article/details/78326030;这里就简单说一下步骤,不细说了*-*)
[root@A ~]# tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/ #解压到指定目录[root@A /usr/local/mysql]# cd /usr/local/[root@A /usr/local/mysql]# mv mariadb-5.5.57-linux-x86_64/ mysql #进去后,改名为mysql(这里我用的mv,也可以创建软连接)[root@A /usr/local/mysql]# cd mysql/[root@A /usr/local/mysql]# ./scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql #生成数据库[root@A /usr/local/mysql]# mkdir /etc/mysql[root@A /usr/local/mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf #定义配置文件,名字必须是my.cnf
[root@A /usr/local/mysql]# vim /etc/mysql/my.cnf #在配置文件里的[mysqld]下加上下面三行[mysqld]datadir = /data/mysqlinnodb_file_per_table = onskip_name_resolve = on[root@A /usr/local/mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝服务脚本[root@A /usr/local/mysql]# chkconfig --list mysqld #检查是否已添加服务,若没有的话用下面的命令添加一下[root@A /usr/local/mysql]# chkconfig --add mysqld[root@A /usr/local/mysql]# service mysqld start #启动mysqld服务,这里会报错,找不到/var/log/mysqld.log日志文件[root@A /usr/local/mysql]# touch /var/log/mysqld.log #创建日志文件,并将所属人改为mysql;然后启动服务就可以啦[root@A /usr/local/mysql]# chown mysql /var/log/mysqld.log
[root@A /usr/local/mysql]# service mysqld start [root@A /usr/local/mysql]# mysql_secure_installation #跑安全脚本,参考http://blog.csdn.net/oh_on/article/details/78326030博客然后利用B上传来的创建数据库脚本文件生成数据库;
[root@A /usr/local/mysql]# cd #因为传的时候直接放在了家目录下,所以要回到家目录下执行,或者写绝对路径也行[root@A ~]# mysql -uroot -pmagedu < createDB.sql #密码是跑安全脚本时设定的,[root@A ~]#
[root@A ~]# mysql -uroot -pmagedu #可以登陆上查看一下是否生成Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 10Server version: 5.5.57-MariaDB MariaDB ServerCopyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases;+---------------------+| Database |+---------------------+| information_schema || Syslog | #可以看到Syslog数据库,就是脚本生成的数据库| #mysql50#lost+found || mysql || performance_schema |+---------------------+5 rows in set (0.01 sec)mysql> use Syslog #进去这个数据库查看一下里面自动生成的表Database changedmysql> show tables -> ;+------------------------+| Tables_in_Syslog |+------------------------+| SystemEvents || SystemEventsProperties |+------------------------+2 rows in set (0.00 sec)
mysql> grant all on Syslog.* to 'loguser'@'172.17.250.106' identified by 'magedu'; #然后授权;给B机器上的loguser,让其可以用magedu密码登录管理数据库Syslog上所有选项
mysql> grant select on Syslog.* to 'loguser'@'172.17.253.35' identified by 'magedu'; #也可以先给C机器也授权,但只给它查询的功能
2、在C机器上;
编译安装httpd在博客http://blog.csdn.net/oh_on/article/details/78326023中有详细介绍,这次我用yum安装
在用yum安装之前首先确保yum源配好;我的yum源如下,配了一个base和一个epel;
[root@c ~]# cat /etc/yum.repos.d/sjj.repo [base]name= Centos 7baseurl=file:///run/media/root/CentOS\ 7\ x86_64gpgcheck=0[epel]name=Centos 7.1baseurl=http://172.17.0.1/fedora-epel/7/x86_64/gpgcheck=0[root@c ~]#
[root@c ~]# yum install httpd php-mysql php-gd -y #将所需要的包一起安装一下;php-mysql显而易见是与数据库相关的,php-gd是图形包,1)、接下来就编译安装php;
[root@c ~]# tar xvf php-5.6.31.tar.xz #解压缩并且进入目录下[root@c ~]# cd php-5.6.31/[root@c ~/php-5.6.31]# yum install bzip2-devel libxml2-devel libmcrypt-devel -y #安装一些相关包(这三个包都是epel源的),要不然在编译时会报错,到时候按照报错再装也行[root@c ~/php-5.6.31]# ./configure --prefix=/app/php --with-mysql --with-openssl --with-mysqli --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php/ --with-config-file-scan-dir=/etc/php.d --with-bz2
#其中这些后面都可以接目录的,因为我的数据库建在另一台机器上,所以-with-mysql和--with-mysqli后面没有接路径,而是直接启用此功能就行了;并且/etc/php需要手动创建,存放配置文件的
[root@c ~/php-5.6.31]# make && make install #安装[root@c ~/php-5.6.31]# mkdir /etc/php[root@c ~/php-5.6.31]# cp php.ini-production /etc/php/php.ini #拷贝配置文件,用商业版(production)[root@c ~/php-5.6.31]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #将服务脚本拷贝到相应目录下[root@c ~/php-5.6.31]# ll /etc/init.d/php-fpm -rw-r--r--. 1 root root 2348 Oct 29 11:02 /etc/init.d/php-fpm[root@c ~/php-5.6.31]# chmod +x /etc/init.d/php-fpm #因为是个服务脚本,所以赋予其执行权限[root@c ~/php-5.6.31]# ll /etc/init.d/php-fpm-rwxr-xr-x. 1 root root 2348 Oct 29 11:02 /etc/init.d/php-fpm[root@c ~/php-5.6.31]# chkconfig --add php-fpm #并且将ph-fpm添加到服务里[root@c ~/php-5.6.31]# chkconfig --list php-fpm #查看一下是否添加成功
[root@c ~/php-5.6.31]# cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf #改一下配置文件名;因为在服务启动的时候读的配置文件名字php-fpm.conf;若不改名的话启动php-fpm服务时会报错2)、配置httpd支持php
[root@c ~/php-5.6.31]# vim /etc/httpd/conf/httpd.conf <IfModule dir_module> DirectoryIndex index.php index.html #在配置文件中添加如下行里的index.php</IfModule>
ProxyRequests Off #还有在最后加上下面的两行ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
[root@c ~/php-5.6.31]# systemctl start php-fpm #启动php-fpm服务(Centos 7里的新命令systemctl,相当于service)3)、准备loganalyzer;
首先找到官网下载一个压缩包;这里我用的是我们马哥教育提供的服务器上下载的;loganalyzer-4.1.5.tar.gz
[root@c ~]# tar xvf loganalyzer-4.1.5.tar.gz #因为我直接下载到家目录下了,所以就去家目录下解压缩[root@c ~]# cd loganalyzer-4.1.5/[root@c ~/loganalyzer-4.1.5]# cp -a src/* /var/www/html/log #因为loganalyzer是一个完整的程序,配置文件都是准备好的,进去目录下,将src目录下的页面文件都拷贝到默认的主站点目录下[root@c ~/loganalyzer-4.1.5]# cd contrib/[root@c ~/loganalyzer-4.1.5/contrib]# ls configure.sh secure.sh[root@c ~/loganalyzer-4.1.5/contrib]# cp configure.sh /var/www/html/log/ #configure.sh脚本里是生成config.php文件并改其权限为666的内容,所以我们可以将其复制到站点目录下执行该文件,或者复制里面的两个操作直接在命令行执行也行[root@c ~/loganalyzer-4.1.5/contrib]# cd /var/www/html/log/[root@c /var/www/html/log]# bash configure.sh #这里我用的是复制到主站点目录下,执行脚本,让它自动创建并赋权限给config.php文件重启httpd服务;
到这里基本的步骤都完成了;
总结:
1、在A机器上搭建了数据库(用逻辑卷的方式完成的),并且执行了一个创建数据库的脚本createDB.sql,让它自动创建了一个关于日志的数据库Syslog;在该数据库上授权B和C机器的访问,启动mysqld服务(tcp3306端口)
2、在B机器上,用yum安装了rsyslog和rsyslog-mysql两个包,在安装rsyslog-mysql包时创建了一个creaeDB.sql的数据库文件,将它拷贝到有数据库的A机器上,运行自动创建Syslog数据库,并且修改/etc/rsyslog.conf配置文件,加上支持rsyslog-mysql的模块和远程存放日志的定义,启动rsyslog服务();
3、在C机器上,yum安装了httpd服务,编译安装了php的独立服务,修改配置文件,在httpd的配置文件中加入支持php的定义,下载安装了loganalyzer程序,将里面的php页面脚本放到主站点/var/www/html/下的子目录log下(log是自己创建的一个目录),启动httpd服务(tcp80端口);
三:实验测试;
先看一下Apache服务所在的C机器上的防火墙、selinux是否都关闭
[root@c /var/www/html/log]# iptables -F #直接将防火墙关闭
[root@c /var/www/html]# getenforce #使selinux状态是PermissvePermissive然后打开浏览器,因为loganalyzer是一个完整的程序,所以用浏览器打开直接跟着向导做就好了;
跟着一步一步走,总共八步;在第七步时修改一些选项;最后第八步时“finish”
四:实验结果;
我用的php独立服务方式做的,我们班里好几个同学的结果都是,访问页面只是空白,测试了好几次,成功了那么一两下次,结果证明,独立方式下的不稳定,所以建议在做的时候尽量用模块方式,
- 实验:用loganalyzer实现web浏览器访问日志
- 实现loganalyzer-日志管理
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
- lamp+rsyslog+loganalyzer实现日志服务器
- logAnalyzer日志管理系统配置实例
- rsyslog+loganalyzer系统日志分析系统(loganalyzer基本功能)
- Linux—图解rsyslog及通过 Loganalyzer实现集中式日志管控
- CentOS 6.5下的lamp环境rsyslog+MySQL+loganalyzer实现日志集中分析管理
- 浏览器访问web service
- 用C#实现WEB浏览器
- 日志服务器的显示工具 PHPLOGCON Loganalyzer
- Rsyslog+LogAnalyzer+MySQL部署日志服务器
- [快速配置]rsyslog+mysql+loganalyzer日志服务器
- it-linux--日志分析-- rsyslog+loganalyzer尝试
- 通过loganalyzer展示数据库中的日志
- Map性能解析
- C++位运算
- 解读狼人杀虫洞连麦技术 | 硬创公开课
- C++无向带权图与最小生成树
- java springmvc中实现清除session
- 实验:用loganalyzer实现web浏览器访问日志
- JavaScript 引用类型
- 数叶子节点(前序建立二叉树)
- 泰瑞数创发布 SmartEarth 新品,提升实景三维建模能力
- 搜狐Q1总收入3.74亿美元,净亏损6900万美元
- 一份报告让你看懂《速8》里那些牛掰的黑客技术
- 机器人会写稿之后,腾讯还想让它实时整理出一份新闻简报
- 699元米动健康手环发布,华米又给自己贴了一个标签
- 京东组建物流子集团 五年目标收入千亿