十七、LAMP部署及日志服务

一、LAMP简介

       LAM(M)P:
       L:linux
       A:apache (httpd)
       M:mysql, mariadb
       M:memcached
       P:php, perl, python

架构示意图

1.1 CGI介绍

  • CGI:Common Gateway Interface
           可以让一个客户端,从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据;CGI描述了客户端和服务器程序之间传输的一种标准
  • 请求流程:
           Client -- (http) --> httpd -- (cgi) --> application server (program file) -- (mysql) --> mysql
  • php:脚本编程语言、嵌入到html中的嵌入式web程序语言
           基于zend编译成opcode(二进制格式的字节码,重复运行,可省略编译环境)

1.2 LAMP应用示例

示例1:部署分离的LAMP,部署到两台服务器上,php加载xcache模块

服务器1:Apache+php+xcache

yum install httpd php php-mysql  ##安装所需软件包
yum -y install php-devel

## 编译安装xcache模块
cd xcache-3.2.0
phpize --clean && phpize
./configure --enable-xcache
make && make install
cp xcache.ini /etc/php.d/

systemctl start httpd  ##启动服务

服务器2:MySQL

yum install mariadb-server  ##安装所需软件包
systemctl start mariadb  ##启动服务

测试:

## 在服务器1上进行
vi /var/www/html/pdo.php
query('SELECT user,host from user') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "
"; die(); } ?> 保存,退出 curl localhost/pdo.php ##通过请求连接数据库php文件进行测试,返回结果则表示正常 Array ( [user] => root [0] => root [host] => 127.0.0.1 [1] => 127.0.0.1 ) Array ( [user] => discuz [0] => discuz [host] => 172.16.77.% [1] => 172.16.77.% ) Array ( [user] => wordpress [0] => wordpress [host] => 172.16.77.% [1] => 172.16.77.% ) Array ( [user] => root [0] => root [host] => ::1 [1] => ::1 ) Array ( [user] => loguser [0] => loguser [host] => localhost [1] => localhost ) Array ( [user] => root [0] => root [host] => localhost [1] => localhost )

示例2:部署wordpress博客,并实现正常访问登录博客。

服务器1:
tar xvf wordpress-5.0.4-zh_CN.tar.gz -C /var/www/html/
setfacl -Rm u:apache:rwx /var/www/html/wordpress

服务器2:
mysql -uroot -p -e 'create database wordpress'
mysql -uroot -p -e "grant all on wordpress.* to wordpress@'172.16.77.%' identified by 'wordpress';"

访问http://ip地址/wordpress 完成安装

设置数据库连接信息

现在安装
欢迎向导页面
成功登录

二、日志服务介绍

       日志包含历史事件:时间,地点,人物,事件
       日志级别:事件的关键性程度,Loglevel
       系统日志服务:
       sysklogd :CentOS 5之前版本
       syslogd: system application 记录应用日志
       klogd: linux kernel 记录内核日志

  • 事件记录格式:
    日期时间 主机 进程[pid]: 事件内容
  • C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理

2.1 rsyslog简介

rsyslog特性:CentOS6和7

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式

facility:设施,从功能或程序上对日志进行归类
auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, local0-local7, syslog
Priority 优先级别,从低到高排序
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

2.2 rsyslog配置文件

  • RULES配置格式: facility.priority; facility.priority… target
  • facility:
    *: 所有的facility
    facility1,facility2,facility3,...:指定的facility列表
  • priority:
    *: 所有级别
    none:没有级别,即不记录
    PRIORITY:指定级别(含)以上的所有级别
    =PRIORITY:仅记录指定级别的日志信息
  • target:
    文件路径:通常在/var/log/,文件路径前的-表示异步写入
    用户:将日志事件通知给指定的用户,* 表示登录的所有用户
    日志服务器:@host,把日志送往至指定的远程服务器记录
    管道: | COMMAND,转发给其它命令处理

示例:收集apache访问日志,并实现图形化展示。
服务器2(MySQL):

mysql -uroot -p -e "grant all on Syslog.* to loguser@'localhost' identified by 'logpass'"
mysql -uroot -p < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql  ##导入表结构

服务器1(rsyslog):

yum install rsyslog-mysql
vi /etc/rsyslog.conf ## 配置rsyslog将日志存放mysql
$ModLoad ommysql  ##添加内容,加载mysql模块
local6.*               :ommysql:localhost,Syslog,loguser,logpass  指定apache进程产生的日志存储到指定的mysql数据库
保存,退出

systemctl restart rsyslog  ##重启服务,使更改生效

yum install httpd php php-mysql php-gd  ##安装所需软件包
vi /etc/httpd/conf/httpd.conf  ##编辑httpd主配置文件,将访问日志定向到本地local6
    CustomLog "| /usr/bin/logger -p local6.info" combined

tar xf loganalyzer-4.1.7.tar.gz
cp -a loganalyzer-4.1.7/src /var/www/html/log
cd /var/www/html/log
touch config.php
chmod 666 config.php
systemctl restart httpd.service  ##重启服务

访问http://ip地址/log 完成安装进行初始化配置

设置数据源

查看接收到的事件
统计图表展示

你可能感兴趣的:(十七、LAMP部署及日志服务)