Rsyslog日誌收集服務並結合Loganalyzer工具展現

1、日誌概述
php

一、rsyslog簡介html

   syslog是日誌收集存儲系統,負責記錄遵照此服務的內核、程序的日誌信息。通常記錄爲:「日期時間,主機,進程:事件」。syslog不只能夠記錄本地的系統日誌,也能夠經過tcp, udp協議記錄遠程主機的程序日誌信息。前端


syslog:系統日誌,是一種服務,有兩個進程mysql

   syslogd:記錄應用程序相關的日誌web

   klogd:記錄內核相關的日誌sql


rsyslog:是syslog的升級版,使用多線程併發記錄本地或遠程日誌,支持存儲日誌信息在MySQL,PGSQL, Oracle等RDBMS中。同時擁有強大的過濾器功能,能夠對日誌中任意內容進行過濾。數據庫

   rsyslog是CentOS 6之後的系統使用的日誌系統,與以前的syslog日誌系統相比,具備如下優勢:apache

     支持多線程vim

     支持TCP、SSL、TLS、RELP等協議centos

     強大的過濾器,可實現過濾日誌信息中的任意部分

     支持自定義輸出格式

     適用於企業級別日誌記錄需求

     模塊化


日誌的記錄格式:

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


二、rsyslog的一些概念 

   系統上的應用程序指定某一信道記錄日誌,信道默認已經設定了日誌的記錄級別,一旦應用程序產生了日誌信息,經過該信道就會把日誌文件記錄在指定的本地文件、數據庫或遠程rsyslog服務器中。

固然應用程序輸出的日誌通常也會按照級別劃分,好比sshd_conf中就定義了信道爲authpriv,級別爲info的日誌輸出: 
# Logging — SyslogFacility AUTHPRIV — #LogLevel INFO


三、rsyslog支持的facility與priority

facility:設施、信道

   從功能或程序上對日誌進行分類,並由專門的工具負責記錄其日誌

經常使用的facility:
      lpr: 打印相關的日誌
     auth: 認證相關的日誌
     user: 用戶相關的日誌
     cron: 計劃任務相關的日誌
     kern: 內核相關的日誌
     mail: 郵件相關的日誌
     mark: 標記相關的日誌
     news: 新聞相關的日誌
     uucp: 文件copy相關的日誌
   daemon: 系統服務相關的日誌
  authpri: 受權相關的日誌
 security: 安全相關的日誌
   syslog: 由syslogd服務產生的日誌信息,雖然服務名稱改成rsyslogd,可是不少配置都仍是沿用了syslogd的,這裏並無修改服務名
 local0-local7:自定義相關的日誌信息(自定義時可使用通配符)

priority:級別

debug           #有調式信息的,日誌信息最多
info            #通常信息的日誌,最經常使用
notice          #最具備重要性的普通條件的信息
warning, warn   #警告級別
err, error      #錯誤級別,阻止某個功能或者模塊不能正常工做的信息
crit            #嚴重級別,阻止整個系統或者整個軟件不能正常工做的信息
alert           #須要馬上修改的信息
emerg, panic    #內核崩潰等嚴重信息
###從上到下,級別從低到高,記錄的信息愈來愈少,若是設置的日誌內性爲err,則日誌不會記錄比err級別低的日誌

2、rsyslog配置

一、程序環境

程序包:rsyslog

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

主程序:/usr/sbin/rsyslogd

模塊路徑:/lib64/rsyslog/

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


二、配置文件/etc/rsyslog.conf格式詳解

由三部分組成,必須嚴格按照配置段位置添加配置

1
2
3
4
[root@centos6.8~] # grep "####" /etc/rsyslog.conf
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####

MODULES:定義裝載的模塊,如接下來的使用mysql模塊記錄日誌則須要在這裏配置

GLOBAL DIRECTIVES:定義了全局的環境

RULES:定義了記錄日誌的設施以及等級等信息

  定義規則的格式爲:

     facility.priority  Target


facility可使用的通配符:

   *:全部

   ,:列表,如f1,f2,f3...

   !:取反         

        

priority可使用的通配符:

   *:全部日誌級別

 none:沒有任何級別,也就是不記錄日誌信息

             

Target:目標,指日誌保存的位置

    可使用的有:

        文件,如/var/log/messages

      用戶:* 表示當前登陸系統的全部用戶

      日誌服務器:@host  ##host: 必需要監聽在tcp或udp協議514端口上提供服務;

      管道:| COMMAND

例如:

mail.info /var/log/maillog 

       表示將mail產生的info日誌級別以上的信息都記錄在/var/log/maillog文件中

mail.=info  表示僅記錄info級別日誌

mail.!info  表示記錄info如下級別的日誌 

*.info     表示全部設施的info級別

mail,news.info  表示mail和news都使用info級別


有些日誌記錄二進制格式:/var/log/wtmp,/var/log/btmp

/var/log/wtmp: 當前系統上成功登陸的日誌; last

/var/log/btmp:當前系統上失敗的登陸嘗試; lastb

lastlog命令:顯示當前系統每個用戶最近一次的登陸時間;


