mirakurunをZabbixで監視したい

mirakurunとchinachuγは導入済みの前提で話が進みます。当方の環境はdebianでZabbixは3.4。

mirakurun公式がもっているmuninプラグインみたいことをZabbixでもやりたい!という導入から。で方針としてmirakurunのstatus APIを叩いてJSONをパースすればよいという方向。まずはコマンドからJSONをよしなにパースしてくれるjqを導入する。

apt-get install jq

これでcurlと組み合わせて

curl http://localhost:40772/api/status | jq -r .process.pid

こうするとプロセスIDが取れる。IPアドレスとポートは設定の環境に合わせて読み替えてほしい。このままだと進捗が表示されていまい困ったことになるので-sオプションで進捗は非表示に。でもエラーの場合はなんかほしいので-Sもつけちゃう。

方針が決まったところで/etc/zabbix/zabbix_agentd.d に設定ファイルmirakurun.confを置いてstatus APIを叩いてユーザパラメータに格納していく。zabbixエージェントが古い場合はこのディレクトリ存在しないのでzabbix_agentd.confのinclude設定を有効化すればいい。

UserParameter=mirakurun.memory[*],curl -Ss http://localhost:40772/api/status | jq -r .process.memoryUsage.$1
UserParameter=mirakurun.stream[*],curl -Ss http://localhost:40772/api/status | jq -r .streamCount.$1
UserParameter=mirakurun.error[*],curl -Ss http://localhost:40772/api/status | jq -r .errorCount.$1
UserParameter=mirakurun.timer[*],curl -Ss http://localhost:40772/api/status | jq -r .timerAccuracy.$1.avg
UserParameter=mirakurun.events,curl -Ss http://localhost:40772/api/status | jq -r .epg.storedEvents 

ユーザパラメータを定義したらzabbix-agentを再起動。


続いてZabbix Serverの設定。
ここからは文章で書くのめどいのでスクリーンショットを貼っていく。

こんな感じでアイテムを作って
f:id:azumyar:20180331063951p:plain

f:id:azumyar:20180331064450p:plain

こんな感じでグラフにする

f:id:azumyar:20180331065020p:plain

f:id:azumyar:20180331065137p:plain



今回特に触れないけど録画のストレージ容量はchinachuのほうのAPIから同じ感じで取得できるしグラフもかける。

30秒毎にTCPセッションがはられるのは無駄な気しかしないのでキャッシュするなにがしを噛ましたほうがいい気がするがおいおい。まだ構築したばかりで運用はこれからなので気づいたことがあればアップデートされるかもしれないしされないと思う。