日誌級別:事件的關鍵性程度,Loglevel 日誌等級 mysql
syslogd: system application 記錄應用日誌 sql
klogd: linux kernel 記錄內核日誌 數據庫
C/S 架構:經過TCP 或UDP 協議的服務完成日誌記錄傳送,將分佈在不一樣主機的日誌實現集中管理
一、rsyslog 特性:CentOS6 和7,不能用於較大的環境
二、ELK :elasticsearch, logstash, kibana ,管理日誌整套的解決方案
基於apache 軟件基金會jakarta 項目組的項目lucene
Logstash 對日誌進行收集、分析,並將其存儲供之後使用
auth, authpriv, cron, daemon,ftp,kern, lpr, mail,news, security(auth), user, uucp, local0-local7, syslog
debug, info, notice, warn(warning), err(error),crit(critical), alert, emerg(panic)
(3)logger -p rules "顯示的東西" 測試命令
例:logger -p local1.info 'this is a test log'
CentOS 6 :service rsyslog {start|stop|restart|status}
CentOS 7 :/usr/lib/systemd/system/rsyslog.service
配置文件:/etc/rsyslog.conf主配置文件,/etc/rsyslog.d/*.conf
RULES 配置格式: facility.priority ; facility.priority… target
例:*.info;mail.none;authpriv.none;cron.none /var/log/messages
facility1,facility2,facility3,... :指定的facility 列表
PRIORITY(只有名字) :指定級別(含)以上的全部級別
④ 日誌服務器:@host 或 @@host ,把日誌送往至指定的遠程服務器記錄
例1:自定義ssh服務的日誌: local1.* /var/log/sshd.log
需設置sshd的配置文件/etc/ssh/sshd_config
例2:自定義:local2.* along,root,/var/log/sshd.log
測試命令:logger -p local2.info 'this is a test log'
local3.*@192.168.30.111 (@走的是udp協議)
在192.168.30.111 機器上設置,提供UDP遠程鏈接的功能默認被註釋了,取消兩行註釋
local1.* /var/log/remote.log 日誌存在111 的/var/log/remote.log下
logger -p local3.info "this is a remote log"
local3.*@@192.168.30.111 (@@走的是tcp協議)
在192.168.30.111 機器上設置,在tcp的註釋兩行取消
local1.* /var/log/remote.log 日誌存在111 的/var/log/remote.log下
logger -p local3.info "this is a remote log"
/var/log/secure:su切換,系統安裝日誌,文本格式,應週期性分析
/var/log/btmp:當前系統上,用戶的失敗嘗試登陸相關的日誌信息,二進制格式,直接查看的亂碼
若是想取消錯誤登陸,不要直接刪除btmp文件,>btmp清空就好
/var/log/wtmp:當前系統上,用戶正常登陸系統的相關日誌信息, 二進制格式
/var/log/lastlog: 每個用戶最近一次的登陸信息, 二進制格式,
/var/log/dmesg :系統引導過程中的日誌信息,文本格式
/var/log/anaconda : anaconda的安裝日誌
Systemd 有統一管理全部 Unit 的啓動日誌。帶來的好處就是,能夠只用journalctl 一個命令,查看全部日誌(內核日誌和應用日誌)。日誌的配置文件/etc/systemd/journald.conf
journalctl --since="2017-10-30 18:10:30"
journalctl --since "20 min ago"
journalctl --since "2017-01-10" --until "2017-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"
journalctl /usr/lib/systemd/systemd
journalctl _UID=33 --since today
journalctl -u nginx.service --since today
例:journalctl -u sshd --since today
journalctl -u nginx.service -f
journalctl -u nginx.service -u php-fpm.service --since today
(3)查看指定優先級(及其以上級別)的日誌,共有8級,默認是分頁的
日誌默認分頁輸出,--no-pager 改成正常的標準輸出,不分頁
journalctl -b -u nginx.service -o json
journalctl -b -u nginx.serviceqq -o json-pretty
journalctl --vacuum-time=1years
① logrotate 程序是一個日誌文件管理工具。用來把舊的日誌文件刪除,並建立新的日誌文件,稱爲日誌轉儲或滾動。能夠根據日誌文件的大小,也能夠根據其天數來轉儲,這個過程通常經過 cron 程序來執行
copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷
create mode owner group 轉儲文件,使用指定的文件模式建立新的日誌文件
delaycompress 和 和 compress 一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮
nodelaycompress 蓋 覆蓋 delaycompress 選項,轉儲並壓縮
errors address 專儲時的錯誤信息發送到指定的Email 地址
mail address 把轉儲的日誌文件發送到指定的E-mail 地址
olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下
prerotate/endscript 在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
rotate count 指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份
Nomissingok 若是日誌不存在,繼續下一第二天志,不提示錯誤
原理:讓centos 6上的日誌記錄到centos 7的數據庫中
yum -y install mariadb-server 下包
mysql_secure_installation 安全腳本
yum -y install rsyslog-mysql.x86_64
scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql @192.168.30.222:
① mysql -uroot -p12345 < createDB.sql 以root的身份執行這個腳本,生成指定的數據庫的東西
mysql -uroot -p12345 能夠登陸查看一下,缺乏生成了
② 建立一個在centos6 上能遠程鏈接7 的用戶,並授給他對Syslog數據庫的全部權限,並設置密碼爲along
grant all on Syslog.* to loguser@'192.168.30.111' identified by 'along';
四、在centos 6 容許rsyslog-mysql 模塊使用
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.30.222,Syslog,loguser,along 把全部日誌都放到7 上的數據庫
格式: :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
MariaDB [Syslog]> select * from SystemEvents \G;
不過看着不舒服,爲了看的舒服,搭建lamp,用php實現圖形化界面,利用查看
yum -y install httpd php-fpm php-mysql
systemctl start php-fpm 開啓php-fpm服務
DirectoryIndex index.php index.html
vim /etc/httpd/conf.d/fcgi.conf
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
systemctl restart httpd 重啓http服務
yum -y install rsyslog-mysql.x86_64
scp /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql @192.168.30.222:
yum -y install mariadb-server 下包
mysql_secure_installation 安全腳本
① mysql -uroot -palong < mysql-createDB.sql 以root的身份執行這個腳本,生成指定的數據庫的東西
mysql -uroot -palong 能夠登陸查看一下,確實生成了
② 建立一個在B 上能遠程鏈接A 的用戶,並授給他對Syslog數據庫的查看權限,並設置密碼爲along
grant select on Syslog.* to loguser@'192.168.30.107' identified by 'along';
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.30.222,Syslog,loguser,along 把全部日誌都放到7 上的數據庫
格式: :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
tar xvf loganalyzer-4.1.5.tar.gz
yum -y install php-gd 裝php的圖形包
mv src/* /var/www/html/ 由於php的源代碼都在src裏,只把這個目錄下全部東西拷過去就行