本文共 4268 字,大约阅读时间需要 14 分钟。
云计算时代,越来越多的企业将其IT基础架构迁移到公有云平台提供业务支撑,传统上我们可以自己部署一套例如ZABBIX监控平台,外加日志分析平台ELK(Elasticsearch、Logstash、Kibana)实现全局监控,但是当业务迁移到公有云平台时,其监视内容就不仅仅是传统的计算、存储、网络、硬件设备了,还需要对云平台做监视,以便清楚的知道公有云平台运行状况是否影响“我”的业务。
今天我们将邀请硕软 ( 微软技术合作伙伴 ) 的云解决方案架构师徐庭,基于国内大型企业客户的项目实践,为大家分享云原生监控平台部署中遇到的问题和对应解决方法,基于Azure Log Analytics Agent 的排错指南。希望可以帮助到大家。
以Microsoft Azure为例,借助Azure Monitor可以:
以下是Azure Monitor的一个简单示意架构图
近日在帮助客户借助Azure Monitor服务实现企业级云原生监控平台,就使用到了上述若干组件。先看下效果图
但是在实施过程中也遇到不少问题,尤其是日志分析服务Log Analytics,发现无法正常推送Log Analytics Agent(又称为OMSAgent),
无法通过Azure Portal卸载或者通过Log Analytics 断开 VM 连接
今天这里就简单总结一下遇到的问题以及对应的解决办法
在开始之前首先查看Azure Linux Agent是否正常运行,可以管理 Linux 与 FreeBSD 预配,以及 VM 与 Azure 底层控制器之间的交互,它是实现其他IaaS VM扩展的前提, 除了提供预配功能的 Linux 代理外,Azure 还提供对某些 Linux OS 使用 cloud-init 的选项。如果非正常运行或者版本较低建议您重新安装或者升级到较新版本。可参考。
问题一:代理通信问题
使用Log Analytics 故障排除工具查找和诊断 Log Analytics 代理问题,主要检查:
-
代理运行不正常,检测信号无法正常工作
-
代理未启动,无法连接到 Log Analytic 服务
-
代理系统日志无效
-
代理的 CPU/内存使用率高
-
代理存在安装问题
-
代理自定义日志无效
-
收集代理日志
将以下命令粘贴到具有 Log Analytics 代理的计算机上的终端窗口中,可以运行故障排除工具:
sudo /opt/microsoft/omsagent/bin/troubleshooter
收集并分析Log Analytics Agent for Linux日志
文件 | 路径 |
Log Analytics Linux 代理日志文件 | /var/opt/microsoft/omsagent/<workspace id>/log/omsagent.log |
Log Analytics 代理配置日志文件 | /var/opt/microsoft/omsconfig/omsconfig.log |
通过日志可以发现Omsconfig.log中看到有报错信息:
2020/11/03 08:44:30: ERROR: null(0): EventId=1 Priority=ERROR Job 10B65B80-B048-413C-B1FF-2341EC407ADD : DSC Engine Error : Error Message Inventory mof does not exist. Error Code : 1
解决办法:
运行命令:
sudo su omsagent -c 'python /opt/microsoft/omsconfig/Scripts/GetDscConfiguration.py'
此命令返回代理从门户网站看到的配置,包括系统日志设置,Linux性能计数器和自定义日志。根据提示完成相关建议操作
安装PaPing,检查防火墙
#wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/paping/paping_1.5.5_x86-64_linux.tar.gz #tar zxvf paping_1.5.5_x86-64_linux.tar.gz
检查防火墙:(黄色部分替换为对应的WorkSpaceID)
./paping -p 443 -c 10 [WorkSpaceID].ods.opinsights.azure.cn./paping -p 443 -c 10 [WorkSpaceID]. oms.opinsights.azure.cn
重新启动OMSAgent
sudo /opt/microsoft/omsagent/bin/service_control restart [WorkSpaceID]
验证更改是否生效
sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
问题二:无法通过代理连接到 Azure Monitor
解决办法:
使用以下命令(启用 -v 选项)通过 Log Analytics Linux 代理重新载入到 Azure Monitor。它允许通过代理服务器重新连接到 Azure Monitor 的代理。
/opt/microsoft/omsagent/bin/omsadmin.sh -w-s -p -v
重新启动OMSAgent
sudo /opt/microsoft/omsagent/bin/service_control restart [WorkSpaceID]
验证更改是否生效
sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
问题三:在 Azure 门户中,log Analytics 代理扩展标记为失败状态:预配失败
解决办法:
Azure Portal中断开log Analytics连接
Azure Portal删除VM扩展
使用下面的命令清除之前产生的配置文件
sudo rm -rf /etc/opt/microsoft/omsagentsudo rm -rf /var/opt/microsoft/omsagentsudo rm -rf /opt/microsoft/omsagentsudo yum remove -y scx omi omsagent omsconfig auoms
使用下面的命令联机下载Agent
wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh --no-check-certificate
使用下面的命令解压并安装Agent
sh onboard_agent.sh -w [WorkSpaceID] -s [WorkSpace Key] -d opinsights.azure.cn
重新启动OMSAgent
sudo /opt/microsoft/omsagent/bin/service_control restart [WorkSpaceID]
验证更改是否生效
sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
问题四:无法断开log Analytics无法删除VM扩展,获取Agent状况
解决办法:
登录VM直接联机下载清除脚本卸载当前Agent【传说中的重启重装换电脑的第二大法宝】
wget https://raw.githubusercontent.com/microsoft/OMS-Agent-for-Linux/master/tools/purge_omsagent.sh
执行清除卸载Agent
sudo sh purge_omsagent.sh
使用下面的命令联机下载Agent
wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh --no-check-certificate
使用下面的命令解压并安装Agent
sh onboard_agent.sh -w [WorkSpaceID] -s [WorkSpace Key] -d opinsights.azure.cn
重新启动OMSAgent
sudo /opt/microsoft/omsagent/bin/service_control restart [WorkSpaceID]
验证更改是否生效
sudo /opt/microsoft/omsagent/bin/omsadmin.sh -l
返回log Analytics Portal,查看Agent状况【应该处于未连接状态】
再次点击“连接”应该就工作正常了
在我的这个客户CASE里面,以上几个问题全部遇到,以及绝大部分采用了“重装大法”
此时我们就可以检索当前连接到Log Analytics 工作区的CPU负载情况(Top10)
最后需要注意的是,当我们针对某一特定主机做日志查询与分析的时候,一定要看Log Analytics工作区里显示的名称,发现computer参数调取的是虚拟机的计算机名称,而不是Azure Portal中虚拟机名称。
使用如下命令可以遍历整个Log Analytics 工作区的服务器信息
Heartbeat | where OSType == 'Linux' | summarize arg_max(TimeGenerated, *) by SourceComputerId | sort by Computer | render table
以上,就是Log Analytics Agent排错的答题思路,希望可以为大家带来启发。
最后,在这个项目解决中非常感谢来自世纪互联运营的Azure技术专家的大力支持。
转载地址:https://microsoftchina.blog.csdn.net/article/details/112466252 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!