日誌配置
阿新 • • 發佈:2018-02-19
serve yum 分享圖片 system install zip emd none 端口
日誌配置
程序包:rsyslog rpm -ql rsyslog centos6 /etc/logrotate.d/syslog /etc/pki/rsyslog /etc/rc.d/init.d/rsyslog /etc/rsyslog.conf /etc/rsyslog.d /etc/sysconfig/rsyslog /lib64/rsyslog /sbin/rsyslogd/ /usr/share/doc/rsyslog-5.8.10 /usr/share/man/man5/rsyslog.conf.5.gz /usr/share/man/man8/rsyslogd.8.gz /var/lib/rsyslog centos7 /etc/logrotate.d/syslog /etc/pki/rsyslog /etc/rsyslog.conf /etc/rsyslog.d /etc/sysconfig/rsyslog /usr/bin/rsyslog-recover-qi.pl /usr/lib/systemd/system/rsyslog.service /usr/lib64/rsyslog/ /usr/sbin/rsyslogd /usr/share/doc/rsyslog-7.4.7 /usr/share/man/man5/rsyslog.conf.5.gz /usr/share/man/man8/rsyslogd.8.gz /var/lib/rsyslog 主程序: rsyslogd 配置文件: /etc/rsyslog.conf /etc/rsyslog.d/*.conf 庫文件: /lib64/rsyslog/*.so 配置文件的格式: 1》由三部分組成 MODULES: 相關模塊配置 GLOBAL DIRECTIVES: 全局配置 RULES: 日誌記錄相關的規則配置 2》規則rules的配置格式: facility.priority;facility.priority target 設施 . 級別 位置 3》facility: *: 所有的facility facility1,facility2,.... : 指定的facility列表 4》priority: *: 所有級別的日誌信息 none: 沒有級別,即不記錄 priority_name: (8中級別之一)指定級別(含)以上的所有級別的日誌信息 =priority_name: (8中級別之一)僅記錄指定級別的日誌信息 5》facility和priority中間可以使用一些符號來表示特殊意義: . 點號表示比後面還要高的等級(含)都要被記錄下來 .= 表示所有需要的等級就是後面所接的等級,其他的不要 .! 代表不等於後面多接的等級,即除了這個等級外的都將記錄 6》target: 日誌信息發送的位置。 1)文件路徑:通常在/var/log/ ,文件路徑前的 - 表示異步寫入。 2)用戶:將日誌事件通知給指定的用戶,* 表示登錄的所有用戶。 3)日誌服務器:@server_host ,把日誌送往至指定的遠程服務器記錄。註意,服務器必須要監聽tcp或udp的514端口上的服務。其中@host表示使用udp的協議,@@host表示使用tcp的協議。 4)管道: | COMMAND,轉發給其他命令處理。 配置日誌服務器 1》把本地配置為日誌服務器,可以打開配置文件/etc/rsyslog.conf中的指定模塊,讓其監聽在514端口上。 vim /etc/rsyslog.conf #### MODULES #### 12 # Provides UDP syslog reception 13 $ModLoad imudp 14 $UDPServerRun 514 15 16 # Provides TCP syslog reception 17 $ModLoad imtcp 18 $InputTCPServerRun 514 2》打開後重啟rsyslog服務器生效 service rsyslog restart ss -ntul|grep 514 3》在應用服務器 vim /etc/rsyslog.conf local2.* @@192.168.25.107 日誌切割存儲的功能組件:logrotate 1》介紹 logrotate 程序是一個日誌文件管理工具,用來把舊的日誌文件刪除,並創建新的日誌文件,稱為日誌轉儲或滾動。 可以根據日誌文件的大小,也可以根據其天數來轉儲。 logrotate是結合cron定期的對日誌文件進行處理,主要是通過/etc/cron.daily/logrotate程序來處理。 2》logrotate的配置文件: /etc/logrotate.conf /etc/logrotate.d/ 3》/etc/logrotate.conf配置主要參數說明 compress 通過gzip 壓縮轉儲以後的日誌 nocompress 不需要壓縮時,用這個參數 copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷 nocopytruncate 備份日誌文件但是不截斷 create mode owner group 轉儲文件,使用指定的文件模式創建新的日誌文件 nocreate 不建立新的日誌文件 delaycompress 和 compress 一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 nodelaycompress 覆蓋 delaycompress 選項,轉儲並壓縮 errors address 專儲時的錯誤信息發送到指定的Email 地址 ifempty 即使是空文件也轉儲,是缺省選項。 notifempty 如果是空文件的話,不轉儲 mail address 把轉儲的日誌文件發送到指定的E-mail 地址 nomail 轉儲時不發送日誌文件 olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統 noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下 prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 daily 指定轉儲周期為每天 weekly 指定轉儲周期為每周 monthly 指定轉儲周期為每月 size 指定日誌超過多大時,就執行日誌轉儲 rotate count 指定日誌文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份 Missingok 如果日誌不存在,提示錯誤 Nomissingok 如果日誌不存在,繼續下一次日誌,不提示錯誤 weekly 默認每周對登錄文件進行一次切割 rotate 4 保留多少個登錄文件,默認為4個 create 由於登錄文件被更名,因此創建一個新的來繼續記錄 dateext #compress 被更動的登錄文件是否需要壓縮 include /etc/logrotate.d 將這個目錄的所有文件都讀取進來 /var/log/wtmp { 僅針對/var/log/wtmp所配置的參數 monthly 每個月移除,取代每周 create 0664 root utmp 指定新建文件的權限與所屬賬號、群組 minsize 1M 文件容量超過1M後才進行切割 rotate 1 僅保留一個,即僅有wtmp.1保留而已 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 } rsyslog將日誌記錄於mysql中 1》準備MySQL Server 2》在mysql server 上授權rsyslog 能連接至當前服務器 mysql> GRANT ALL ON Syslog.* TO ‘loguser‘@‘%‘ IDENTIFIED BY ‘xm1234‘; 3》在rsyslog 服務器和mysql server上安裝mysql 模塊相關的程序包 yum install rsyslog-mysql 4》為rsyslog 創建數據庫及表; mysql -uroot -pxm1234 < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql 5》配置rsyslog 將日誌保存到mysql中 vim /etc/rsyslog.conf #### MODULES #### $ModLoad ommysql #### RULES #### facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD 示例 local2.* :ommysql:192.168.213.128,Syslog,loguser,xm1234 systemctl status rsyslog.service systemctl restart rsyslog.service 6》測試 在rsyslog服務器上 logger -p local2.info "haha" 在mysql服務器上 mysql -uroot -pxm1234 use Syslog ; show tables; select count(*) from SystemEvents; select * from SystemEvents \G; 通過loganalyzer 展示數據庫中的日誌 1》在rsyslog 服務器上準備lamp 或lnmp 組合 yum install httpd php php-mysql php-gd 2》安裝LogAnalyzer tar xf loganalyzer-4.1.5.tar.gz cp -a loganalyzer-4.1.5/src /var/www/html/loganalyzer cd /var/www/html/loganalyzer touch config.php chmod 666 config.php 3》配置loganalyzer systemctl start httpd.service http://HOST/loganalyzer 4》安全加強 cd /var/www/html/loganalyzer chmod 644 config.php
日誌配置