Zabbix APIでホストの一覧を取得してみた

スポンサーリンク

はじめに

弊社では監視ツールとして「Zabbix」を使っています。設計書やパラメータシート、操作手順書などがあり、設定変更の度に資料を手動で更新しています。ただ、担当者が複数名いるとリアルタイムでの最新化が難しい状況があります。手動で更新しているがゆえにミスや漏れも発生します。

そこでまず手始めにZabbix APIを使って、パラメータシートを自動作成しようと考えました。Zabbixの現在の設定内容を正として、そこからパラメータシートを日々、上書きで自動作成できれば楽できますよね。

具体的な方法を調査していると「psbbix」を発見。PowerShellから簡単に使用することができるので利用することにします。

導入手順

Zabbixサーバに接続可能なWindows10のPCを使用します。
Windows10のPCから管理者としてPowerShellを起動し、「Install-Module -Name psbbix」を入力します。インストールして良いか確認されるので、「A」もしくは「Y」を入力してEnterキーを押下します。

PS C:\> Install-Module -Name psbbix
Untrusted repository
You are installing the modules from an untrusted repository.
If you trust this repository, change its InstallationPolicy value by running
 the Set-PSRepository cmdlet. Are you sure you want to install the modules from 
 'PSGallery'?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): A

モジュール内のコマンドを取得します。

PS C:\> gcm -module psbbix                                                                                              
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Clone-ZabbixHost                                   0.2.1      psbbix
Alias           Connect-Zabbix                                     0.2.1      psbbix
Alias           Delete-ZabbixApplication                           0.2.1      psbbix
Alias           Delete-ZabbixHost                                  0.2.1      psbbix
Alias           Delete-ZabbixMediaType                             0.2.1      psbbix
Alias           Delete-ZabbixTemplate                              0.2.1      psbbix
Alias           Delete-ZabbixUserGroup                             0.2.1      psbbix
Alias           Disconnect-Zabbix                                  0.2.1      psbbix
Alias           Export-ZabbixConfig                                0.2.1      psbbix
Alias           Get-ZabbixConnection                               0.2.1      psbbix
Alias           Get-ZabbixGroup                                    0.2.1      psbbix
Alias           Import-ZabbixConfig                                0.2.1      psbbix
Alias           Set-ZabbixGroup                                    0.2.1      psbbix
Function        convertFrom-epoch                                  0.2.1      psbbix
Function        convertTo-epoch                                    0.2.1      psbbix
Function        Copy-ZabbixHost                                    0.2.1      psbbix
Function        Export-ZabbixConfiguration                         0.2.1      psbbix
Function        Get-ZabbixAction                                   0.2.1      psbbix
Function        Get-ZabbixAlert                                    0.2.1      psbbix
Function        Get-ZabbixApplication                              0.2.1      psbbix
Function        Get-ZabbixDBSize                                   0.2.1      psbbix
Function        Get-ZabbixEvent                                    0.2.1      psbbix
Function        Get-ZabbixGraph                                    0.2.1      psbbix
Function        Get-ZabbixHelp                                     0.2.1      psbbix
Function        Get-ZabbixHistory                                  0.2.1      psbbix
Function        Get-ZabbixHost                                     0.2.1      psbbix
Function        Get-ZabbixHostGroup                                0.2.1      psbbix
Function        Get-ZabbixHostInterface                            0.2.1      psbbix
Function        Get-ZabbixHostInventory                            0.2.1      psbbix
Function        Get-ZabbixHttpTest                                 0.2.1      psbbix
Function        Get-ZabbixItem                                     0.2.1      psbbix
Function        Get-ZabbixMaintenance                              0.2.1      psbbix
Function        Get-ZabbixMediaType                                0.2.1      psbbix
Function        Get-ZabbixProblem                                  0.2.1      psbbix
Function        Get-ZabbixScreen                                   0.2.1      psbbix
Function        Get-ZabbixSession                                  0.2.1      psbbix
Function        Get-ZabbixTemplate                                 0.2.1      psbbix
Function        Get-ZabbixTrigger                                  0.2.1      psbbix
Function        Get-ZabbixUser                                     0.2.1      psbbix
Function        Get-ZabbixUserGroup                                0.2.1      psbbix
Function        Get-ZabbixVersion                                  0.2.1      psbbix
Function        Import-ZabbixConfiguration                         0.2.1      psbbix
Function        New-ZabbixApplication                              0.2.1      psbbix
Function        New-ZabbixHost                                     0.2.1      psbbix
Function        New-ZabbixHostGroup                                0.2.1      psbbix
Function        New-ZabbixHostInterface                            0.2.1      psbbix
Function        New-ZabbixHttpTest                                 0.2.1      psbbix
Function        New-ZabbixMaintenance                              0.2.1      psbbix
Function        New-ZabbixMediaType                                0.2.1      psbbix
Function        New-ZabbixSession                                  0.2.1      psbbix
Function        New-ZabbixTemplate                                 0.2.1      psbbix
Function        New-ZabbixTrigger                                  0.2.1      psbbix
Function        New-ZabbixUser                                     0.2.1      psbbix
Function        New-ZabbixUserGroup                                0.2.1      psbbix
Function        Remove-EmptyLines                                  0.2.1      psbbix
Function        Remove-ZabbixApplication                           0.2.1      psbbix
Function        Remove-ZabbixHost                                  0.2.1      psbbix
Function        Remove-ZabbixHostGroup                             0.2.1      psbbix
Function        Remove-ZabbixHostInterface                         0.2.1      psbbix
Function        Remove-ZabbixHttpTest                              0.2.1      psbbix
Function        Remove-ZabbixItem                                  0.2.1      psbbix
Function        Remove-ZabbixMaintenance                           0.2.1      psbbix
Function        Remove-ZabbixMediaType                             0.2.1      psbbix
Function        Remove-ZabbixSession                               0.2.1      psbbix
Function        Remove-ZabbixTemplate                              0.2.1      psbbix
Function        Remove-ZabbixUser                                  0.2.1      psbbix
Function        Remove-ZabbixUserGroup                             0.2.1      psbbix
Function        Save-ZabbixGraph                                   0.2.1      psbbix
Function        Set-ZabbixAction                                   0.2.1      psbbix
Function        Set-ZabbixApplication                              0.2.1      psbbix
Function        Set-ZabbixEvent                                    0.2.1      psbbix
Function        Set-ZabbixHost                                     0.2.1      psbbix
Function        Set-ZabbixHostGroup                                0.2.1      psbbix
Function        Set-ZabbixHostGroupAddHosts                        0.2.1      psbbix
Function        Set-ZabbixHostGroupRemoveHosts                     0.2.1      psbbix
Function        Set-ZabbixHostInterface                            0.2.1      psbbix
Function        Set-ZabbixHostInventory                            0.2.1      psbbix
Function        Set-ZabbixHttpTest                                 0.2.1      psbbix
Function        Set-ZabbixItem                                     0.2.1      psbbix
Function        Set-ZabbixMaintenance                              0.2.1      psbbix
Function        Set-ZabbixMediaType                                0.2.1      psbbix
Function        Set-ZabbixTemplate                                 0.2.1      psbbix
Function        Set-ZabbixTrigger                                  0.2.1      psbbix
Function        Set-ZabbixUser                                     0.2.1      psbbix
Function        Set-ZabbixUserGroup                                0.2.1      psbbix
Function        Write-MissingParamsMessage                         0.2.1      psbbix

