linux基礎之rsyslog
阿新 • • 發佈:2019-05-07
rest 用戶名 disco 自己 init module -h 連接數 日誌級別
系統日誌服務:
CentOS5:
syslog:
syslogd: system
klogd: kernel
CentOS6及7:
rsyslog:
syslogd
klogd
rsyslog特性:
多線程
UDP,TCP,SSL,TLS,RELP
Mysql,PGSQL,Oracle實現日誌存儲
強大的過濾器,可實現過濾日誌信息中任何部分
自定義輸出格式
一般中大型公司用的比較多的分布式日誌存儲分析系統:elk
分布式日誌存儲和搜索系統:elasticsearch 日誌收集器:logstash 前端展示工具: kibana
日誌收集方:
從功能或程序上對日誌進行分類:
facility:
auth,aurhpriv,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)
日誌收集定義:
facility.priority /var/log/messages
指定級別:
*: 所有級別 none: 沒有級別 priority: 此級別及更高級別的日誌信息=priority: 此級別
rsyslog相關程序文件:
主程序:rsyslogd 配置文件:/etc/rsyslog.conf 服務腳本:/etc/rc.d/init.d/rsyslog
舉例: # vim /etc/ssh/sshd_config 自定義日誌分類:SyslogFacility local2 # vim /etc/rsyslog.conf 指明local2分類的日誌所有級別下:local2.* /var/log/sshd.log
# service sshd restart
# service rsyslog restart重新登錄ssh後可以在/var/log/sshd.log看到登錄日誌
rsyslog.conf配置文件:
RULES: facility.priority target target: 文件路徑: 記錄於指定日誌文件中,通常應該在/var/log目錄下,文件路徑前的"-"表示異步寫入 用戶: 將日誌通知給指定用戶 *: 所有用戶 日誌服務器:@host host: 必須監聽在tcp或udp協議514端口上提供服務 管道: |COMMAND
文件記錄的日誌的格式
事件產生的日期時間 主機 進程pid:事件內容
有些日誌記錄二進制格式:/var/log/wtmp,/var/log/btmp
/var/log/wtmp:當前系統上成功登陸的日誌:
查看日誌: last
/var/log/btmp:當前系統上失敗的登錄嘗試
查看日誌: lastb
lastlog命令: 顯示當前系統上每一個用戶最近一次的登錄時間
rsyslog服務器:
日誌信息存儲目標指向TARGET為一臺主機:
1. MODULES中啟用模塊:udp和tcp都可以,這裏都啟動好了
# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp $InputTCPServerRun 514
# netstat -tunl //514在監聽
2. 另一臺電腦以本機作為日誌服務器
# vim /etc/rsyslog.conf
比如就指定這個吧
*.info;mail.none;authpriv.none;cron.none @192.168.2.104 //指向日誌服務器
將日誌記錄於mysql數據庫中
1. rsyslog服務器安裝驅動:rsyslog-mysql
# yum install rsyslog-mysql
2. mysql服務器授權就可以了
MariaDB [(none)]> GRANT ALL ON Syslog.* TO ‘syslog‘@‘192.168.2.%‘ IDENTIFIED BY ‘syslogpass‘;
MariaDB [(none)]> FLUSH PRIVILEGES;
順便查看一下mysql的配置文件有沒有跳過名稱解析,沒有的話加上下面兩行
# vim /etc/my.cnf skip_name_resolve = on innodb_file_per_table = on
# service mysqld restart
3. rsyslog服務器以重定向方式導入Syslog數據庫及表,當然也可以自己去手動創建
# mysql -usyslog -h192.168.2.105 -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
4. 修改rsyslog服務器配置文件:
1.Modules這一個條目下面添加: $ModLoad ommysql //加載連接mysql模塊 2. RULES下面添加: *.info;mail.none;authpriv.none;cron.none :ommysql:192.168.2.105,Syslog,syslog,syslogpass//將日誌發往ommysql輸出過濾器,服務器地址,數據庫,連接數據庫的用戶名,密碼
5.測試
現在在rsyslog服務器/var/log/messages下已經看不到日誌了,在數據庫中可以查看
連接數據庫後:
USE Syslog;
SELECT * FROM SyslogEvents\G
6. 使用日誌分析前端工具:loganalyzer
安裝服務器環境
# yum install httpd php php-mysql
下載loganalyzer:http://download.adiscon.com/loganalyzer/loganalyzer-4.1.5.tar.gz
安裝analyzer
# tar xf loganalyzer-4.1.5.tar.gz
# mv
拷貝src和contrib下的腳本到loganalyzer下
# tar xf loganalyzer-4.1.5.tar.gz -C /var/www/html/
# mv loganalyzer-4.1.5/ log
# mv log/src loganalyzer
# cp log/contrib/* loganalyzer/
# cd loganalyzer/
執行下腳本,沒問題的話修改配置文件權限
# chmod +x *.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php //沒有的話會自動創建一個
按步驟設置好loganalyzer第一次登陸設置
安裝php-gd顯示mysql數據圖形
# yum install php-gd
# service httpd reload
linux基礎之rsyslog