Linux系統上面,系統可以記錄從開機到當前系統上面何時發生了哪些事情,在centos 上表現為rsylog,由三部分組成
1)syslogd:主要記錄系統和網絡等服務的日志信息
2)klogd:主要記錄內核產生的各項信息
3)logretate:主要用來對日志文件進行切割循環記錄等
特點:
1)多線程工作
2)支持以TCP,UDP,SSL,TSL,RELP協議和加密完成遠程日志的記錄
3)支持在開源的關系型數據庫MYSQL,PGSQL等之上記錄日志信息
4)它還是一個強大的系統過濾器,可實現過濾系統信息的任意部分
5)使用與企業級別的日志記錄需求
6)自定義的輸出格式
rsyslog中的術語:
facility:
是從功能或程序上對日志進行分類,并由專門的工具負責記錄相應的日志信息,同時在每一個facility上我們還要為其定義一個級別,叫做priority
常用的facility有:
auth(authpriv) | 與認證相關的信息 |
cron | 周期性任務計劃cron、at等 |
daemon |
與各個服務有關的信息 |
kern | 內核產生的日志信息 |
lpr | 與打印系統相關的信息 |
與郵件系統相關的信息 | |
news | 與新聞相關的信息 |
security | security與安全相關的信息 |
syslog | syslogd程序自身產生的信息 |
user,uucp,local0-local7 | 系統本身產生的信息 |
priority:
日志級別
等級 | 等級名稱 | 描述 |
1 | info | 僅僅是一些基本信息的說明 |
2 | notice | 比info更需要注意的一些說明 |
3 | warning、warm | 警告信息,但不至于影響應用程序的運行 |
4 | err,error | 一些重大的錯誤日志,已經影響了應用程序的運行 |
5 | crit | 比error還要重要的錯誤信息 |
6 | alert | 已經是有嚴重級別的錯誤信息了,比crit更嚴重 |
7 | emerg,panic | 要死機了,內核已出現了恐慌了 |
8 | debug | 調試信息,通常用于應用程序的調試過程 |
* | 所有級別 | |
none | 沒有級別 |
rsyslog的配置文件
/etc/rsyslog.conf,其規則為:
facility.priority target
設施.級別 何處
target:日志信息發送的位置:
1、文件路徑,在文件路徑之前使用“-”,表示異步寫入
2、用戶,將日志信息通知指定用戶,*表示所有用戶
3、日志服務器地址 @SERVER,此時服務器必須要監聽在tvp或udp協議的514端口上提供服務
4、管道,可以通過管道命令送給某個命令進行處理 |COMMAND
日志文件記錄的格式:
時間產生的時間 主機 進程(PID) 事件
有些日志記錄二進制格式,例如:
1、成功登陸系統的日志:/var/log/wtmp
查看命令:last
2、失敗的登陸嘗試:/var/log/btmp
查看命令:lastb
3、lastlog命令顯示當前同每個用戶各自最近一次的登錄信息
如果想讓本機成為日志服務器,打開rsyslog配置文件/etc/rsysog.conf中指定的模塊,讓其監聽在514端口上:
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
然后重啟服務
logrotate:循環切割日志
可以配合cron定期的對日志文件進行處理,只要通過/etc/cron.daily/logrotate程序來處理
配置文件:
/etc/logrotate.conf(主配置文件)
/etc/logrotate.d/*
]# vi /etc/logrotate.conf
weekly 默認每周對登錄文件進行一次切割
rotate 4 保留多少個登錄文件,默認是四個
create 由于登錄文件被更名,因此創建一個新的來繼續記錄
include /etc/logrotate.d 將這個目錄下的所有文件都讀過來。許多服務的主配置文件里都有這個
/var/log/wtmp {
monthly 每月一次
create 0664 root utmp 指定新建文件的權限與所屬賬號/群組
minsize 1M 文件容量超過1M后才切割
rotate 1 僅保留一個,即僅有wtmp.1保留
}
/var/log/btmp {
missingok 表示如果找不到log文件也 OK
monthly
create 0600 root utmp
rotate 1
}
實戰操作
rsyslog日志服務器+MySQL及管理工具的初級部署
環境要求:安裝有rsyslog、MySQL、及管理工具(這里我們用loganalyzer-3.6.5)
我的環境:centos 7
firewald.service 已關閉
selinux已禁用
1安裝程序包:
~]# yum -y install mariadb-server
MySQL配置
skip_name_resolve=ON
~]# yum -y install rsyslog 這個系統默認都安裝的呢
~]# yum -y install rsyslog-mysql rsyslog連接MySQL的組件
loganalyzer-3.6.5.tar.gz 這個是一個管理日志的工具,如果沒有課自行到官網下載
2在mysql server準備rsyslog專用的用戶賬號
GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass';
3生成所需要的數據庫和表;
mysql -ursyslog -h127.0.0.1 -prsyslogpass < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
后面的MySQL腳本是安裝rsyslog-mysql 生成的,可以用命令查看
rpm –ql rsyslog-mysql
4配置rsyslog使用ommysql模塊
~]# vi /etc/rsyslog.conf
在#### MODULES ####下面添加一行
$ModLoad ommysql
5配置RULES,將你想要記錄的日志信息記錄于mysql中
~]# vi /etc/rsyslog.conf
在#### RULES #### 下面添加一行
*.* :ommysql:127.0.0.1,Syslog,rsyslog,rsyslogpass
你想要記錄的信息類型 模塊名 ip 數據庫名 用戶名 密碼
6配置lamp環境
安裝這些包:httpd php php-mysql php-gd
yum -y install httpd php php-mysql php-gd
7設置loganalyzer
~]# tar xf loganalyzer-3.6.5.tar.gz
解壓loganalyzer包,并將里面的src目錄復制到/var/www/html/loganalyzer-3.6.5
cp -a src/ /var/www/html/loganalyzer-3.6.5
]# ln -s loganalyzer-3.6.5 log 創建一個軟鏈接
]# cd log
]# touch config.php
]# chmod 666 config.php
]# systemctl start httpd將httpd啟動
8打開瀏覽器配置
http://10.1.253.4/log/
點上面的here開始配置
第一步檢查依賴條件:默認
第二步檢查文件權限:默認
第三步基本配置選項:默認
第四步為管路工具添加一個源,也就是管理哪個日志
點finish完成
9配置完成后將config.php文件的權限修改為644
chmod 644 config.php
原創文章,作者:cszdz123,如若轉載,請注明出處:http://www.www58058.com/53667