簡介
本檔案介紹如何為網路服務協調器(NSO)5.x設定系統日誌伺服器。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
配置要求
安裝完成後,需要以下檔案:
- 配置檔案為
/etc/rsyslog.conf
.
- 使用特定配置檔案定義的目錄為
/etc/rsyslog.d/
.
對於此配置,請使用多個Linux發行版中預設提供的rsyslog服務。如果伺服器上沒有該軟體,請按如下方式下載(RHEL/CentOS):
yum install rsyslog
在NSO 5.1中,系統日誌伺服器元素是 ncs.conf
已過時檔案。
註:為符合思科安全要求,已取消通過UDP對系統日誌的支援。預設值 syslog
功能通過 libc syslog(3)
仍然可用。
要將NSO日誌重定向到遠端伺服器,請參閱NSO系統日誌中繼自述檔案並使用syslog守護程式中繼配置。
組態
配置需要兩組配置檔案。一個位於運行NSO的伺服器上(本例中為傳送方),另一個位於儲存所有日誌的接收器(遠端伺服器)上。
第1步:檢查 ncs.conf
檔案中有以下區段:
<logs>
<syslog-config>
<facility>daemon</facility>
</syslog-config>
...
</logs>
第2步:配置 /etc/rsyslog.conf
如下所示:
*.* @remote_ip
舉例來說:
*.* @10.127.200.61
此行指示rsyslog服務也將「所有」守護程式日誌重定向到指定IP上的遠端主機。
步驟3:在 /etc/rsyslog.d/
路徑,如下例所示。
- 新檔案是一個配置檔案,用於告知r
syslog daemon
有關通過網路傳送到遠端伺服器的檔案的詳細資訊。
舉例來說:
$ModLoad imfile
$InputFileName /var/log/ncs/devel.log
$InputFileTag devel:
$InputFileStateFile stat-devel
$InputFileSeverity info
$InputFileFacility local6
$InputRunFileMonitor
...
- 定義所有檔案並包含詳細資訊後,您可以指定通過協定傳送檔案的位置:
# Send over UDP
local6.* @remote_ip:port
舉例來說:
local6.* @10.127.200.61:514
第4步:重新啟動 rsyslog
服務:
service rsyslog restart
注意:必須在傳送方(即NSO服務所在的伺服器)上執行步驟2到步驟4。
第5步:根據您在UDP/TCP中的要求取消對UDP/TCP一節的註釋 /etc/rsyslog.conf
檔案:
$ModLoad imudp
$UDPServerRun 514
註:514是此傳輸使用的埠。
步驟 6: 修改 /etc/rsyslog.conf
檔案。在下方新增行 ###MODULES###
部分:
$template FileTemplate,"/var/log/ncs-server/%programname%.log"
if $programname startswith 'devel' then -?FileTemplate
if $programname startswith 'audit' then -?FileTemplate
if $programname startswith 'ncs' then -?FileTemplate
if $programname startswith 'ncs-java-vm' then -?FileTemplate
if $programname startswith 'ncserr' then -?FileTemplate
註:您可以將名稱ncs-server用於目錄。
在此步驟中,定義規則以將日誌專門儲存到指定位置的NSO。
第7步:重新啟動 rsyslog
服務:
service rsyslog restart
註:必須在接收方(即要儲存日誌的遠端伺服器)上執行步驟5至7。
其他配置
必須按照以下步驟設定syslog守護程式中繼功能。但是,在生產環境中通常啟用防火牆服務和SELinux。如果啟用,則不會遠端儲存日誌。要確保這不會導致任何問題,您需要在兩個伺服器上新增以下配置:
semanage port -a -t syslogd_port_t -p udp 514
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --reload
驗證
如果步驟正確執行, syslog
伺服器是遠端設定的。要驗證這一點,請執行以下操作:
在遠端伺服器上:
nc -l -u -p 514
發件人:
logger "Message from client"
遠端伺服器必須已收到以下消息:
May 11 22:12:10 nso-recreate root: Message from client
疑難排解
如果中繼不成功,則需要再次檢查配置檔案。
此外,還可用於確認NSO和NSO的狀態 rsyslog
:
systemctl status ncs.service
Expected output: [root@nso-recreate ncs]# systemctl status ncs.service ● ncs.service - LSB: NCS Loaded: loaded (/etc/rc.d/init.d/ncs; bad; vendor preset: disabled) Active: active (runnin) since Tue 2022-05-10 21:55:59 EDT; 24h ago ... No other lines in red in the status output.
service rsyslog status
Expected output: [root@nso-recreate ncs]# service rsyslog status Redirectin to /bin/systemctl status rsyslog.service ● rsyslog.service - System Loggin Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (runnin) since Wed 2022-05-11 01:12:08 EDT; 21h ago ... No other lines in red in the status output.
您可以檢查防火牆規則或SELinux配置。它們可以阻止日誌傳輸到遠端目標。
systemctl status firewalld.service
sestatus