chrony
CentOS 7:同步時間使用 Chronyd(/etc/chrony.conf)服務, 而CentOS 6使用的是ntpd服務(/etc/ntp.conf)
准確的時間同步:
Chrony 是網絡時間協議的(NTP)的另一種實現,與網絡時間協議后台程序(ntpd)不同,它可以更快地且更准確地同步同步系統時鍾,請注意:ntpd仍然包含其中以供需要運行NTP服務的客戶的使用。
Chrony的優勢包括:
更快的同步只需要數分鍾而非數小時時間,從而最大程度減少了時間和頻率誤差,這對於並非全天24小時運行的台式計算機或系統而言非常有用。
能夠更好地響應時鍾頻率的快速變化,這對於具備不穩定時鍾的虛擬機或導致時鍾頻率發生變化的節能技術而言非常有用。
在初始同步后,他不會停止時鍾,以防對需要系統時間保持單調的應用程序造成影響。
在應對臨時非對稱延遲時(例如,在大規模下載造成鏈接飽和時)提供了更好的穩定性。
無需對服務器進行定期輪詢,因此具備間歇性網絡連接系統仍然可以快速同步時鍾。
NTP:Network Time Protocol;
程序環境:
配置文件:/etc/chrony.conf
主程序文件:chronyd
工具程序:chronyc
chronyc sources
chronyc sourcestats
unit file:chronyd.service
配置文件:chrony.conf
server:指明時間服務器地址;
allow NETADD/NETMASK
allow all:允許所有客戶端主機
deny NETADDR/NETMASK
deny all:拒絕所有客戶端;
bindcmdaddress:命令管理接口監聽的地址;
local stratum 10:即使自己未能通過網絡時間服務器同步到時間,也允許本地時間作為標准時間授時給其它客戶端;
yum install -y chrony
yum install -y ntpd
systemctl start chronyd.service # 監聽在 udp下的323號端口
systemctl start ntpd.service # 監聽在udp下的884端口
一般不建議使用 ntpdate IP(時間同步服務器的地址)同步時間,因為會產生空白段。
rsyslog
rsyslog:
日志:歷史事件日志
歷史事件:
時間,事件
事件級別(日志級別):事件的關鍵性程度;
事件:系統引導啟動、應用程序啟動、應用程序尤其是服務類應用程序運行過程中的一些事件;
系統日志服務:
syslog:(CentOS 5 之前使用的日志記錄功能)
syslogd:system # 為各種應用程序記錄日志的
klogd:kernel # 為內核記錄日志的
事件格式較為簡單時,可統一由syslog進行記錄:
事件產生的日期時間 主機 進程 [pid]:事件內容
支持C/S架構 :可通過UDP或TCP協議提供日志記錄服務;
rsyslog:
rsyslogd
特性:
多線程:
UDP,TCP,SSL,TLS,RELP;
存儲日志信息於MySQL、PGSQL、Oracle等數據管理系統;
強大的過濾器,實現過濾日志信息中任何部分的內容;
自定義輸出格式;
rsyslog日志收集器重要術語:
facility:設施,從功能或程序上對日志收集進行分類;
auth(認證),authpriv(認證授權),cron(周期性任務),kern(內核),daemon(各種守護進程),lpr(打印系統),mail,mark(防火牆標記),news(新聞組),security,user(用戶自己在終端上產生的日志),uucp,local0-local7(自定義的),syslog(syslog自己)
priority:優先級,日志級別
debug,info,notice,warn(warning),err(error),crit(critical),alert,energ(panic)
指定級別:
*:所有級別;
none:沒有級別
priority:此級別以以高於此級別的所有級別
=priority:僅此級別;
程序環境:
主程序:rsyslogd
主配置文件:/etc/rsyslog.conf,/etc/rsyslog/*.conf
服務腳本(cnetos6):/etc/rc.d/init.d/rsyslog
Unit File(CentOS7):/usr/lib/systemd/system/rsyslog.service
配置文件格式rsyslog.conf
主要由三部分組成:
MODULES
GLOBAL DRICTIVES
RULES
RULES:
facility.priority target
target:
文件:記錄日志事件於指定的文件中;通常應該位於/var/log目錄下;文件路徑之前的"-"表示異步寫入;
用戶:將日志事件通知給指定的用戶;是通過將信息發送給登錄到系統上的用戶的終端進行的;
日志服務器:@host,八日至送往指定的服務器主機;
host:即日志服務器地址,監聽在tcp或udp協議的514端口以提供服務;
管道: | COMMAND
其它日志文件:
/var/log/wtmp:當前系統成功登錄系統的日志;
需要使用last命令查看
/var/log/btmp:當前系統嘗試登錄系統失敗相關的日志;
需要使用lastb命令查看
lastlog:顯示當前系統上的所有用戶最近一次登錄系統的時間;
/var/log/dmesg:系統引導過程中的日志信息;
也可以使用dmesg命令進行查看;
rsyslog服務器: # 取消注釋,重啟rsyslog服務,使其監聽在514端口
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
記錄日志於mysql中:
(1)於MySQL服務器:准備好MySQL服務器,創建用戶,授權對Syslog數據庫擁有全部訪問權限;
(2)於rsyslog主機:安裝rsyslog-mysql程序包;
(3)於rsyslog主機:通過導入createDB.sql腳本創建依賴到的數據庫及表;
msyql -uUSER -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(4)配置rsyslog使用ommysql模塊
### MODULES ####
$ModLoad ommysql # 日志信息輸出的模塊
#### RULES ####
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
注意:重啟rsyslog服務;
(5)web展示接口:loganalyzer # 讀取數據庫信息,並以圖形化的方式顯示
(a)配置lamp組合
httpd,php,php-mysql,php-gd
(b)安裝loganalyzer
地址:https://loganalyzer.adiscon.com/downloads/loganalyzer-v4-1-5-v4-stable/?utm_source=rss&utm_medium=rss&utm_campaign=loganalyzer-v4-1-5-v4-stable
# tar xf loganalyzer-3.6.5.tar.gz
# cp -r loganalyzer-3.6.5.tar.gz/src /var/www/html/loganalyzer
# cp -r loganalyzer-3.6.5/contrib/*.sh /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# chmod +x *.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
通過URL訪問
http://HOST/loganalyzer
記錄日志到另一台主機
記錄日志到另外一台主機:
現有兩台主機,192.168.0.10和192.168.0.11,讓192.168.0.11機器上產生的日志記錄到192.168.0.10機器上:
在192.168.0.10機器上,修改/etc/rsyslog.conf配置文件,讓其監聽在udp和tcp的某個端口之上,
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
重啟rsyslogd:
systemctl restart rsyslog
在192.168.0.11機器上,修改/etc/rsyslog.conf配置文件,讓其產生的日志發送到192.168.0.10機器上:
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.0.10
重啟rsyslogd:
systemctl restart rsyslogd
在在192.168.0.11機器上使用yum安裝軟件包automake,並查看兩台機器上/var/log/messages文件中的日志:
發現日志已經被發送到192.168.0.10機器上了,192.168.0.10機器上並未保存; # 如下圖1
日志信息都是同步寫入的,尤其是當一個應用程序掛掉時,程序日志同步寫入到磁盤,是判斷一個程序掛掉的重要憑據,而配置文件(/etc/rsyslog.conf)中指定日志位置的文件前加"-",表示異步寫入磁盤,即使不慎丟棄一些也不影響。比如郵件相關的日志:-/var/log/maillog
圖1:


記錄日志到mysql中
(1)在192.168.0.10機器上:
yum list all | grep rsyslog # 查看rsyslog日志相關的模塊,如圖1,可以將日志記錄到mysql,pgsql,kibana,es中
yum install rsyslog-mysql -y
rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so # 日志信息輸出的模塊
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql # sql腳本,用於幫助生成mysql中的要記錄日志信息的表和表結構
systemctl start mariadb
vim /etc/my.cnf.d/server.cnf
[mysqld] # 添加以下兩項
skip_name_resolve=ON #這個參數是禁止域名解析
innodb_file_per_table=ON
systemctl restart mariadb
# 將mysql-createDB.sql腳本導入,生成所需要的數據庫
mysql < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
mysql
show databases;
Syslog # sql腳本導入生成的數據庫
show tables;
SystemEvents
SystemEventsProperties
# 授權一個用戶可以將日志寫入到mysql中的Syslog數據庫中所有表中
GRANT ALL ON Syslog.* TO 'rsyslog'@'192.168.0.%' IDENTIFIED BY 'rsyslog';
FLUSH PRIVILEGES;
vim /etc/rsyslog.conf
# 加載ommysql模塊
$ModLoad ommysql
### RULES ####
# 添加記錄日志的規則 如圖3
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.0.10,Syslog,rsyslog,rsyslog
systemctl start/restart rsyslog
(2)在192.168.0.11機器上:
/etc/rsyslog.conf的配置和 記錄日志到另一台主機 的配置保持一樣
測試:
yum remove -y socat
(3)在192.168.0.10機器上查看yum卸載socat的日志是否寫入到mysql數據庫中:# 如圖4
mysql
use Syslog;
show tables;
select * from SystemEvents\G #被記錄到表中了。。。。。
圖1:

圖2:

圖3:

圖4:

centos7+rsyslog+loganalyzer+mysql 搭建rsyslog日志服務器:https://www.cnblogs.com/zhangxingeng/p/10451828.html
