はじめに
弊社では監視ツールとして「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で自動的にパラメータシートを作ろうと思います。最初の仕組みづくりは大変ですが、一度作成すれば定期的に実行するだけなので長期的に見れば運用工数の削減に期待できます。
コメント