三、配置文件/etc/rsyslog.conf詳解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#### MODULES 日誌的模塊####
$ModLoad imuxsock    #imuxsock是模塊名,支持本地系統日誌的模塊
$ModLoad imklog      #imklog是模塊名, 支持內核日誌的模塊
#$ModLoad immark    #immark是模塊名,支持日誌標記
#$ModLoad imudp     #imupd是模塊名,支持udp協議
#$UDPServerRun 514  #容許514端口接收使用UDP和TCP協議轉發過來的日誌
#$ModLoad imtcp     #imtcp是模塊名,支持tcp協議
#$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####定義全局日誌格式的指令
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat  #定義日誌格式默認模板
$IncludeConfig  /etc/rsyslog .d/*.conf    #載入rsyslog.d文件中全部以conf結尾的文件
#### RULES ####
*.info;mail.none;authpriv.none; cron .none     /var/log/messages
#####記錄全部日誌類型的info級別以及大於info級別的信息到/var/log/messages,可是mail郵件信息,authpriv驗證方面的信息和cron時間#任務相關的信息除外
authpriv.*              /var/log/secure
#####authpriv驗證相關的全部信息存放在/var/log/secure
mail.*                - /var/log/maillog
#####郵件的全部信息存放在/var/log/maillog; 這裏有一個-符號, 表示是使用異步的方式記錄, 由於日誌通常會比較大
cron .*                 /var/log/cron
####計劃任務有關的信息存放在/var/log/cron
*.emerg                * (*表示全部用戶)
###記錄全部的大於等於emerg級別信息, 以wall方式發送給每一個登陸到系統的人
uucp,news.crit         /var/log/spooler
####記錄uucp,news.crit等存放在/var/log/spooler
local7.*               /var/log/boot .log
####本地服務器的啓動的全部日誌存放在/var/log/boot.log中


3、配置使用基於mysql存儲日誌信息,並結合前端loganalyzer工具分析日誌

一、配置rsyslog日誌存儲於mysql中

(1) 準備好MySQL服務器,建立用戶,受權對Syslog數據庫的所有訪問權限;

mysql> grant all on Syslog.* to 'syslog'@'192.168.137.%' identified by '123456';


(2) rsyslog服務起上安裝rsyslog-mysql程序包;

yum install -y rsyslog-mysql


(3) 建立rsyslog-mysql依賴的數據庫;

rpm -ql rsyslog-mysql

/lib64/rsyslog/ommysql.so

/usr/share/doc/rsyslog-mysql-5.8.10

/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql    ##建庫腳本位置


# yum install mysql -y   ##rsyslog服務器安裝mysql客戶端

# mysql -usyslog  -p123456  -h192.168.137.130  --default-character-set=utf8 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

mysql> use Syslog

Database changed

mysql> show tables;

+------------------------+

| Tables_in_Syslog       |

+------------------------+

| SystemEvents           |

| SystemEventsProperties |


(4) 配置rsyslog使用ommysql模塊

vim /etc/rsyslog.conf

#### MODULES ####

$ModLoad ommysql

#### RULES ####

*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.137.130,Syslog,syslog,123456

重啓rsyslog服務:    service rsyslog restart


(5)測試日誌記錄

rsyslog服務器:yum remove lrzsz

mysql> select * from SystemEvents\G   


二、安裝loganalyzer(rsyslog專用前端展現工具)

(1)準備環境,loganalyzer爲php程序開發的web頁面

    yum install -y httpd php php-mysql php-gd            (mysql mysql-server rsyslog-mysql前期已安裝)

   測試httpd可否正常工做,可否經過php工做

[root@master ~]# cd /var/www/html/

[root@master html]# vim index.php

Hello word!

My Blog is "http://guopeng7216.blog.51cto.com/"

<?php

phpinfo();

?>


測試php和mysql結合

[root@localhost html] # cat index.php

<?php

$link=mysql_connect('192.168.137.150','syslog','123456');

if($link){

echo "success..frank!";

}else{

echo "failed..frank!".mysql_error();

}

mysql_close($link);

phpinfo();

?>


wKioL1kURtmzyeWtAAA-SdPdF9o957.png-wh_50

(2)、下載loganalyzer並進行安裝配置;

http://pan.baidu.com/s/1nvsN5rz

 ~]# tar xf loganalyzer-3.6.4.tar.gz 

 ~]# cd loganalyzer-3.6.4

 loganalyzer-3.6.4]# cp -r src /var/www/html/loganalyzer 

 loganalyzer-3.6.4]# cp contrib/*.sh /var/www/html/loganalyzer/

 loganalyzer-3.6.4]# cd /var/www/html/loganalyzer/

loganalyzer]# chmod u+x *.sh

loganalyzer]# ./configure.sh 

loganalyzer]# ./secure.sh 

loganalyzer]# chown -R apache:apache ./*


修改rsyslog的配置文件rsyslog.conf,只需開啓兩個模塊以及容許經過tcp,udp發出接受信息,而且設置信息都保存至mysql數據庫的Syslog中,

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514


# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514


日誌數據存儲在數據庫中,其它所有註釋掉

*.*     :ommysql:192.168.137.150,Syslog,syslog,123456


安裝loganalyzer:

http://192.168.137.150/loganalyzer/install.php

wKiom1M2fZCywkkaAAIUFmKRnJg725.jpg

wKiom1M2fZCCnFTgAAJqzeW3Aa0726.jpg

wKioL1M2fWmxlOicAAMr1U02a70568.jpg

wKiom1kUVw-Bs4wDAACqX-QKGm0023.png-wh_50

wKiom1kUV3DiY1ZrAAI6iPLRtCc690.png-wh_50



對loganalyzer日誌系統進行測試,在本機上經過ssh鏈接192.168.137.150

[root@centos-7 loganalyzer]# ssh 192.168.137.150

root@192.168.137.150's password: 

Last login: Thu May 11 19:37:06 2017 from centos-7

wKioL1kUWHiDp075AAEpk2CrphA839.png


從新配置loganalyzer:

loganalyzer]# rm -f config.php 

loganalyzer]# ./configure.sh 

loganalyzer]# ./secure.sh 

loganalyzer]# chmod 666 config.php

http://192.168.137.150/loganalyzer/install.php

相關文章
相關標籤/搜索