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の設定。
ここからは文章で書くのめどいのでスクリーンショットを貼っていく。
こんな感じでアイテムを作って
こんな感じでグラフにする
今回特に触れないけど録画のストレージ容量はchinachuのほうのAPIから同じ感じで取得できるしグラフもかける。
30秒毎にTCPセッションがはられるのは無駄な気しかしないのでキャッシュするなにがしを噛ましたほうがいい気がするがおいおい。まだ構築したばかりで運用はこれからなので気づいたことがあればアップデートされるかもしれないしされないと思う。