mackerel

A collection of 31 posts
Mackerel に部屋の温湿度を記録する
mackerel

Mackerel に部屋の温湿度を記録する

Amazon プライムデーだぜ!ということで SwitchBot の温湿度計を買いました。 https://www.amazon.co.jp/gp/product/B07L4QNZVF とりあえず仕事部屋に置いているのですが、いい感じです。寝室用にも欲しい。買い足そうかな…。 ただ置くだけでも温湿度が見れて便利なのですが、スマートホーム的な観点でメトリクスをとっていきたい。一年を通した記録を見ることで除湿・加湿器を買う際のスペックの参考にもなりそうですし、体調との関連性とかも見れたら面白そう。特に妻は頭痛持ちなので何か法則とか見出せたら役立ちそう (おそらく気圧が主な影響ぽいですが)。 構成 主な構成は以下です。 * Amazon EventBridge Scheduler * AWS Lambda * SwitchBot API v1.1 * Mackerel サービスメトリック 図だと以下。 EventBridge Scheduler で定期的に Lambda 関数を実行し、Lambda 関数で SwitchBot の API を呼び出し、取得した結果を
5 min read
Monitor the broadband speed with the Mackerel
mackerel

Monitor the broadband speed with the Mackerel

最近気持ちが忙しくてブログ更新久しぶりな気がする。。タイトルの通りネットワーク回線の速度を監視し始めたのでメモ。 モチベーション SNS の方で呟いてましたが引越しすることになりました。 引っ越すからベッド分解した´д` ; — †深淵の覚醒者† (@lorentzca) July 5, 2020 我々インターネットで生活している者たちにとって引越しで一番気になるのは回線の速度ですよね。次のおうちでも光回線が通っているのはもちろん確認済みなのですが、速度や安定性が気になるところです。 そこで回線速度を監視し、引越し後どれくらいの違いが出るか確認することにしました。 結果は以下。Wi-Fi での数値です。有線だと数倍早かった…。 有線、無線両方監視しようと思いましたが次のおうちは実質無線がメインになりそうなので、無線だけ監視してます。 方法 最近 Raspberry Pi と Greengrass の組み合わせを試してます。 * AWS IoT Greengrass とは - AWS IoT Greengrass Greengrass ではデバイス
4 min read
System job is suitable for running mackerel-agent with Nomad
nomad

System job is suitable for running mackerel-agent with Nomad

現在 Nomad クラスターを展開しこのブログを運用しています。 * nomad - ゆるふわキャンパー Nomad クラスターは現在 3 台のサーバーから構成されており、それぞれのサーバーは Mackerel でモニタリングしています。Mackerel へサーバーのメトリクスを送るためには mackerel-agent が必要ですが、mackerel-agent は Docker イメージが用意されているので、これを Nomad のジョブとして動かし Nomad クラスターの各サーバーを監視しています。 * mackerel/mackerel-agent ジョブのタイプは Service タイプを使っており、各サーバに対し 1 つの mackerel-agent が動いている状態であって欲しいので以下の工夫をしていました。 * Nomad クラスターのサーバーは 3 台なので group 節で count を 3 に設定する。 * 1 つのサーバー上に複数の mackerel-agent が実行されてしまっては意味がないので、
2 min read
Run mackerel-agent as a Nomad job
nomad

Run mackerel-agent as a Nomad job

最近ブログを動かしている環境を単一のサーバーから Nomad クラスターへと変更しました。 * Nomad クラスター上で Ghost ブログを動作させる 以前からサーバーの監視を Mackerel を用いて行なっており、今回もクラスターを構成するノード上で mackerel-agent を起動し、監視を行います。 ただし、 Nomad のジョブとして動かしてみます。 Nomad のジョブとして mackerel-agent を動かす 今までは単一の VPS を使っていたので mackerel-agent は普通にサーバーにインストールしていました。 * CentOS / RedHat にインストールする - Mackerel ヘルプ 今回 Nomad を使うにあたりどのように mackerel-agent をインストールするか考えていて、普通にサーバーにインストールしても良いのですが、サーバーには Nomad とその関連パッケージ以外は入れないのが筋が良いと思うので、Nomad ジョブとして mackerel-agent を動かすことにしました。 macker
2 min read
Running Ghost blog on Nomad Cluster
nomad

Running Ghost blog on Nomad Cluster

このブログは数年間単一のサーバーで稼働していました。 学習も兼ねてわざわざ自前でサーバーを運用していたのですが、最近新しい構成に移したくなり、Kubernetes の流行もあってクラスターやマイクロサービスといった時代の流れに乗るべく、Nomad クラスターへの移行を行いました。 Nomad クラスターの作成までは下記記事にまとめています (インフラやクラスターの設定等はここからさらに変更しています)。 * Nomad クラスターを作成する 今回はこの Nomad クラスター上で Ghost を動かすところまでをまとめます。 構成 以下の通り、DigitalOcean のマネージドロードバランサー配下に Droplet を 3台配置し、クラスターを構成しています。 クラスターを構成するノードではそれぞれ Nomad と Consul が稼働しており、Consul でサービスディスカバリーを、Nomad でワークロードオーケストレーションを行なっています。 稼働しているジョブ Nomad はジョブという単位でワークロードを定義します。ジョブの中にさらに複数のグルー
7 min read
I am Mackerel ambassador
mackerel

I am Mackerel ambassador

先日 Mackerel アンバサダープログラムへ招待いただき、アンバサダーの任を仰せつかりました。 🙏🙏🙏 * Mackerel アンバサダープログラム はじめます! - Mackerel ブログ #mackerelio Mackerel は愛着のある監視サービスであり、プライベートでも有料プランを契約し使用しておりました。 * mackerel - ゆるふわキャンパー Mackerel との出会い 前職で、まだ Nagios や Cacti をメインに使用していた時代に社内勉強会で取り上げられていたのをきっかけに知りました (確か)。 それから Mackerel の採用が決まり、 Mackerel への移行やプラグインの作成等を業務で行なっていました。 勉強も兼ねて運用している当ブログをホストしているサーバも個人で取得した Mackerel アカウントで監視を行っていて、新機能を試したりプラグインを作ってみるなどして遊んでいました。有料プランでしか使えない機能が使いたくて有料プランに変更し、サーバ代より高い請求から目をそらしつつ、 Macker
1 min read
Monitor lock status with Mackerel
mackerel

Monitor lock status with Mackerel

Sesame というスマート鍵を購入し、より快適な生活が手に入りました。 * セサミスマートロックを買った また、 Sesame の API を試してみました。 * Sesame API を試す 次の段階として、鍵の状態を Mackerel で監視してみます。 ※念のため補足すると、公式アプリでも鍵の施錠/開錠を検知したら push 通知することができるので、必要最低限の監視はできていると言えます。 なぜ監視するのか ちょっと話が横道に逸れますが、スマート鍵の導入に興味がありつつためらう理由の一つに、セキュリティが挙げられるんじゃないかな、と思っています。特に「不具合や誤作動で知らないうちに解錠される可能性があるんじゃないか」「クラッキングされて解錠されてしまうことはないのか」という点が不安に思われるんじゃないかな、と思います。 個人的には不具合で解錠されてしまう可能性より、うっかり鍵を閉め忘れて外出してしまう可能性の方がずっと高いと思います (実際私は年に数回ほど、鍵を閉め忘れていました…)。 また、 Sesame のシステムをクラッキングす
6 min read
Mackerel Meetup #12 Tokyo #mackerelio
mackerel

Mackerel Meetup #12 Tokyo #mackerelio

第12回目となる Makerel ミートアップに参加してきました。 * Mackerel Meetup #12 Tokyo #mackerelio - connpass 今回はブログ枠で参加しました。😃 会場は ドリコム さんでした。おしゃれカフェスペース的なのがあったぞ! 内容は以下でした。 * 200週連続新機能リリースとこれから * 機械学習を用いたMackerelの異常検知機能について * トレタのインフラ運用を支えるMackerel * フルマネージドホスティングの運用監視にMackerelを導入した話 感想など書いていきます。スライドは随時足していきます。 200週連続新機能リリースとこれから 200週は本当にすごいですね…。 今後の継続リリースは、毎週必ず新機能ではなく、大きめの新機能を計画的・継続的に届ける方にシフトするとのこと。 * 200週連続機能リリースの達成と、これからのMackerelについて - Mackerel ブログ #mackerelio 歴史の振り返りの話から。 Mackerel はそ
5 min read
Mackerel Meetup #11 Tokyo #mackerelio
mackerel

Mackerel Meetup #11 Tokyo #mackerelio

今年最初の Makerel ミートアップに参加してきました。 * Mackerel Meetup #11 Tokyo #mackerelio - connpass 会場は DMM.comラボ でした。相変わらず広い…。あとジャングル。 内容は以下でした。 * The 2018 Mackerel Product Roadmap * AWSで実現した Mackerel 時系列データ1分粒度長期保存の裏側 * seesaa meets Mackerel * Mackerel で ECS をどこまでモニタリングできるのか スライドは随時出てくると思うので感想などを記録します。 The 2018 Mackerel Product Roadmap Mackerel の紹介などから始まり、最近のアップデートの紹介がありました。その中で個人的にはメトリックの1分単位の粒度の保持が460日&グラフの表示期間も460日になったのと、 Mackerel アカウントを持っていない人にもグラフの共有が出来るようになったのが嬉しかった内容でした。 グラフの共有はこんな
3 min read
Monitoring Seminar in mercari
mackerel

Monitoring Seminar in mercari

Monitoring Seminar in mercari に行ってきました! 📊 * Monitoring Seminar in mercari - connpass * Twitter ハッシュタグ #mxm_monitoring メモを晒す。 メルカリのサービスの監視について メルカリのサービスの監視の変遷についての話。 * 最初はさくらインターネットで日本向けサービスをやっていて ZABBIX を使っていた * その後さくらの専用サーバとさくらのクラウド併用 * US サービスが出来て、これはAWSで監視は ZABBIX * ZABBIX は2個あって( JP, US ) 監視項目が異なったりして複雑なトリガーは動かなかったりとかがあった その時の ZABBIX の課題。 * ZABBIX サーバ運用の負担 * トリガーの管理が大変 * 通知も改善したい その後 Mackerel を導入。 JP も US も両方Mackerel。 * サービスメトリックから導入を初めた(手軽なので) * ZABBIX のトリガーを
3 min read
Alfred Mackerel hosts Status Workflow
alfred

Alfred Mackerel hosts Status Workflow

Mackerel に登録してあるホストとホストのステータスをインクリメンタルに検索して表示する Alfred ワークフローを作りました。 * GitHub - lorentzca/alfred-mackerel-hosts-status-workflow: Search Mackerel hosts and show host's status. こんな感じで見れます。アイコンの色もステータスによって変わります。選択すると該当ホストのページに飛びます。 似たような Mackerel ワークフローは既にあったのですが、自分の Go の練習のためとホストのステータスをさらっと見れるようにしたい事情があったので作りました。 Mackerel の API は Go のクライアントから叩いています。 * Go の Mackerel Client を試す Alfred 周りの諸々は以下です。 * かっこいい Alfred ワークフローを作るための覚書き まとめ 小さいツールでも作ると達成感があって楽しいです。 Alfred のワークフローに G
1 min read
Trying out Go Mackerel client library
mackerel

Trying out Go Mackerel client library

Mackerel の API を使って Alfred ワークフローを作ってみよう と思っていたらタイミングよく Go のクライアントを見つけたので使ってみました。 * GitHub - mackerelio/mackerel-client-go: Mackerel API Client in Go (under development version) ちなみにまだ α 版とのこと。 Now, mackerel-client-go is an ALPHA version. In the future release, it may change it's interface. 準備 go get github.com/mackerelio/mackerel-client-go export MACKEREL_APIKEY="XXXXXXXX"
2 min read
Use Mackerel instead of Monit
mackerel

Use Mackerel instead of Monit

今日の Mackerel のアップデートでチェック監視の結果に応じてコマンドを実行できるようになった!! 🎉🎉 * チェック監視の結果に応じてコマンドを実行させられるようになりました ほか - Mackerel ブログ #mackerelio プロセスの監視をして、もしプロセスが死んだ場合ザオリクをかける方法としてMonitを今まで使っていましたが、 Mackerel に置き換えられるかも…? 試してみます。今回は h2o プロセスを監視してみます。 h2o プロセスが1未満になった場合は systemctl start h2o するようにしてみます。 まずは普通に監視する 以下の内容のファイルを /etc/mackerel-agent/conf.d/check_h2o.conf として作成し、 mackerel-agent をリスタートします。 * --userオプションを付けているのは h2o を含む余計なプロセスがヒットしないように絞るためです(例えば vim で h2o を含むファイルを開いていたりとか…) [plugin.checks.h
2 min read
Mix stacked graph and line graph with Mackerel
mackerel

Mix stacked graph and line graph with Mackerel

Mackerelで積み上げと線グラフを混在させることがUIからできるようになりました! * エージェントインストール手順ページを刷新しました ほか - Mackerel ブログ #mackerelio カスタムメトリックとサービスメトリックが対象のようです。システムメトリック(mackerel-agentインストール時にデフォルトで取られるグラフ)ではUIから設定できませんでした。 やってみる こんな感じ。簡単! システムメトリックでも積み上げグラフ・線グラフを混在させる方法 さて、公式ブログでは「UI上で設定できるようになりました。」と、ちょっと含みのある表現がされていましたが、これは式によるカスタムグラフでは以前から可能だったからと思われます。 * カスタマイズしたグラフを表示する - Mackerel ヘルプ システムメトリックで積み上げグラフ・線グラフを混在させたい場合はカスタムグラフを使えばOKです。stack(metrics)を使うことでこんな感じに混在させられます。 group(alias(stack(time
1 min read
Post GCP Billing data to Mackerel with Node.js
mackerel

Post GCP Billing data to Mackerel with Node.js

Node.jsのBigQueryライブラリを使ってGCPのBillingを取得してみました。 * Get GCP Billing with Node.js 次はこのBillingの情報をMackerelにサービスメトリックとして送ってみます。 Mackerel側のインターフェースの確認 サービスメトリックは以下のデータ形式で送れば良いみたいです。 [ , , … ] 詳細はこちら。 * サービスメトリック - Mackerel API ドキュメント (v0) つまり、今回の場合は以下のようなデータを送れば良いみたいです。 [ {name: "gcp.monthly_cost", time: "1234567890", value: "0.1567"} ] Node.jsのコードを書く 以下のようなコードを用意します。 // Imports the Google Cloud client library // Instantiates a client var bigquery
2 min read
Mackerel Meetup #10 Tokyo #mackerelio
mackerel

Mackerel Meetup #10 Tokyo #mackerelio

行ってきた! * Mackerel Meetup #10 Tokyo #mackerelio - connpass Microsoft Azure Integration と Windowsサポートの強化について いつも通りmackerelの紹介から。機能が増えてきたので紹介内容も多くなってきた! Microsoft Azure Integration と Windowsサポートの強化について。 * azureの利用が拡大しているらしい * 今後すぐazureインテグレーション追加される * azure monitor apiカラメトリックを取得している * windowsサポートの強化 * インストールが簡単に * 主要なプラグインのインストーラーを同梱 * メモ帳でも設定変更できるようになったw 次世代mackerelについて。 * 夏過ぎくらいには出るぽい...! Mackerel + Azureで支えるエムティーアイのヘルスケアプラットフォーム 社内でクラウド派閥!AW
2 min read
Annotate provider maintenance time with Mackerel
mackerel

Annotate provider maintenance time with Mackerel

このブログはDigitalOceanが提供しているVPS上で動いています。 * digitalocean - ゆるふわキャンパー DigitalOceanはもちろん、AWSやさくらVPSなどの物理リソースを提供しているプロバイダでは、プロバイダの都合によってメンテナンスが発生する場合があります。例えばネットワーク機器の差し替えや古くなった物理サーバの入れ替えなどによるものです。 このようなプロバイダ側で予測が可能で、サービスの可用性に影響する類のメンテナンスについては、まず何らかの形(メールや公式サイトなど)で告知が行われます。 DigitalOceanのシンガポールリージョンでネットワーク機器のメンテナンスのため 2017/04/25 05:00 ~ 07:00(JST) の間でネットワークが不安定になる場合があるとのこと ? — †殲滅の修道者† (@lorentzca) 2017年4月19日 ふと思いついて↑のメンテナンス期間をMackerelのグラフアノテーションに入れてみました。 はたしてグラフアノテーションは未来の日付に対して有効なのでしょうか
3 min read
Get mackerel graph annotation list with mkr
mkr

Get mackerel graph annotation list with mkr

mackerelにはグラフに注釈(アノテーション)を付ける機能があります。 * グラフを利用する - Mackerel ヘルプ * グラフアノテーション - Mackerel API ドキュメント (v0) このアノテーションを一覧して見たかったのでやってみました。Web画面からは一覧を表示できなくて、APIかmkrコマンドから取得する必要があります。そのやりかたをメモ。 以下のコマンドで取得できます。 * --from ~ --toで期間を指定しなければならない * 2016/01/01 00:00:00から今現在までの期間を指定している * エポックタイムで指定しなければならない(dateコマンドでエポックタイムに変換している) mkr annotations list \ --service <サービス名> \ --from $(date -jf '%Y/%m/%d %H:%M:%S' '2016/01/01 00:00:00' +%s)
1 min read
Display my server Load Average in OSX menu bar
shell

Display my server Load Average in OSX menu bar

最近あだちんの家に行って(たまに遊びに行ってノートPCを借りて遊んでいる)bitbarを入れて遊んできたので、私も気分転換にbitbarで個人サーバのロードアベレージを表示させてみました。 以下の雑なスクリプトを作成してbitbarのプラグインディレクトリ(私は~/Dropbox/bitbarにしている)にget-loadavg5.5m.shという名前で保存します。 * ファイル名はプラグイン名.時間.拡張子という命名規則 * mkrでmackerelからメトリックを取得して結果をechoしているだけ #!/bin/bash hostId=XXXXXXXX export MACKEREL_APIKEY="YYYYYYYY" loadavg5=$(/usr/local/bin/mkr fetch -n loadavg5 $hostId | /usr/local/bin/jq ".\"$hostId\".loadavg5.value") echo ?:${loadavg5:0:4} できた。超平和。表示する意味がない...。 上のスクリプトではLAが10
1 min read
Send GCP Billing metrics to Mackerel
gcp

Send GCP Billing metrics to Mackerel

Google BigQueryへエクスポートしたGCP Billingデータを使ってmackerelにGCP Billingのメトリクスを送ってみます。 メトリクスを送るためのプラグインは夜な夜な作りました。オプションにプロジェクトIDとデータセット名とテーブル名を指定すると現日付けの月の合計のBillingデータを取得することが出来るプラグインです。早く使ってみたい! * GitHub - Lorentzca/mackerel-plugin-gcp-billing: GCP billing costom metrics plugin for mackerel 準備 このプラグインは実行するための条件がいくつかあります。 テーブルに以下のスキーマが必要 * cost(FLOAT型) * start_time(TIMESTAMP型) 課金データのエクスポート機能でGoogle BigQueryにデータを送っていれば特に考えることはないはず。 サーバ上で実行するにはGoogle BigQueryに対する権限を持っている認証アカウントのjsonキーが必
2 min read
Add annotation to Mackerel when changed infrastructure with Terraform
terraform

Add annotation to Mackerel when changed infrastructure with Terraform

mackerelにグラフアノテーション機能が追加されました。 * グラフアノテーションをリリースしました! ほか - Mackerel ブログ #mackerelio * Mackerel API ドキュメント(v0) - Mackerel API ドキュメント (v0) グラフアノテーション機能とは先日のmackerelミートアップでも紹介があった通り、デプロイや何かしらの事象をmackerelのグラフ上で注釈することができる機能です。 * Mackerel Meetup #9 Tokyo #mackerelio 今回はterraformで特定のリソースに変更があった場合、それをグラフ上に表示させてみます。 まずは普通にAPIを叩いてみる 鬼のようなcurlを実行します。 できた。 Terraformと連携させる方法を考える 今回は例として、DigitalOceanのtagリソースに変更が加えられた場合、グラフに注釈を入れるようにしてみます。 「tagリソースに変更が加えられた場合何かを実行する」方法として、null_reso
4 min read
Mackerel Meetup #9 Tokyo #mackerelio
mackerel

Mackerel Meetup #9 Tokyo #mackerelio

今年最初のmackerelミートアップに参加してきました! * Mackerel Meetup #9 Tokyo #mackerelio - connpass 会場はレコチョクさんのオフィスでした。なんてスタイリッシュなんだ。 内容は以下。 * The 2017 Mackerel Product Roadmap. * Mackerel x KDDIで実現するキャリアクオリティ監視サービス * Mackerel x Twilio ~レコチョクの場合~ * LT・懇親会 資料は公開され次第追記していきます。(`・ω・´)ゞ The 2017 Mackerel Product Roadmap mackerelの紹介と今週末告知される新機能、2017年のロードマップ。 新機能の紹介ではグラフアノテーションが気になりました。 グラフアノテーションとは、デプロイやキャンペーンなど、何かしらの事象をグラフ上にマークできる機能。今週金曜日に改めて発表されますが、既に使えるみたいです。 気になる2017年ロードマップのメモ。 先進的アーキテクチャ
3 min read
Rewrite check_mailgun.sh to golang
mackerel