PS C:\>    

これで導入は完了です。

使用方法

試しにホストの一覧を取得してみます。まず、Zabbixサーバに接続します。

PS C:\> Connect-Zabbix ZabbixサーバのIPアドレス -noSSL

Zabbixの管理コンソールにログオンする時の認証情報を入力します。

認証が通れば以下の通り表示されます。Zabbixサーバに接続できました。

PS C:\> Connect-Zabbix ZabbixサーバのIPアドレス -noSSL                                                                           
コマンド パイプライン位置 1 のコマンドレット New-ZabbixSession
次のパラメーターに値を指定してください:
PSCredential
警告: You're going to connect via insecure HTTP protocol. Consider to use HTTPS.

Connected to ZabbixサーバのIPアドレス.
Zabbix Server version: 4.0.23

Usage: Get-ZabbixHelp -list
Usage: Get-ZabbixHelp -alias

PS C:\>

ホストの一覧を取得します。

PS C:\> Get-ZabbixHost | select host                                                                                    
host
----
CentOS7-ZA4-1
CentOS7-ZA4-2
Windows10-ZA4-1
Zabbix server


PS C:\>

これらの情報を元にExcelで自動的にパラメータシートを作ろうと思います。最初の仕組みづくりは大変ですが、一度作成すれば定期的に実行するだけなので長期的に見れば運用工数の削減に期待できます。

コメント

タイトルとURLをコピーしました