【发布时间】:2018-08-08 18:51:31
【问题描述】:
按照本指南操作:https://b-blog.info/en/monitoring-azure-resources-with-zabbix.html
在 Windows 上从脚本获取输出,但在 Zabbix (Centos 7) 上执行时只获取“数据”。没有 SELinux,没有防火墙
pwsh azure.discovery.sql.databases.ps1 rg 111-222-222244-99
{"data":}
身份验证有效,因为 azure.json 包含令牌,并且与 Windows 机器上的文件相同
为 Linux 安装 Powerhell 6.0.2
这里有什么遗漏吗?
Win 10 笔记本电脑的输出:
.\2.ps1 rg 111111
https://management.azure.com/subscriptions/9111111/resourceGroups/rg/providers/Microsoft.Sql/servers/mojsql/databases?api-version=2014-04-01
{"data":{
"{#RGNAME}": "rg",
"{#ID}": "/subscriptions/111111/resourceGroups/rg/providers/Microsoft.Sql/servers/mojsql/databases/mojabaza",
"{#SERVERNAME}": "mojsql",
"{#DATABASENAME}": "mojabaza"
Zabbix 作为托管在 Windows 笔记本电脑上的 Hyper-V VM 运行,我可以从中获取输出
【问题讨论】:
-
“我从博客中得到了一个脚本,但它不起作用”太宽泛了;请参阅 stackoverflow.com/help/mcve 和 ericlippert.com/2014/03/05/how-to-debug-small-programs 。输出来自
$result | convertto-json,所以$result中没有任何内容。这表示它没有找到除'master'之外的任何 SQL 数据库来显示,或者它没有找到任何 SQL 服务器,或者它没有登录到 Azure。 (SELinux 是否允许pwsh建立互联网连接?您的硬件防火墙是吗?)它使令牌文件在一个操作系统与另一个操作系统上存在/不存在? -
@TessellatingHeckler,刚刚更新的问题
-
关键是只有你有那个环境,所以调试取决于你。您可以使用许多注释掉的 write-host 命令来查看与您的笔记本电脑版本的差异。
-
第二个参数是
$subscription_id- 在一个可以工作的你使用111111和在一个不工作的你使用111-222-222244-99- 只是你改变它来掩盖真正的 StackOverflow 发布?我很难看到它无法发出 Web 请求,因为如果-ErrorAction Stop无法连接或收到登录被拒绝消息,它应该会抛出一些非常明显的错误。在第 56 行之后插入一个新行write-host "servers: $sql_servers"并在 66 之后插入另一个新行write-host "databases: $sql_databases"看看它是否找到了,也许?
标签: linux powershell zabbix