Rewrite check_mailgun.sh to golang

以前mailgunのステータスをmackerelで監視するシェルスクリプトを書きました。 * Check maingun status on mackerel これをようやくGoで書き直して、一応使える状態にはなったのでうp。 * GitHub - Lorentzca/check-mailgun: WIP デモ。 $ ./build/darwin_amd64_check-mailgun -p key-xxxx -d ghost.ponpokopon.me State OK: ghost.ponpokopon.me is active あんまりよくわかってないまま書いたので後で復習が必要。特に以下。 * http.Client{}をなぜポインタのアドレスで指定しているのか * 型周り * httpパッケージで戻り値が(resp *Response)になってて*Responseってどういう型なのかわからんみたいな * Goプログラミング言語仕様 - golang.jp * jsonパッケージが何やってるのかよくわからん
1 min read
Monitoring Fluentd with Mackerel and Tuning Fluentd buffer config
mackerel

Monitoring Fluentd with Mackerel and Tuning Fluentd buffer config

h2oのログをbigqueryに送り始めました。 * Send h2o log to BigQuery 今のところ特に問題は無いのですが、正直バッファの各設定値やリトライ回数のチューニングについてはどうすれば良いのかよくわからないのでなんとかしたいところです。 そこで、mackerel-agent-pluginsを導入してみます。メトリクスを取ることでチューニングしやすくなるだろうと言う目論見です。 * mackerel-agent-plugins/mackerel-plugin-fluentd バッファについては、下記のサイトが分かりやすかったです。 * Fluentdの仕組み -バッファ機能でログ収集漏れを防ぐ- | Tech-Sketch * BufferedOutput pluginの代表的なoptionについて - Qiita td-agent側の準備 まずtd-agent.confでmonitor_agentプラグインを有効化します。下記設定を追加してtd-agentを再起動。 * Monitoring Fluentd | F
4 min read
Enjoy mackerel metadata
mackerel

Enjoy mackerel metadata

先日のmackerelミートアップでメタデータなる新機能が発表されました。 * メタデータ - Mackerel API ドキュメント (v0) 後日談として、この機能がどんな感じか試してみます。まずは一通りメタデータの入出力を試してから、メタデータと何かしらを連携させて遊んでみるところまでやってみます。 ホストメタデータの登録・更新 APIキーとホストIDは面倒なので環境変数に入れています。 環境の情報をメタデータで持たせてみます。 $ curl -X PUT -H "X-Api-Key: $MACKEREL_APIKEY" -H "Content-Type:application/json" -d "{\"environment\": \"production\"}" https://mackerel.io/api/v0/hosts/$MACKEREL_HOSTID/metadata/environment {"success":true} ホストメタデータの取得 うむ。 $ curl -s -X GET -H "X-Api-Key: $
2 min read