rsyslog:php
日誌:歷史事件日誌
歷史事件:
時間,事件
事件級別(日誌級別):事件的關鍵性程度;html
事件:系統引導啓動、應用程序啓動、應用程序尤爲是服務類應用程序運行過程當中的一些事件;
系統日誌服務:
syslog:
syslogd: system
klogd:kernelmysql
事件格式較爲簡單時,可統一由syslog進行記錄:
事件產生的日期時間 主機 進程[pid] :事件內容web
支持C/S架構:可經過UDP或TCP協議提供日誌記錄服務;sql
rsyslog:
rsyslogdshell
特性:
多線程;
UDP,TCP,SSL,TLS,RELP;
存儲日誌信息於MySQL、PGSQL、Oracle等數據管理系統;
強大的過濾器,實現過濾日誌信息中任何部分的內容;
自定義輸出格式;數據庫
elk stack:elasticsearch, logstash, kibanacentos
rsyslog日誌收集器重要術語:
facility:設施,從功能或程序上對日誌收集進行分類;
auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, local0-local7, syslog
priority:優先級,日誌級別
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)服務器
指定級別:
*:全部級別;
none:沒有級別;
priority:此級別以高於此級別的全部級別;
=priorty:僅此級別;
……session
程序環境:
主程序:rsyslogd
主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
服務腳本(centos6):/etc/rc.d/init.d/rsyslog
Unit File(CentOS 7):/usr/lib/systemd/system/rsyslog.service
配置文件格式rsyslog.conf
主要由三部分組成:
MODULES
GLOBAL DRICTIVES
RULES
RULES:
facilty.priority target
target:用戶:將日誌事件通知給指定的用戶;是經過將信息發送給登陸到系統上的用戶的終端進行的;
日誌服務器:@host,把日誌送往指定的服務器主機;
br/>文件:記錄日誌事件於指定的文件中;一般應該位於/var/log目錄下;文件路徑以前的"-"表示異步寫入;
用戶:將日誌事件通知給指定的用戶;是經過將信息發送給登陸到系統上的用戶的終端進行的;
日誌服務器:@host,把日誌送往指定的服務器主機;
host:即日誌服務器地址,監聽在tcp或udp協議的514端口以提供服務;
管道: | COMMAND
其它日誌文件:
/var/log/wtmp:當前系統成功登陸系統的日誌;
須要使用last命令查看
/var/log/btmp:當前系統嘗試登陸系統失敗相關的日誌;
須要使用lastb命令查看
lastlog:顯示當前系統上的全部用戶最近一次登陸系統的時間;
/var/log/dmesg:系統引導過程當中的日誌信息;
也可使用dmesg命令進行查看;
rsyslog服務器:
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
記錄日誌於mysql中:
(1) 於MySQL服務器:準備好MySQL服務器,建立用戶,受權對Syslog數據庫擁有所有訪問權限;
(2) 於rsyslog主機:安裝rsyslog-mysql程序包;
(3) 於rsyslog主機:經過導入createDB.sql腳本建立依賴到的數據庫及表;
mysql -uUSER -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4) 配置rsyslog使用ommysql模塊
$ModLoad ommysql
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
注意:重啓rsyslog服務;
(5) web展現接口:loganalyzer
(a) 配置lamp組合
httpd, php, php-mysql, php-gd
(b) 安裝loganalyzer
經過URL訪問
http://HOST/loganalyzer
nsswitch and pam:
nsswitch:name service switch
名稱解析:用戶名、組名、主機、服務名、...
解析:根據已知的信息(key)查找某存儲庫,獲取其它信息的過程;
存儲:文件、SQL、NoSQL、LDAP、dns、...
文件系統接口:系統調用
SQL:
NoSQL:
通用框架:承上啓下
承上:提供統一的配置與調用接口;
啓下:用於與各類存儲進行交互;
實現:/usr/lib64/libnss, /lib64/libnss
框架:libnss
驅動:libnss_files-
爲每一種用到解析庫的應用經過配置定義其位置:
/etc/nsswitch.conf
文件格式:
db: store1 store2 ...
例如:
passwd: files
hosts: files dns
解析庫:
文件、關係型數據管理系統(MySQL)、NIS、LDAP、DNS
每種存儲中根據查找鍵進行查找的結果狀態:
STATSU => success | notfound | unavail | tryagain
對應於每種狀態結果的行爲(action):
return | continue
例子:
hosts: files nis [NOTFOUND=return] dns
getent命令:
getent DATABASE [key]
pam:pluggable authentication module
認證庫:存儲
多種類型的存儲:文件、關係型數據管理系統、LDAP、NIS
pam:通用框架,提供了與各類類型存儲進行交互的公共實現、以及多種輔助類的功能:
/lib64/security/*
配置文件:爲各類調用了pam的應用提供其專用配置;
通用配置文件:/etc/pam.conf,可爲每一種調用pam完成認證功能的應用程序提供配置;
專用配置文件:/etc/pam.d/*,一般專用於爲某種特定的應用程序提供配置;
一般每一個應用會使用一個單獨的配置文件;
配置文件格式:
通用配置文件:
application typecontrol module-path module-arguments
專用配置文件:
typecontrol module-path module-arguments
type:檢查的功能類別
auth:帳號的認證和受權;
account:與帳號管理相關的非認證類的功能;
password:用戶修改密碼時密碼複雜度檢查機制;
session:用戶獲取到服務以前或使用服務完成以後須要進行一些附加性操做;
control:同一種功能的多個檢查之間如何進行組合;
兩種實現機制:
(1) 簡單機制:使用一個關鍵詞來定義
(2) 詳細機制:使用一個或多個「status=action」
簡單機制:
required:必須成功經過檢查;不然,即爲失敗;不管成功仍是失敗,都需繼續由後續同種功能的其它模塊進行檢查;
requisite:一票否決;檢測失敗就直接返回失敗;檢測成功,則由由後續同種功能的其它模塊進行檢查;
sufficient:一票經過,檢測成功就直接返回成功;檢測失敗,則由由後續同種功能的其它模塊進行檢查;
optional:可選的,參考性控制機制;
include:調用其它配置文件中的同種功能的檢測機制;
詳細機制:
[status1=action1, status2=action2, ...]
status:檢查結果返回狀態:
action:採起的行爲,好比ok, done, die, bad, ignore,reset
module-path:模塊文件路徑;
相對路徑:相對於/lib64/security/目錄而言;
絕對路徑:可位於任何可訪問路徑;
module-arguments:模塊的專用參數;
模塊示例:
pam_shells.so:檢查用戶的shell程序;
/etc/pam.d/sshd
在auth棧的第一行添加:
pam_limits.so:系統資源分配及控制的模塊;
在用戶級別實現對其可以使用的資源的限制,例如可打開的文件數量,可同時運行的最大進程數,可用內存空間等等;
修改限制的實現方式:
(1) ulimit命令
(2) 配置文件:/etc/security/limits.conf, /etc/security/limits.d/*.conf
配置文件:每行一個定義;
<domain> <type> <item> <value>
<domain>:應用於哪些對象br/>username:單個用戶
@group:組內的全部用戶
*:全部用戶,設定默認值
<type>:限制的類型
soft:軟限制,普通用戶本身能夠修改;
hard:硬限制,由root用戶設定,且經過kernel強制生效;
-:軟硬使用相同限制;
<item>:限制的資源類型
nofile:所可以同時打開的最大文件數量;默認爲1024;
nproc:所可以同時運行的進程的最大數量;默認爲1024;
ulimit命令:用於臨時調整資源的軟硬限制或查看,僅root用戶能執行;
-a 顯示當前的全部限制
-n 最多的打開的文件描述符個數
-u 最大用戶進程數
-S 使用 soft'(軟)資源限制<br/>-H 使用
hard'(硬)資源限制