こんにちは。 CTOの馬場です。

弊社で開発・公開している監視エージェント happo-agent をメジャーバージョンアップして 3.0.0 をリリースしました!

Yet another Nagios nrpe の名のとおり、nrpeを代替する目的で開発し OSSとしてGitHubで公開しています。

GitHub - heartbeatsjp/happo-agent: Yet another Nagios nrpe

目玉の新機能は 「Windowsに(一部)対応」 です。

GitHubのリリースページからダウンロードしてご利用いただけます。

Release 3.0.0 · heartbeatsjp/happo-agent · GitHub

今まではLinuxに注力・特化していましたが、 (わたしの見聞きする範囲での)WebシステムでのOS利用状況の変化もあり、Windowsに対応することにしました。

簡単だったこと : Windows用バイナリの作成

Go言語を利用しているため、Windows用バイナリの作成はとても簡単でした。

ビルド時のターゲットOSにWindowsを追加するだけです。 素晴らしい。

https://github.com/heartbeatsjp/happo-agent/pull/82/commits/4d9492448d426c862e233dda4969943e27e15702

大変だったこと : エコシステムの選定・検証

Go言語パワー(?)のお陰でコードの変更はとても簡単だったのですが、 エコシステムの検証は大変でした。 具体的にはチェックプラグインとサービス化手法です。

チェックプラグインは、今のところ監視・メトリクス取得のためのプラグインは、Sensuの sensu-plugins-windows がよさそうです。

sensu-plugins/sensu-plugins-windows: Sensu Windows Plugins

基本Rubyなのですが、Rubyランタイムがインストールされていない場合はPowerShellのプラグインもあります。 (同リポジトリの bin/powershell にあります)

サービス化手法も悩みました。 なにしろGo言語としてライブラリが用意されているのです。 golang.org/x/sys/windows/svc を利用して自前実装する選択肢もありましたが、 今回はLinuxでの動作を基本形として似た形にしたく、 NSSMを利用してみています。

NSSM - the Non-Sucking Service Manager

インストール方法、サービス登録方法などはREADMEにありますのでご活用ください。

Experimental: Windows Support - https://github.com/heartbeatsjp/happo-agent#experimental-windows-support

自作している理由

happo-agentはハートビーツのコア事業であるMSP事業の中核ソフトウェアです。 自分たちの競争力は自分たちで作り磨き続けたいという気持ちで企画から開発・運用・改善まで継続的に実施しています。 事業の競争力的な観点とは別に、いちITエンジニアとして、ソフトウェアの消費者としてだけではなく、制作者でもいたい・いてほしいと思っています。

課題を適切に解決するために、必要なものはきちんと作りたい方、ぜひハートビーツで一緒にhappo-agentを開発しましょう。

=> 採用情報 | 株式会社ハートビーツ

株式会社ハートビーツのインフラエンジニアから、ちょっとした情報をお届けします。