您好,登錄后才能下訂單哦!
一、日志概述
1、rsyslog簡介
syslog是日志收集存儲系統,負責記錄遵守此服務的內核、程序的日志信息。一般記錄為:“日期時間,主機,進程:事件”。syslog不僅可以記錄本地的系統日志,也可以通過tcp, udp協議記錄遠程主機的程序日志信息。
syslog:系統日志,是一種服務,有兩個進程
syslogd:記錄應用程序相關的日志
klogd:記錄內核相關的日志
rsyslog:是syslog的升級版,使用多線程并發記錄本地或遠程日志,支持存儲日志信息在MySQL,PGSQL, Oracle等RDBMS中。同時擁有強大的過濾器功能,可以對日志中任意內容進行過濾。
rsyslog是CentOS 6以后的系統使用的日志系統,與之前的syslog日志系統相比,具有以下優點:
支持多線程
支持TCP、SSL、TLS、RELP等協議
強大的過濾器,可實現過濾日志信息中的任意部分
支持自定義輸出格式
適用于企業級別日志記錄需求
模塊化
日志的記錄格式:
日期時間 主機 進程[pid]:事件內容
2、rsyslog的一些概念
系統上的應用程序指定某一信道記錄日志,信道默認已經設定了日志的記錄級別,一旦應用程序產生了日志信息,通過該信道就會把日志文件記錄在指定的本地文件、數據庫或遠程rsyslog服務器中。
當然應用程序輸出的日志一般也會按照級別劃分,比如sshd_conf中就定義了信道為authpriv,級別為info的日志輸出:
# Logging — SyslogFacility AUTHPRIV — #LogLevel INFO
3、rsyslog支持的facility與priority
facility:設施、信道
從功能或程序上對日志進行分類,并由專門的工具負責記錄其日志
常用的facility:
lpr: 打印相關的日志
auth: 認證相關的日志
user: 用戶相關的日志
cron: 計劃任務相關的日志
kern: 內核相關的日志
mail: 郵件相關的日志
mark: 標記相關的日志
news: 新聞相關的日志
uucp: 文件copy相關的日志
daemon: 系統服務相關的日志
authpri: 授權相關的日志
security: 安全相關的日志
syslog: 由syslogd服務產生的日志信息,雖然服務名稱改為rsyslogd,但是很多配置都還是沿用了syslogd的,這里并沒有修改服務名
local0-local7:自定義相關的日志信息(自定義時可以使用通配符)
debug #有調式信息的,日志信息最多 info #一般信息的日志,最常用 notice #最具有重要性的普通條件的信息 warning, warn #警告級別 err, error #錯誤級別,阻止某個功能或者模塊不能正常工作的信息 crit #嚴重級別,阻止整個系統或者整個軟件不能正常工作的信息 alert #需要立刻修改的信息 emerg, panic #內核崩潰等嚴重信息 ###從上到下,級別從低到高,記錄的信息越來越少,如果設置的日志內性為err,則日志不會記錄比err級別低的日志
二、rsyslog配置
1、程序環境
程序包:rsyslog
配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/*.conf
主程序:/usr/sbin/rsyslogd
模塊路徑:/lib64/rsyslog/
Unit File:/usr/lib/systemd/system/rsyslog.service
2、配置文件/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命令:顯示當前系統每一個用戶最近一次的登錄時間;
3、配置文件/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中 |
三、配置使用基于mysql存儲日志信息,并結合前端loganalyzer工具分析日志
1、配置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 -h292.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
2、安裝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();
?>
(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
對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
重新配置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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。