背景信息
Syslog是網(wǎng)絡(luò)上各種設(shè)備將日志收集到日志服務(wù)器的一種數(shù)據(jù)協(xié)議,它幾乎被所有的網(wǎng)絡(luò)設(shè)備支持,并且能夠記錄多種事件類型的日志消息,支持syslog的設(shè)備常見的有路由器、交換機(jī)、打印機(jī)等,甚至unix-like的服務(wù)器也可以支持產(chǎn)生syslog消息,用以記錄用戶的登錄、防火墻事件、apache或者nginx access日志等。
Syslog主要是基于RFC5424和RFC3164定義相關(guān)格式規(guī)范,RFC3164協(xié)議是2001年發(fā)布的,RFC5424協(xié)議是2009年發(fā)布的升級(jí)版本。因?yàn)樾掳婕嫒菖f版,且新版本解決了很多問題,因此推薦使用RFC5424協(xié)議。
本文介紹通過Syslog協(xié)議將日志上傳到日志服務(wù)的操作步驟。您需要購買ECS作為Syslog匯聚服務(wù)器,Linux服務(wù)器默認(rèn)自帶Rsyslog,目前華為云主機(jī)默認(rèn)未配置接收遠(yuǎn)程Syslog寫入,需要手動(dòng)開啟。
方案概述

您可以購買Linux云主機(jī),配置為Syslog匯聚服務(wù)器,用于接收其他設(shè)備發(fā)送的日志數(shù)據(jù);Syslog服務(wù)器默認(rèn)接收日志大小為1024字節(jié),超過會(huì)截?cái)唷?/p>
單臺(tái)Syslog服務(wù)器處理日志能力為10MB/s,如果您的日志量較大,或者希望可靠性更高,可以購買多臺(tái)ECS配置為Syslog服務(wù)器,并配置 ELB負(fù)載均衡 分發(fā)流量。
您需要在Syslog服務(wù)器上安裝ICAgent,并配置日志采集規(guī)則,就可以將日志采集到 LTS 。
資源規(guī)劃
購買兩臺(tái)ECS機(jī)器,一臺(tái)ECS作為Syslog匯聚服務(wù)器,另一臺(tái)用為業(yè)務(wù)ECS模擬客戶系統(tǒng)或者設(shè)備發(fā)送日志。
購買彈性 云服務(wù)器
- 登錄管理控制臺(tái),選擇“計(jì)算 > 彈性云服務(wù)器 ECS”。
- 購買一臺(tái)彈性云服務(wù)器作為Syslog匯聚服務(wù)器。
推薦CentOS 6.5 64bit及其以上版本的 鏡像 , 推薦規(guī)格為2vCPUs | 4GB。
- 使用root用戶登錄Syslog服務(wù)器,安裝ICAgent。
- syslog服務(wù)器安全組出方向打開TCP協(xié)議的30200、30201、8149、8923、8102等端口,入方向需打開UDP的514端口作為syslog服務(wù)器默認(rèn)監(jiān)聽端口。
- 在 云日志 服務(wù)管理控制臺(tái),左側(cè)導(dǎo)航欄選擇“主機(jī)管理 > 主機(jī)”,進(jìn)入“主機(jī)”頁面。
- 單擊“安裝ICAgent”, 安裝系統(tǒng)選擇“Linux”,主機(jī)類型選擇“區(qū)域內(nèi)主機(jī)”,“安裝方式”選擇“獲取AK/SK憑證”,單擊“復(fù)制命令”復(fù)制ICAgent安裝命令,并手動(dòng)替換AK/SK。
- 使用root用戶登錄syslog服務(wù)器,執(zhí)行ICAgent安裝命令進(jìn)行安裝,當(dāng)顯示“ICAgent install success”時(shí),表示安裝成功。安裝成功后,在云日志服務(wù)左側(cè)導(dǎo)航欄中選擇“主機(jī)管理 > 主機(jī)”,查看該服務(wù)器中ICAgent的狀態(tài)。
- 打開RSyslog服務(wù)器監(jiān)聽接收功能。
目前華為云主機(jī)rsyslog服務(wù)器默認(rèn)未配置接收遠(yuǎn)程syslog寫入,需要手動(dòng)開啟。
- 已登錄云主機(jī)。
- 修改rsyslog配置文件。
vi /etc/rsyslog.conf
- 配置文件中添加以下內(nèi)容,開啟tcp udp遠(yuǎn)程接收。
# Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
- 保存后重啟rsyslog服務(wù)器,單擊云服務(wù)器“更多 > 重啟”。
- 執(zhí)行以下任意一條命令顯示正常代表服務(wù)運(yùn)行正常。
執(zhí)行“service rsyslog status”命令檢查rsyslog運(yùn)行狀態(tài)為running。
圖2 檢查rsyslog運(yùn)行狀態(tài)執(zhí)行“systemctl status rsyslog”命令檢查rsyslog運(yùn)行狀態(tài)為running。
圖3 rsyslog運(yùn)行狀態(tài)執(zhí)行“netstat -anp | grep 514”命令查看是否打開監(jiān)聽。
圖4 查看是否打開監(jiān)聽
- 配置采集syslog日志。
- 創(chuàng)建主機(jī)組 ,在云日志服務(wù) LTS控制臺(tái)左側(cè)導(dǎo)航欄中選擇“主機(jī)管理 > 主機(jī)組”,單擊“新建主機(jī)組”,設(shè)計(jì)“主機(jī)組名稱”,勾選主機(jī)即可。
- 左側(cè)導(dǎo)航欄中選擇“接入 > 接入中心”,單擊“云主機(jī)ECS-文本日志”。
- 配置采集路徑為/var/log/messages。詳細(xì)操作請(qǐng)參考ECS接入。
- 登錄業(yè)務(wù)ecs驗(yàn)證。
當(dāng)您的業(yè)務(wù)系統(tǒng)或者設(shè)備輸出日志后,即可在LTS界面查看。登錄業(yè)務(wù)ecs使用logger -n x.x.x.x -P 514 testremotelog命令發(fā)送syslog至匯聚服務(wù)器,x.x.x.x為syslog服務(wù)器ip(公網(wǎng)ip/私有ip)地址,testremotelog為發(fā)送日志內(nèi)容,可以自定義。
執(zhí)行成功后,配置的日志組日志流里可以查看到該條日志。
或登錄syslog匯聚服務(wù)器,查看/var/log/messages中是否存在testremotelog日志。
tail -f /var/log/messages
圖5 查看是否存在testremotelog日志 - 通過多臺(tái)syslog服務(wù)器和elb實(shí)現(xiàn) 負(fù)載均衡 。
目前采集單臺(tái)syslog服務(wù)器處理日志能力為10MB/s,如果客戶日志業(yè)務(wù)量較大,可以使用多臺(tái)syslog服務(wù)器和elb實(shí)現(xiàn)擴(kuò)容和負(fù)載均衡。
- 創(chuàng)建syslog匯聚服務(wù)器和安裝ICAgent。
- 請(qǐng)參考實(shí)現(xiàn)單個(gè)Web應(yīng)用的負(fù)載均衡創(chuàng)建負(fù)載均衡器。
- 分別為TCP/UDP的端口和514端口添加監(jiān)聽器,請(qǐng)參考添加TCP監(jiān)聽器。
- 為后端添加服務(wù)器組,請(qǐng)參考后端服務(wù)器組。