對于雲上的EDAS使用者來說,後端監控日志及調用鍊資訊對定位和應用診斷及其重要,EDAS目前主要分ECS叢集和K8S叢集,K8S叢集部署應用通過ARMS收集應用日志。ECS叢集因為大部分ECS都是專有網絡,因vpc天然網絡環境隔離,是以EDAS針對專業網絡ECS叢集提供了一個特殊的解決方案:日志采集器(鵲橋)。本文将就日志采集器進行介紹和技術支援遇到的經典案例進行分享
日志采集器示意圖
日志采集器分為 Server 端和 Client 端。SProxy 是安裝在您應用執行個體上的日志采集器 Client。Cproxy是安裝在EDAS後端叢集。通過cproxy->sproxy->hblog 擷取日志

日志采集器排查
現象:
在 EDAS 的服務中,如果擷取不到資料,所有和視圖以及調用鍊相關的服務均變得不可用;這部分功能包括監控(基礎監控、服務監控),報警,調用鍊
重要排查方向:
1.8002和8182重要端口,安裝日志采集伺服器執行指令'netstat -ant|grep 8002'檢測端口(8002)是否建立成功。應用伺服器執行指令'netstat -ant|grep 8182'檢視 8182 端口是否處于監聽狀态且有連接配接資訊。
2.核實sproxy和hblog日志是否異常
預設安裝目錄:/root/sproxy
sproxy日志目錄:/root/sproxy/log/console.log
/root/sproxy/log/error.log
hblog日志目錄:/usr/alisys/dragoon/log/hblog.log
3.網絡應用伺服器和日志采集器的網絡、日志采集器到後端cproxy的網絡
4.日志采集器安裝所在ecs伺服器的性能,應用伺服器性能
日志采集器相關問題
1.VPC 中安裝日志采集器大緻建議比例
• 需要根據日志量、伺服器性能等綜合判斷,目前個人建議40-50台ECS的應用需要找一個ECS安裝日志采集器
2.應用部分某種類型調用鍊擷取不到或者監控無資料。
• 調用鍊和監控資料需要有通路請求流量才會産生,如果無客戶通路網站或者并不是hsf等服務,則不會有資料
3.手動安裝指令:
• 以北京為例 wget -q -O /root/ins.sh
http://edas-bj.vpc100-oss-cn-beijing.aliyuncs.com/agent/prod/install_scripts/install_sproxy_entry.sh&& sh /root/ins.sh -vpcid "客戶的vpc id" 其中域名注意變化
4.日志采集器配置
配置檔案是 sproxy/priv/queqiao_sproxy.config,配置内容:
{vpc_instance_id, "vpc-bpxxxxxvn"}, %% 目前sproxy所在的vpc的辨別,内容為空表示使用ip位址判斷
{version, "2.0.0"}, %% 目前sproxy所在的vpc的辨別,内容為空表示使用ip位址判斷
{cproxy_info,
[{
{cproxy_addr, "100.x.x.31"}, %% 配置cproxy的位址資訊
{cproxy_reg_port, 8002}, %% cproxy的監聽注冊端口
{cproxy_conn_retry_counts, 10000000000}, %% 每個sproxy嘗試與cproxy嘗試建立連結的次數
{cproxy_conn_retry_interval, 5}, %% 嘗試建立連結的秒間隔
{cproxy_conn_heartbeat_interval, 20} %%保持連結, 機關秒
},{
{cproxy_addr, "100.x.x.31"}, %% 配置cproxy的位址資訊
{cproxy_reg_port, 8002}, %% cproxy的監聽注冊端口
{cproxy_conn_retry_counts, 10000000000}, %% 每個sproxy嘗試與cproxy嘗試建立連結的次數
{cproxy_conn_retry_interval, 5}, %% 嘗試建立連結的秒間隔
{cproxy_conn_heartbeat_interval, 20} %%保持連結, 機關秒
},{
{cproxy_addr, "100.100.19.32"}, %% 配置cproxy的位址資訊
{cproxy_reg_port, 8002}, %% cproxy的監聽注冊端口
{cproxy_conn_retry_counts, 10000000000}, %% 每個sproxy嘗試與cproxy嘗試建立連結的次數
{cproxy_conn_retry_interval, 5}, %% 嘗試建立連結的秒間隔
{cproxy_conn_heartbeat_interval, 20} %%保持連結, 機關秒
},{
{cproxy_addr, "100.x.x.32"}, %% 配置cproxy的位址資訊
{cproxy_reg_port, 8002}, %% cproxy的監聽注冊端口
{cproxy_conn_retry_counts, 10000000000}, %% 每個sproxy嘗試與cproxy嘗試建立連結的次數
{cproxy_conn_retry_interval, 5}, %% 嘗試建立連結的秒間隔
{cproxy_conn_heartbeat_interval, 20} %%保持連結, 機關秒
}]
},
5.操作指令
停止: ./run_sproxy_rel.sh stop
啟動: ./run_sproxy_rel.sh start
重裝:sh /root/install_sp.sh -force
配置原因導緻無法采集資料案例(步驟分析)
問題現象:使用者正常安裝采集器後,頁面監控大盤資料還是無法檢視,具展現象如截圖:
排查步驟:
1.登入伺服器核實8182端口是否建立成功,netstat -ant|grep 8182
2.根據問題截圖确認了應用伺服器的安全組配置,确認安全組對采集器放開了8182端口(排出網絡原因)
3.登入采集器伺服器 執行 netstat -ant|grep 8002沒有建立連接配接
4.定位是否沒有成功安裝采集器,重新重新安裝後,再次确認8002沒有建立連接配接。
5.定位sproxy日志資訊, 檢視/root/sproxy/log/console.log 發現報錯提示cproxy位址127.0.0.1連結失敗
6.日志采集器應該是後端伺服器,不應該是本地ip的,核實queqiao_sproxy.config配置cproxy的位址錯誤
解決方案:
1、保留原有配置mv queqiao_sproxy.config queqiao_sproxy.config.bak
2、複制sproxy/priv下queqiao_sproxy_hz檔案,新命名queqiao_sproxy.config: cp queqiao_sproxy_hz.config queqiao_sproxy.config
3.停止重新開機采集器 ./run_sproxy_rel.sh stop && ./run_sproxy_rel.sh
正常現象