通過 loganalyzer 展示資料庫中的日誌 [toc] 環境準備 三台主機 一臺日誌伺服器,利用上一個案例實現,IP:192.168.39.7, 一臺資料庫伺服器,利用上一個案例實現,IP:192.168.39.27, 一臺當httpd+php 伺服器,並安裝loganalyzer展示web圖 ...
目錄
通過 loganalyzer 展示資料庫中的日誌
環境準備
三台主機
一臺日誌伺服器,利用上一個案例實現,IP:192.168.39.7,
一臺資料庫伺服器,利用上一個案例實現,IP:192.168.39.27,
一臺當httpd+php 伺服器,並安裝loganalyzer展示web圖形,IP:192.168.39.77
日誌伺服器工具 loganalyzer-4.1.8.tar.gz
準備伺服器:
# 日誌伺服器
[root@centos7 ~]$hostname rsyslog
[root@centos7 ~]$exit
[root@rsyslog ~]$
# 資料庫伺服器
[root@centos7 ~]$hostname mysql
[root@centos7 ~]$exit
[root@mysql ~]$
# websrv伺服器
[root@centos ~]# hostname websrv
[root@centos ~]# exit
[root@websrv ~]$
日誌伺服器:
- 在rsyslog伺服器上安裝連接mysql模塊相關的程式包
[root@rsyslog ~]$yum install rsyslog-mysql -y
- 找到sql腳本發送到資料庫
# 下載輔助軟體查找
[root@rsyslog ~]$yum install mlocate
[root@rsyslog ~]$updatedb # 更新資料庫信息
[root@rsyslog ~]$locate mysql-createDB.sql # 使用locatedb查找腳本文件存放路徑
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
[root@rsyslog ~]$cat /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql # 腳本文件內容
CREATE DATABASE Syslog;
USE Syslog;
CREATE TABLE SystemEvents
(
ID int unsigned not null auto_increment primary key,
CustomerID bigint,
ReceivedAt datetime NULL,
DeviceReportedTime datetime NULL,
Facility smallint NULL,
Priority smallint NULL,
FromHost varchar(60) NULL,
Message text,
NTSeverity int NULL,
Importance int NULL,
EventSource varchar(60),
EventUser varchar(60) NULL,
EventCategory int NULL,
EventID int NULL,
EventBinaryData text NULL,
MaxAvailable int NULL,
CurrUsage int NULL,
MinUsage int NULL,
MaxUsage int NULL,
InfoUnitID int NULL ,
SysLogTag varchar(60),
EventLogType varchar(60),
GenericFileName VarChar(60),
SystemID int NULL
);
CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);
[root@rsyslog ~]$scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.39.27:/root # 發送到資料庫伺服器
The authenticity of host '192.168.39.27 (192.168.39.27)' can't be established.
ECDSA key fingerprint is SHA256:XVNFzEbN3eaCzTwYrlQg2SzHZXHbd0dS0YKLuIOXVr0.
ECDSA key fingerprint is MD5:df:4d:86:ba:0c:e6:c1:a2:6c:45:71:e9:ac:ea:1d:a5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.39.27' (ECDSA) to the list of known hosts.
[email protected]'s password:
mysql-createDB.sql 100% 1046 588.1KB/s 00:00
- 修改配置文件啟動服務模塊並且寫如資料庫信息(用於給資料庫伺服器發送日誌信息)
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad ommysql # 添加這一行
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.39.27,Syslog,syslog,taotaobao
#配置rsyslog將日誌保存到mysql中
[root@centos8 ~]#vim /etc/rsyslog.conf
####MODULES####
#在 MODULES 語言下麵,如果是 CentOS 8 加下麵行
module(load="ommysql")
#在 MODULES 語言下麵,如果是 CentOS 7,6 加下麵行
$ModLoad ommysql
資料庫伺服器:
- 安裝資料庫
[root@mysql ~]$yum install mariadb-server -y
[root@mysql ~]$systemctl start mariadb.service
- 執行考過來的腳本
[root@mysql ~]$mysql <
anaconda-ks.cfg .cshrc .tcshrc
.bash_history ifcfg-eth0 .viminfo
.bash_logout init_env_191113.sh .vimrc
.bash_profile mysql-createDB.sql
.bashrc .pki/
[root@mysql ~]$mysql < mysql-createDB.sql # 直接導入資料庫
- 創建Syslog庫使用的賬號
[root@mysql ~]$mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> grant all on Syslog.* to syslog@'192.168.39.%' identified by 'taotaobao'; # 註意這裡的資料庫名要對應執行的sql腳本里的資料庫名。
Query OK, 0 rows affected (0.00 sec)
測試日誌伺服器和資料庫是否連接:
- 資料庫端查看Syslog庫沒啟動服務之前是空的
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
MariaDB [Syslog]>
MariaDB [Syslog]> SELECT COUNT(*) FROM SystemEvents;
+----------+
| COUNT(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
- 啟動rsyslog服務
[root@rsyslog ~]$systemctl restart rsyslog.service
[root@rsyslog ~]$logger "this is a test log" # 日誌伺服器觸發日誌(logger觸發日誌命令)
- 查看資料庫是否有數據(可以多測試幾遍)
MariaDB [Syslog]> SELECT COUNT(*) FROM SystemEvents;
+----------+
| COUNT(*) |
+----------+
| 8 |
+----------+
1 row in set (0.00 sec)
websrv伺服器端:
- 解壓縮工具
[root@websrv ~]# ll
-rw-r--r-- 1 root root 2943754 Oct 10 13:04 loganalyzer-4.1.8.tar.gz # web界面日誌服務工具包
[root@websrv ~]# tar xvf loganalyzer-4.1.8.tar.gz
- 安裝需要的服務實現LAMP架構
# 註意這裡的php版本一定要是在5.6版本相同或以上要不這個軟體不支持
[root@websrv ~]# yum install httpd php56-php-fpm.x86_64 php56-php-mysqlnd.x86_64 -y
- 把loganalyzer需要的目錄切到網站目錄下
[root@websrv loganalyzer-4.1.8]# ll
total 100
drwxrwxr-x 13 root root 4096 Sep 26 23:41 src
-rw-rw-r-- 1 root root 48571 Sep 26 23:41 ChangeLog
drwxrwxr-x 2 root root 43 Sep 26 23:41 contrib
-rw-rw-r-- 1 root root 35497 Sep 26 23:41 COPYING
drwxrwxr-x 3 root root 258 Sep 26 23:41 doc
-rw-rw-r-- 1 root root 8449 Sep 26 23:41 INSTALL
[root@websrv loganalyzer-4.1.8]# mv src/ /var/www/html/log # 切到網站目錄下
[root@websrv loganalyzer-4.1.8]# ll /var/www/html/
total 4
drwxrwxr-x 13 root root 4096 Sep 26 23:41 log
# 修改所有者為apache
[root@websrv loganalyzer-4.1.8]# cd /var/www/html/
[root@websrv html]# chown -R apache.apache log/
- 修改httpd配置文件支持php-fpm
# 添加index.php
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
# 找到這個模塊位置,添加中間三行內容。
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
</IfModule>
- 創建調用模塊文件(或者理解為反向代理)
[root@websrv html]# vim /etc/httpd/conf.d/fcgi.conf
Directoryindex index.php
Proxyrequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
第4、5這兩項的配置在centos7上要加。centos8是預設配置好的不用修改。
- web界面測試
- 進行檢測
- 這裡如果錯了可能會顯示沒有用於寫的文件
- 解決方法(是缺少這個文件導致的)
[root@websrv html]# cd log/
[root@websrv log]# pwd
/var/www/html/log
[root@websrv log]# touch config.php # 創建這個文件
[root@websrv log]# chmod 666 config.php # 給這個文件所有人可讀和可寫許可權(根據工作需求更改)
- 這些信息是最後顯示的日誌格式是什麼樣的
- 填寫資料庫的信息
- 查看添加的表名
[root@centos7 ~]$mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use Syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents | # 這個表是作為存儲日誌信息使用的
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
- 成功
- 查看報告書界面(但是沒有餅狀圖不清晰)
[root@websrv html]# yum install php56-php-gd.x86_64 -y # 支持畫餅狀圖的包
[root@websrv html]# systemctl restart httpd.service php56-php-fpm.service # 重啟服務
- 刷新web界面(這樣就會產生比較清晰的餅狀圖)