Zabbix

EdgeRouter ER-8の温度をZabbixで取得する

前回の記事を書いた後、ZabbixでEdgeRouter ER-8の温度を取得することができたので 記事にしたいと思います。 EdgeRouter ER-8を買ってセットアップしてみた   EdgeRouter ER-8 にSSHできるようにする Webでログインしたら、フッターっぽいところに system タブがあるので そこを開いてSSHを有効化します。 ちなみにこの時点でWAN側のポートが開くので要注意です。   ホームディレクトリにスクリプトを設置する これに実行権限を与える chmod +x get_temperature.sh   Zabbix server で zabbixユーザーがSSHできるようにする 僕の環境では zabbix ユーザーは /bin/false な状態だったのでいくつかコマンドを実行 [crayon-5b4efd4728bcc339667616/]   また、一度known_hostsに EdgeRouter を追加するためにzabbixユーザーでSSH [crayon-5b4efd4728bd6060957854/]     Zabbix server の外部スクリプトとしてスクリプトを設置する [crayon-5b4efd4728bd8918572239/] これをZabbixのexternalscriptsフォルダの中に入れる zabbixで実行できるようにしておく [crayon-5b4efd4728bda306984359/] zabbix server の再起動 # systemctl restart zabbix-server   Zabbix にアイテムを追加する こんな感じに追加する。 引数の部分はCPU以外にもBoardCPUととPHY、BoardPHYが取得できます。   確認する EdgeRouterのCPU温度をZabbixで取得できたぞーーー pic.twitter.com/ES5KLXss4X — らりるれるいすにゃん (@lu_iskun) 2017年5月11日

ZabbixでJWT/トークンを用いたAPIサーバーの監視を行う

ZabbixのWebシナリオ、Web監視の機能でトークンを使ったAPIサーバーの監視方法を 覚書として。 runscopeとかSaaSはあるものの月1万円近くかかるので 大した規模でないAPIサーバーならZabbixでオススメしたい。   トークンを取得するのにユーザー認証が必要なので変数に登録しておく。     Response bodyにトークンが入っているので変数の部分で正規表現をして変数にぶち込む。 regex:の後ろが正規表現が使えるようになる。 この画像の例だと [crayon-5b4efd4728e6b917221410/] がボディに入っていて、 {token}にはexasllSKJasKBA_-a.asdaZZZokが入ってくる。 ここで使える正規表現はPOSIX     最初のステップで変数に入れたtokenという変数はここでも使える。 SaaSも良いけど、小規模でいいならZabbixも便利ですよ。 Zabbix嫌いな人多すぎる。

ZabbixでLXC Containerを監視する

この記事は Zabbix Advent Calendar 2016 の13日目の記事です。 前回の12日目の記事は KAZ0225さんの「Zabbix APIの検証はAdvanced REST Clientが便利です!」です! 今回は LXC Container を Zabbix で監視してみようという内容です。 なんで Docker じゃなくて LXC なのかはあまり突っ込まないでください。 ちなみに11月29日に同じような記事を書いていますがリライトといった形になります。 [blogcard url=”https://luispc.com/server/2016/11/29/8746″][/blogcard]     問題 LXC のコンテナを監視するとき zabbix-agent 入れればいいんじゃね?と私は思っていました。 LXC は KVM とは違ってハイパーバイザでBIOS含めハードウェアをエミュレートせず、OSが利用するリソースを隔離することで仮想化しています。 そして LXC Container に zabbix-agent を入れてグラフを見てみるとこんなことが起こります。   引用: ZabbixにおけるDocker監視の方法 http://www.zabbix.com/img/zabconf2015_jp/presentations/04_zabconf2015_watanabe.pdf こちらのスライドは Docker に関することが書かれていますが LXC でも同じことが言えます。 では、どうするのかというと LXC には lxc コマンドが実装されています。 例に lxc-info を出すと cgroupsでリソース管理されているのを lxc-info で整形してくれていています。 lxc コマンドをパースしていって Zabbix に登録します。     Zabbix-LXC 既にいい感じのが GitHub にありました。 [blogcard url=”https://github.com/Lelik13a/Zabbix-LXC”][/blogcard]   がこれだと複数のNICを割り当てているとトラフィック量が取得できなかったり、 LLDが機能しなかったりしたのでフォークしてみた。 [blogcard url=”https://github.com/rluisr/Zabbix-LXC”][/blogcard] Zabbix3.2で動作確認済み。     機能 修正→ LLDを使ってコンテナを自動追加 修正→ lxc-infoで確認できるリソースの監視 修正→ コンテナに1つ以上のNICがある場合でもIN/OUTの転送量が取得できる(合算するように) 追加→ ディスクの使用量をパーセンテージで 追加→ Proxmoxを使用している場合にZabbixに登録される表示名にホスト名を指定(そのまんまだとid (ex 100, 101とか)で登録される) 正直デメリットもあって、LLD側のスクリプトはPHPで書いた。 いつかは Perl で書き直したい所存…。 アイテムとしてはこんな感じです。   インストール sudoコマンド、PHPの環境が必要です。   LXCホストOS上にて sudo ./install.sh を実行 [crayon-5b4efd4728ef8767322710/]   テンプレートのインポート [crayon-5b4efd4728f01483375014/]   コンテナが登録されるまで待つ(600秒)   あとは好きなようにできるので grafana と連携すれば Zabbix をデータソースとして使用できるのでめちゃくちゃ便利   次回は nakayama_yasuhiro…

コンテナをZabbixで監視する

今までずっとKVMを使ってきましたがコンテナ型の方が軽いし速いしで 最近はコンテナ(LXC Container)を使っています。 コンテナ型はKVMと違ってエミュレートされず、cgroupでリソース管理がされるため Zabbix-Agentを入れるだけではダメなんです;;   [blogcard url=”http://www.zabbix.com/img/zabconf2015_jp/presentations/04_zabconf2015_watanabe.pdf”][/blogcard] 詳しいことは上記で説明されています。     コンテナをZabbixで監視する 既に有志がLXC用のZabbixテンプレートを作成していて公開されていますが 私の環境ではネットワークトラフィックのIn/Outが取得できませんでした(何でかは忘れた)   [blogcard url=”https://github.com/rluisr/Zabbix-LXC”][/blogcard] ということでフォークして手直しした。     Zabbix-LXC 変更点 コンテナに1つ以上のNICがある場合でもIN/OUTの転送量が取得できる(合算) 転送量がきちんと取得できるように(?) Proxmoxを使用している場合にZabbixに登録される表示名にホスト名を指定(そのまんまだとid (ex 100, 101とか)で登録される)   インストール方法 [crayon-5b4efd4728fa4768212731/]   テンプレートのインポート [crayon-5b4efd4728fa9058423952/] の2つインポート   コンテナの登録はLLDによって勝手にされるので放置してるだけで大丈夫だと思います。 オリジナルのレポジトリはPerlでディスカバリースクリプト書かれていましたが、PHPで書き直したのでちょっとね…….。 ちなみにProxmoxはデフォでsudoとphpが入ってないのでご注意。