最佳实践 | Azure Log Analytics Agent 排错答题思路
发布日期:2021-07-01 03:44:21 浏览次数:2 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Azure 服务月度更新盘点 | 十二月
下一篇:Azure Databricks大数据构建营 | 小试牛刀,顺利搞定流计算

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月11日 20时18分49秒