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

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
7 min read
I am Mackerel ambassador
mackerel

I am Mackerel ambassador

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

  • Lorentzca
    Lorentzca
1 min read
Monitor lock status with Mackerel
mackerel

Monitor lock status with Mackerel

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

  • Lorentzca
    Lorentzca
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 ブログ

  • Lorentzca
    Lorentzca
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 をどこまでモニタリングできるのか スライドは随時出てくると思うので感想などを記録します。

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
1 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 として作成し、

  • Lorentzca
    Lorentzca
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(

  • Lorentzca
    Lorentzca
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側のインターフェースの確認 サービスメトリックは以下のデータ形式で送れば良いみたいです。 [ <metricValue>, <metricValue>, … ] 詳細はこちら。 サービスメトリック - Mackerel API ドキュメント (v0) つまり、今回の場合は以下のようなデータを送れば良いみたいです。 [ {name: "gcp.monthly_cost", time:

  • Lorentzca
    Lorentzca
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で支えるエムティーアイのヘルスケアプラットフォーム

  • Lorentzca
    Lorentzca
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のグラフアノテーションに入れてみました。 はたしてグラフアノテーションは未来の日付に対して有効なのでしょうか…。 Web管理画面からは日付をマニュアルで入力することはできなかったので、mkrコマンドでやってみます。以下のコマンドを実行。

  • Lorentzca
    Lorentzca
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 <

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
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キーが必要 そのjsonキーへのpathを入れた環境変数経由でGoogle BigQueryに対し認証を行います サーバー中心のフローのための認証情報取得

  • Lorentzca
    Lorentzca
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リソースに変更が加えられた場合何かを実行する」

  • Lorentzca
    Lorentzca
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

  • Lorentzca
    Lorentzca
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 あんまりよくわかってないまま書いたので後で復習が必要。特に以下。

  • Lorentzca
    Lorentzca
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 | Fluentd <source>

  • Lorentzca
    Lorentzca
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 "{\"

  • Lorentzca
    Lorentzca
2 min read
Mackerel Meetup #8 Tokyo #mackerelio
mackerel

Mackerel Meetup #8 Tokyo #mackerelio

Mackerel Meetup #8 Tokyoに参加してきました! Mackerel Meetup #8 Tokyo #mackerelio - connpass 会場はfreeeさんのオフィスでした。オシャレでした。以下のような内容でした。 新機能「メタデータ」がもたらす次世代のインフラマネジメントについて Mackerelによる自動化と一元管理 Zabbix から Mackerel へ、そして Mackerel で実現したコストダウン 懇親会&LT大会 感想など。 新機能「メタデータ」がもたらす次世代のインフラマネジメントについて 序盤はMackerelの紹介。リリース予定の機能が相変わらずたくさんあって面白い。

  • Lorentzca
    Lorentzca
3 min read
Monitor LinearRegression metrics by Mackerel
mackerel

Monitor LinearRegression metrics by Mackerel

mackerelは式による監視や式によるグラフのカスタマイズができる。 式による監視を行う - Mackerel ヘルプ カスタマイズしたグラフを表示する - Mackerel ヘルプ 会社では活用していて、面白いので個人でも使ってみる。 まずは式による監視を定義。Monitorsから設定できる。 公式にある例を参考に、ディスクがあふれる日数の監視をしてみる。 公式と違うのは、timeLeftForecast関数の閾値を割合で指定している点。現在の使用量をディスクサイズ合計で割って、その値が1(=100%)になるまでの時間を計算している。公式にある方法では閾値をファイルシステムの上限数で指定(2TBなら2000000000000という風に)しているが、割合での指定ならばディスクのサイズによらず固定値が使えるのでそれが利点どす。 あと、alias関数を使ってグラフに名前をつけている。ビジュアルを変えるための関数なので、監視のための式では意味ないと思うけどなんとなく…。 vda1の部分は環境によって違うので注意。 alias( scale( timeLeftForecast(

  • Lorentzca
    Lorentzca
3 min read