基于mysql數據庫的日志分析系統

現如今,日志已經成為了我們分析系統及相關服務的一個重要工具。而日志也具有其相對較為固定的格式以便于進行統計查詢。其大致格式如下:

日期時間            主機            進程[pid]:事件內容

我們可以通過查看/var/log/message中的內容來看一下其記錄的日志格式。

0000.jpg

Linux中,使用rsyslog來記錄日志,其主要具有以下幾點特性:

a、多線程進程;

b、支持UDP、TCPSSL/TLS、RELP等多種傳輸協議;

c、可存儲日志信息于Mysql、PGSQL、Oracle等數據庫中;

d、具有功能強大的過濾器,可實現過濾日志信息中任何部分的內容;

e、可自定義輸出格式;

下面我們就首先詳細了解一下rsyslog程序。

1、程序相關環境;

rsyslogCentOS發行版中為默認安裝的,當然,我們也可自己手動安裝,配置好yum倉庫后,執行yum –y install rsyslog即可。以CentOS7為例,其生成的相關文件主要有以下這些:

配置文件:/etc/rsyslog.conf/etc/rsyslog.d/*

主程序文件:/usr/sbin/rsyslogd

模塊路徑:/usr/lib64/rsyslogd/

Unit File/usr/lib/system/system/rsyslog.service

2、程序配置文件

rsyslog的程序配置文件由以下三部分組成:

#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####

需要注意的是,每個配置段的配置選項都有嚴格的定義,所以我們在添加配置選項時,同樣也需要嚴格按照配置段位置進行添加;我們主要看一下RULES段的主要配置。

RULES段的配置具有固定的格式,由三部分組成:

Facility.priority                        target

Facility即為日志傳輸的信道,包括auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,user,uucp,syslog,local0-local720類。

priority為日志的等級,包括debug,info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)幾種;

target為日志的存儲方式,有以下幾種:

文件:將日志信息記錄到指定的文件中,文件路徑之前的“-”表示異步寫入之意;

用戶:將日志事件通知給指定的用戶,一般指登錄到當前系統上的所有用戶的終端;

日志服務器:格式為@rsyslog_server,表示將日志信息發往指定的日志服務器;

管道:格式為|COMMAND,表示將日志通過管道傳遞給命令;

了解了rsyslog之后,那么我們要如何分析日志信息呢。在圖像化界面下,我們可以通過一款軟件loganalyzer進行分析,其需要運行于amp環境中;下面我們就搭建一個AMP+rsyslog+loganalyzer環境;

1、安裝AMP+rsyslog環境

yum –y install httpd php php-mysql mariadb-server rsyslog ryslog-mysql

2.配置mysql相關用戶與數據

    a、啟動mysql服務

systemctl start mariadb.service

         b、運行mysql初始化設置;

mysql_secure_installation

         c、創建mysql數據庫與賬號;

mysql -u root -pmageedu < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
mysql> grant all on Syslog.* to ‘rsyslog’@’localhost’ identified by ‘mageedu’;
mysql> grant all on Syslog.* to ‘rsyslog’@’127.0.0.1’ identified by ‘mageedu’;
mysql> flush privileges;

3、配置rsyslog配置文件;

vim /etc/rsyslog/rsyslog.conf

MODULES下添加:$ModLoad        ommysql

RULES下添加:*.*                            :ommysql:127.0.0.1,Syslog,rsyslog,mageedu

4、loganalyzer相關配置;

         a、解壓loganalyzer安裝包;

tar xf loganalyzer-3.6.5.tar.gz

         b、復制解壓目錄下src目錄至/var/www/html目錄;

cp –r loganalyzer-3.6.5/src /var/www/html

         c、創建軟鏈接;

ln -sv /var/www/html/loganalyzer /var/www/html/log

         d、在/var/www/html/log目錄中創建config.php并修改權限為666

cd /var/www/html/log
touch config.php
chmod 666 config.php

         e、為apache用戶設置acl權限;

setfacl -m u:apache:rwx /var/www/html/loganalyzer-3.6.5

   f、設置防火墻并啟動各服務

         5、在瀏覽器中訪問httpd服務并安裝loganalyzer;

      111.jpg

222.png

至此,我們就搭建完成了amp+rsyslog+loganalyzer服務。

 

 

 

 

 

 

 

 

 

 

 

原創文章,作者:luoliumeng,如若轉載,請注明出處:http://www.www58058.com/53818

(0)
luoliumengluoliumeng
上一篇 2016-10-23 20:05
下一篇 2016-10-23

相關推薦

  • 文本三劍客 grep sed awk

    模式,選項。常用用法。

    2017-12-03
  • 密碼保護:ansible書籍部分目錄

    無法提供摘要。這是一篇受保護的文章。

    Linux干貨 2015-12-14
  • vim文本編輯器小結

    vi=vim打開文件 alias vi =vim vim -m 只讀方式打開文件 修改文件時則會無法保存   -b 二進制打開文件 -d file1 file2  比較兩個文件 Command(normal)默認模式:  ZZ 保存并退出 ZQ 不保存并退出Insert:編輯模式&nbsp…

    2017-08-05
  • Linux硬鏈接、軟鏈接的介紹及兩者的區別

    一、硬鏈接 鏈接數就是名字的數量: ln(link) 硬鏈接,多個相同的inode文件(同分區),多個硬鏈接文件的存在在硬盤上只占用一個文件的容量 創建的硬鏈接是平等的,inode相同,刪除某一個互不影響,其他文件仍然可以使用 硬鏈接的本質:給一個文件創建多個名字   創建多個硬鏈接,觀察鏈接數的變化(+1),鏈接數是幾就是有幾個文件名 同一分區中…

    Linux干貨 2016-08-04
  • N26 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -rv /etc/skel /home/tuser1 [root@localhost ~]# chmod&n…

    Linux干貨 2017-01-23
  • Linux命令的別名與管道命令的詳解

    Linux中命令的別名與管道命令的詳解 命令別名 在使用和維護liunx時,將會使用大量的命令,而一些命令加上參數時輸入比較繁瑣,此時我們可以定義一個別名來代替繁瑣的命令。 系統定義的別名 可以輸入 alias 命令查看系統中已經定義好的命令的別名; [root@localhost ~]# alias alias cp=’cp -i’ alias egrep…

    Linux干貨 2018-03-03
欧美性久久久久