【作业】【第十七周】使用mysql收集rsyslog日志,并实现图形化展示。

一、httpd源码安装

编译安装http2.4
安装httpd-2.4,依赖于apr-1.4+, apr-util-1.4+

#报错时考虑升级内核文件
uname -a
yum -y update

#下载依赖的安装环境以及源码包
yum -y install gcc make pcre-devel openssl-devel expat-devel bzip2 lynx
wget https://downloads.apache.org//apr/apr-1.7.0.tar.bz2
wget https://downloads.apache.org//apr/apr-util-1.6.1.tar.bz2
wget http://archive.apache.org/dist/httpd/httpd-2.4.38.tar.bz2 

#解压源码包至指定目录
tar -xvf apr-1.7.0.tar.bz2 ; tar -xvf apr-iconv-1.2.2.tar.bz2 ; tar -xvf apr-util-1.6.1.tar.bz2 ;tar -xvf  httpd-2.4.38.tar.bz2
mv apr-1.7.0 httpd-2.4.38/srclib/apr
mv apr-util-1.6.1 httpd-2.4.38/srclib/apr-util

#配置参数及开始编译
cd httpd-2.4.38/
./configure \
--prefix=/data/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork 

make -j 2 && make install

移除历史编译生成的文件
make clean   //保留配置文件
make mrproper  //清理所有生成的文件,包括config
make distclean  //同mrproper

#新建服务系统账号
useradd -s /sbin/nologin -r apache -d /data/app/httpd24

#配置服务运行账号
vi /data/app/httpd24/conf/httpd.conf
user apache
group apache

#配置httpd支持php类型
vi /data/app/httpd24/conf/httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
ProxyRequests Off

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

#配置服务二进制环境变量
echo "PATH=/data/app/httpd24/bin:$PATH" > /etc/profile.d/httpd24.sh

#配置关联帮助文档
vi /etc/man_db.conf
MANDATORY_MANPATH      /data/app/httpd24/man

#设置开机启动
vi /etc/rc.d/rc.local
/app/httpd24/bin/apachectl start
chmod +x /etc/rc.d/rc.local

#基于名称的虚拟主机
<virtualhost *:80>
        servername blog.sankeya.vip
        documentroot /data/app/httpd24/htdocs/
   <directory /data/app/httpd24/htdocs/>
        Options None
        AllowOverride None
        Require all granted
   </directory>
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/app/httpd24/htdocs/wordpress/$1
        ProxyPassMatch ^/(fpm_status|ping)$ fcgi://127.0.0.1:9000/$1
        ErrorLog "logs/wordpress_error_log"
        CustomLog "logs/wordpress_access_log" combined
</virtualhost>

<virtualhost *:80>
        servername forum.sankeya.vip
        documentroot /data/app/httpd24/htdocs/
   <directory /data/app/httpd24/htdocs/>
        Options None
        AllowOverride None
        Require all granted
   </directory>
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/app/httpd24/htdocs/discuz/$1
        ProxyPassMatch ^/(fpm_status|ping)$ fcgi://127.0.0.1:9000/$1
        ErrorLog "logs/discuz_error_log"
        CustomLog "logs/discuz_access_log" combined
</virtualhost>

apachectl restart

二、php-fpm源码安装

源码编译
./configure \
--prefix=/data/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-libxml-dir=/usr \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-mbstring \
--enable-xml \
--enable-sockets \
--enable-fpm \
--enable-maintainer-zts \
--enable-opcache \
--enable-gd \
--disable-fileinfo

make -j 2 && make install && echo $?

#为php提供配置文件
cp /data/src/php-7.4.14/php.ini-production /etc/php.ini
cp /data/app/php/etc/php-fpm.conf.default /data/app/php/etc/php-fpm.conf
cp /data/app/php/etc/php-fpm.d/www.conf.default /data/app/php/etc/php-fpm.d/www.conf
vi /data/app/php/etc/php-fpm.d/www.conf
user
= apache group = apache #为php提供启动文件 cp /data/src/php-7.4.14/sapi/fpm/php-fpm.service /usr/lib/systemd/system/ #配置php环境变量 echo "PATH=/data/app/php/bin:$PATH" > /etc/profile.d/php.sh systemctl daemon-reload systemctl status php-fpm.service systemctl enable --now php-fpm.service

三、mariadb安装授权

二进制安装
#配置用户
useradd -r -s /sbin/nologin -d /data/mysql mysql

#配置所需的文件夹
mkdir /data/app/mysql
mkdir /data/app/mysqldata
chown -R mysql.mysql /data/app/mysql
chown -R mysql.mysql /data/app/mysqldata

#准备安装源文件
[root@centos7-mysql-server /]# cd /data/src/
wget -c https://mirrors.ustc.edu.cn/mariadb//mariadb-10.5.8/bintar-linux-systemd-x86_64/mariadb-10.5.8-linux-systemd-x86_64.tar.gz
[root@centos7-mysql-server src]# ll
total 403828
-rw-r--r-- 1 root root  71997847 Nov 18 18:29 mariadb-10.2.25.tar.gz
-rw-r--r-- 1 root root 341518238 Nov 18 10:24 mariadb-10.5.8-linux-systemd-x86_64.tar.gz

#解压文件
tar -xf mariadb-10.5.8-linux-systemd-x86_64.tar.gz -C /data/app/mysql
ln -sv /data/local/mariadb-10.5.8-linux-systemd-x86_64/ /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql

#配置环境变量
echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh

#安装初始化数据库
./mariadb-install-db --datadir=/data/app/mysqldata/ --user=mysql

#设置数据配置文件
cat /etc/my.cnf
[mysqld]
datadir=/data/app/mysqldata
socket=/data/app/mysql/mysql.sock
skip_name_resolve = on
log-bin=/data/app/mysqldata/mysql-bin
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client]
socket = /data/app/mysqldata/mysql.sock
!includedir /etc/my.cnf.d

#设置服务启动配置
cp /usr/local/mysql/support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service
systemctl daemon-reload
systemctl enable mariadb
systemctl start mariadb

#初始安全配置
mysql_secure_installation  

四、rsyslog服务配置

#安装支持mysql转存的rsyslog组件
yum -y install rsyslog-mysql
rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

#将安装组件生成的sql文件传送到mariadb服务器
scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.0.107:/data/src

#将sql导入数据库并新建账号授权
mysql>source /data/mysql-createDB.sql
mysql>GRANT ALL ON Syslog.* TO 'loguser'@'192.168.0.%' IDENTIFIEDBY 'sankeya';

#编辑rsyslog服务配置文件,加载模块配置,重启rsyslog服务
vi /etc/rsyslog.conf
$ModLoad ommysql
*.info                   :ommysql:192.168.0.107,Syslog,loguser,sankeya

systemctl restart rsyslog.service

#测试
logger "this is a test log"
mysql>SELECT COUNT(*) FROM SystemEvents;

五、测试效果

 

 (结束)

posted @ 2021-01-13 11:38  sankeya  阅读(202)  评论(0编辑  收藏  举报