タグ

ブックマーク / heartbeats.jp (22)

  • happoメトリックサーバ Graphiteの移設

    こんにちは。技術開発室の與島です。 ハートビーツでは現在、データセンタの物理サーバで稼働している自社システムをマルチクラウドの新基盤に移設するプロジェクトが進んでいます。 先日その一環として、監視システム happoのメトリックサーバをデータセンタの物理サーバからAzureに移設しました。 エントリでは、その経緯と流れについて紹介します。 監視システム happo 監視システム happoは、ハートビーツにおけるサーバの管理・監視業務に必要な以下のサービスを提供します。 Nagiosによるチェック監視 メトリック収集とGrafana + Graphiteによるメトリック可視化 インベントリ収集とインベントリ情報の保持 今回紹介するメトリックサーバは、2つめの「メトリック収集とGrafana + Graphiteによるメトリック可視化」における、メトリックのデータストアです。時系列データベ

    happoメトリックサーバ Graphiteの移設
    y_uuki
    y_uuki 2019/12/27
    Btrfsで透過圧縮かけるとどれぐらいI/O性能が落ちるかのイメージがついた
  • いい感じにログを監視するNagiosプラグイン check_log_ng 2.0.5 をリリースしました!

    こんにちは。 CTOの馬場です。 いい感じにログを監視するNagiosプラグイン check_log_ng をメジャーバージョンアップして 2.0.5 をリリースしました! OSSとしてGitHubで公開しています。 GitHub - heartbeatsjp/check_log_ng: Log file regular expression based parser plugin for Nagios. 目玉の新機能は 「監視結果を一定時間キャッシュできる」 です。 弊社のように複数の監視サーバを持つ場合には誤検知削減の効果が見込めます。 check_log_ng はPython製で、Python 2.6 - 3.6 に対応しています。 例えばCentOS7であればファイルひとつ置くだけで機能します。 (CentOS6のPython2.6で使う場合はargparseモジュールをインストー

    y_uuki
    y_uuki 2018/08/31
  • hbstudy#74 SRE大全:序章 活動報告

    はじめまして、入社5年目、新卒2年目アイドル部部長兼運用エンジニアの阿部( @abnoumaru )です。 2017年07月25日に開催された「hbstudy#74 SRE大全:序章」の活動報告です。 なぜ SRE の勉強会を開催したか Googleが"Site Reliability Engineering"(SRE)を提唱した後、 その手法は世界中で瞬く間に広まり、日でも"SRE"の名前が付くチームを持つ会社が増えています。Web サービスを中心としたインフラを担当するハートビーツにとってもSREを専門職としてはいないものの、現在行なっている業務に近しい分野です。 そこで、hbstudyではSRE大全と題して、様々なSREの話を聞くべくシリーズで勉強会を開始します。今回は、 2017年8月12日に発売される『SRE サイトリライアビリティエンジニアリング --Googleの信頼性を

    hbstudy#74 SRE大全:序章 活動報告
    y_uuki
    y_uuki 2017/07/31
  • O'Reilly Velocity Conference 2017 San Jose参加レポート

    こんにちは、ハートビーツの宮越と滝澤です。 2017年6月20日〜22日にサンノゼで開催されたO'Reilly Velocity Conference 2017 San Joseに参加してきました。 Velocity Conferenceは日では馴染みがないカンファレンスですが、主に運用やSREやDevOps向けのイベントになります。 記事では興味深かったセッションをいくつか紹介します。 なお、内容については紹介している資料を確認してください。聞き間違えたり、認識が違っているかもしれないためです。 コンテナ Container orchestration wars スライド: Container Orchestration Wars (2017 Edition) (SlideShare) MesosphereのKarl Isenberg氏によるContainer orchestrati

    O'Reilly Velocity Conference 2017 San Jose参加レポート
  • 外形監視におけるフルリゾルバーのキャッシュ保持期間

    こんにちは、滝澤です。 みなさん、提供しているサービスの外形監視を行っていますか。 DNSレコードの変更ミスやドメイン名の失効などを起因とする障害に早く気づけるようになっていますか。 ということで、今回は外形監視におけるフルリゾルバー(キャッシュDNSサーバー)のキャッシュ保持期間について考えてみます。 外形監視とフルリゾルバーについて 外形監視とは何かを一言でまとめると、「システムの外部から、システムが提供していサービスが正常に動作しているかを監視する」ことです。 このとき、「ユーザーと同じような方法でアクセスする」ことが重要となります。 アプリケーションのサービスへのアクセス方法 ウェブブラウザーのようなユーザー側のアプリケーションがサービスに接続するときには、次の図のようにサービスのドメイン名の名前解決を行い、取得したIPアドレスに対して接続を行います。 このとき、名前の解決は次のよ

    外形監視におけるフルリゾルバーのキャッシュ保持期間
  • Golangで作ったhttpdの接続数を制限してみよう

    こんにちは。斎藤です。 ここ1〜2年、私は仕事Golangを書くことが増えています。きっかけは、ITインフラをお預かりする中で、お客様のサーバにツールを置く場合でも1つのバイナリさえ置けば良いという手軽さからだったのですが、最近はScalaと並び手軽に並列処理が書けるプログラミング言語として重宝しています。 さて、今回はGolangで作ったhttpdの接続数をLimitListenerを利用して接続数の制限をしてみようというお話です。以下に紹介するお話は、Githubのリポジトリ "github.com/koemu/go-http-max-connections-demo" にデモプログラムを保存しています。Golangのビルド環境がある方は、実際にビルドしながらお試しいただければと思います。 ※Golang 1.5.1でビルドする前提で説明しています モティベーション 仕事でとあるAP

    Golangで作ったhttpdの接続数を制限してみよう
    y_uuki
    y_uuki 2016/09/15
    “LimitListener”
  • Docker と infrataster で nginx の振る舞いをテストする

    こんにちは。吉川 ( @rrreeeyyy ) です。今期オススメのアニメはリゼロです。 Nginx は設定ファイルの記述力も高い、大変便利な Web サーバです。 便利な反面、設定ファイルの複雑化や、設定に依っては意図しない挙動を引き起こしてしまうこともあります。 そこで稿では docker 並びに infrataster を使用し、 Nginx の挙動をテストすることによって、安全に Nginx の設定を記述する方法について紹介します。 テスト対象の Nginx の仕様 今回は例として、次のような仕様の Nginx のテストについて考えます。 ネットワーク帯は 10.0.0.0/16 を使用している Nginx の前段として L7 ロードバランサが存在している L7 ロードバランサが https を終端している Nginx 自体は 80 番ポートと 8080 番ポートにて待ち受けてい

    Docker と infrataster で nginx の振る舞いをテストする
    y_uuki
    y_uuki 2016/06/17
    Docker NetworkとELB代替としてのHAProxyのコンボよい
  • nginxをdockerで動かす時のTips 3選

    こんにちは。CTOの馬場です。 最近利用する機会が増えてきたdockerネタです。 nginxを動かすときのTipsを3つ紹介します。 foregroudで起動する dockerではコマンドをforegroundで動かさないとコンテナが停止してしまいます。 nginxはデフォルトはデーモンとして動くので、foregroundで動くように設定しましょう。 nginx.confで設定するならこうです。 daemon off; Dockerfileの起動コマンドで指定するならこうです。 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] 動的な設定を外部化する イメージの中に設定値を入れちゃうのはダサいですよね。 コンテナ起動時に動的に設定したいものです。 dockerの場合は docker run 時に -e で環境変数を指定できるので使いましょう。 do

    nginxをdockerで動かす時のTips 3選
  • MySQL を MHA + HAProxy で冗長化してみよう

    斎藤です。こんにちは。 今日は、MySQLにてレプリケーション構成において、マスタサーバのフェイルオーバーを司るmysql-master-ha(以下、MHA)を用いる際、マスタサーバ接続先の切り替えにHAProxyを使ってみようというお話です。 ※MHAは0.53.0(公式パッケージ)、MySQLは5.5.25a(Oracle公式パッケージ)、HAProxyは1.4.22(CentOS6標準パッケージ)、OSはCentOS 6.3 x86_64を用いました。 ※MHAによる冗長化およびHAProxyによるMySQLの負荷分散の設定を経験された事がある前提で記述します。 記事では、次の流れで話題を展開します。 フェイルオーバー時の接続先切り替え方法 構成(参考) なぜHAProxyなのか 切り替え方 2台構成の問題点 その他 コツ 設定(参考) 主にMHA+HAProxyによるフェイルオー

    MySQL を MHA + HAProxy で冗長化してみよう
  • nginx連載5回目: nginxの設定、その3 - locationディレクティブ

    locationディレクティブはパスの条件が評価されて選ばれたものが適応されます。この条件はパスの文字列の前方一致あるいは正規表現による評価です。この評価の順番は以下のようになります。 前方一致("=", "^~", プレフィックスなし)の条件の評価を実施 最も一致する条件を選ぶ。 選ばれた条件が、完全一致で、プレフィックスが"="であれば、そこで評価を終了し、そのlocationディレクティブを適応する。 選ばれた条件のプレフィックスが"^~"であれば、そこで評価を終了して、そのlocationディレクティブを適応する。 正規表現("~", "~*")の条件の評価を実施 正規表現の条件を設定ファイルに定義した順番に評価する。一致したら、そこで評価を終了して、そのlocationディレクティブを適応する。 前方一致の評価で選ばれた条件のlocationディレクティブを適応する。 ここで注意

    nginx連載5回目: nginxの設定、その3 - locationディレクティブ
    y_uuki
    y_uuki 2015/09/23
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    y_uuki
    y_uuki 2015/02/16
  • Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう

    こんにちは。斎藤です。 最近、Dockerなどのコンテナ型仮想化技術、Chef, Ansible, Itamae などによるITインフラ構築・運用自動化技術の利用が進んでいます。一方で、何年も動いて「歴史」を積み重ねているシステムも数多くあります。そして、私を含めてそれらの運用に関わる事もあるでしょう。そんな「歴史」のあるシステムも、何とか運用を効率化したいと思う事があるかもしれません。 今日は、バッチジョブや複数サーバに対する運用を効率化するRundeckを取り上げます。「何ができるの?」「はじめかた」そして「利用時の留意点」の3点についてお話しします。 ※OSはCentOS 6系、Rundeck はバージョン 2.4.0、Java VM は Oracle JDK 1.7.0_72 を利用しています。 cronLinux系OSに標準搭載されているジョブスケジューラです。標準で使えるため

    Rundeck - cronから移行しやすいジョブスケジューラを使ってみよう
  • Mackerel プラグインを書いてみよう

    こんにちは。斎藤です。 日発としては数少ないサーバモニタリングサービス「Mackerel」。はてなさんが開発し、先月から正式にサービスが開始されました。このブログを読まれている方で、利用されている方もいらっしゃるのではないでしょうか。 さて、Mackerelの特徴に、自分自身でプラグインを開発すれば、カスタムメトリックとして自由にメトリックを追加できる事があります。最近、私もプラグインを書いて家のプラグイン集リポジトリにマージいただきました。せっかくですので、その時に私が確認したお話をまとめておこうかと思います。4節「プラグインが行うこと」「ヘルパーライブラリを活用しよう」「コーディングの型」そして「その他のポイント」に分けてお話しします。 記事は、Golangでの開発を1度でも行った事がある、または"A Tour of Go"を通じてGolangを学習した事がある方を対象とします。

    Mackerel プラグインを書いてみよう
    y_uuki
    y_uuki 2014/10/07
    !!
  • Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja

    こんにちは。CTOの馬場です。 前回 Google Cloud Platformをはじめようチュートリアル でGCPのアカウント設定・プロジェクト作成〜GCEでインスタンス起動までやってみました。 その手順の途中で登場した、GCPのCLIツール gcutil を手元のPCにインストールする代わりにDockerを使ってGCP操作環境を作ってみましょう。 ※Dockerが使える環境があることが前提です。ありますよね。 1. 認証設定 Googleが cloud-sdk セットアップ済みのコンテナイメージを公開しているので、これを使います。 まずはpullして gcloud auth login で認証設定します。 docker pull google/cloud-sdk docker run -t -i --name gcloud-config google/cloud-sdk gcloud

    Google Cloud PlatformのCLIツールgcutilをDockerで使う #gcpja
  • どうしてメモリはスワップするのか!?

    こんにちは。斎藤です。 最近、新しいスキー板が欲しいなと思っています。現在使っているOGASAKAの板は5年目に入り、メーカーからこれ以上はチューンナップ(メンテナンス)はできないよ、と言われてしまいました。もし、次に買うなら、スノーボーダーの人と一緒にパウダーに飛び込みやすいセミファットタイプが良いのかなと考えています。皆さんのオススメ、ぜひ教えてください。 さて、今日はLinux Kernel上でのメモリ管理、特にページ回収(Page Reclaim)とスワップに絞り、「スワップの理由」「ページを回収する仕組み」そして「スワップの様子を観察する」の3点に分けてお話しします。「スワップするのが気持ち悪い」と考えている方は少なくないと思いますし、私もそう考えていた時期がありました。しかし、それは当に悪い事なのか、今回掘り下げて行きます。 ※主な対象Kernelは2.6.32(Red Ha

    どうしてメモリはスワップするのか!?
  • systemd の情報を集め始めよう

    斎藤です。こんにちは。 RedHat Enterprise Linux 7(RHEL7)リリースの足音が聞こえる今日この頃ですが、皆様いかがでしょうか。予習として、Fedora 19を利用されている方もいらっしゃるかと思います。 その中で、大きな変化の1つとして、 systemd(※1) の採用があります。systemdは、SysVinitやUpstartに変わる、プロセス管理の仕組みです。そうです、起動スクリプトの書き方や、プロセスの確認方法が大きく変わる事になるのです!そうなれば、構築や運用に関わる知識や手順を覚え直す必要が出てきます。 しかし、systemdに関する資料は、それほど多くありません。そこで、簡単ですが記事執筆時点(2013-10-24)での情報源をまとめてみました。検証の際の情報収集時、お役に立てば幸いです。 ※私が社内Wikiにまとめた情報をBlog用に整理し、公開し

  • ITインフラで起きる「もしも」のための12個のコマンド

    こんにちは。斎藤です。 ITインフラの障害は、多くの場合「予期せぬ」タイミングで発生します。特に、CPUリソースを多量に消費したり、Disk I/Oが輻輳している場合、その切り分けは困難な状況に陥りやすいものです。 そこで、日はITインフラ、特にOS・ミドルウェアを支えるにあたって、問題解決を助けてくれるであろう12個のコマンドを取り上げてみます。「必ず押さえておきたい」5つのものと「更に覚えると便利なコマンド」7つの2節に分けてお話しします。 ※CentOS 6.4 (64bit)を前提に取り上げます 必ず押さえておきたいコマンド もしITインフラ管理者になりたてな方はぜひ サーバサイドのプログラマをやっていたのだけれど、ある日突然「君、サーバ管理担当ね!」と、バトンを渡される方っていらっしゃると思います。私も以前はそのクチでした...。そうなってしまったとき、まずは覚えておきたい5つ

    ITインフラで起きる「もしも」のための12個のコマンド
  • Upstart を使ってお手軽 daemon 化

    こんにちは。斎藤です。 手元でちょちょいと作ったプログラムや、 init スクリプトの無いOSSを daemon として動作させ続けたい事、ありませんか?そんなときに便利なのが Upstart です。daemontoolsの代わりとしても使えます。 今回は設定方法を中心に、解説していきます。 ※CentOS 6.3 (x86_64) で検証しています はじめに Upstart とは何か UpstartのWikiによると、"/sbin/init"デーモン(例えばSysVinit)を置き換えるものであり、イベントベースでタスクやサービスを起動・停止できるようにしたものである、と述べられています。また、特徴として、SysVinitと比べ「設定が簡単」「起動が早くなる」などが挙げられています。 Upstart のメリット 3つのメリットがあると、私は考えています。 起動・終了制御が容易 仮にABE

    Upstart を使ってお手軽 daemon 化
  • 「写経」から始めるChefクックブックの作成

    斎藤です。こんにちは。 Chef の話題がアツくなっている今日この頃、みなさまいかがお過ごしでしょうか?Chefの解説も出つつある今日この頃ではありますが、プログラミングそのものに慣れないうちはそれさえ読むのもちょっと大変かもしれません。そこで今回は、 Chef のレシピ+ライブラリを用いて、MySQLの設定の自動化を試します。いわゆる「写経」から始めてみて、少しずつ「手動」からプログラムを通じた「自動化」にチャレンジしてみましょう。 ※Chef 11.04.0, knife-solo 0.2.0, Ruby 1.9.3p327, CentOS 6.3 で検証しています。 今回のお題 MySQLサーバをインストールしてみます。ITインフラを構築・運用している方ならご存知かと思いますが、MySQLはインストールだけでなくmy.cnfの設定までが作業です。その際にinnodb_buffer_

    「写経」から始めるChefクックブックの作成
  • 今後の負荷を RRDTool を使って予測してみよう

    斎藤です。 今日は、RRDToolを使って、今後かかる負荷を手軽に予測する方法をご紹介します。あわせて、プログラムと連携して性能限界を越えそうなサーバがあるかを判定してみます。人手ではまかないきれない数のサーバに対して、一台ずつ問題の予兆を調べるときなどにお試しください。 ※CentOS 6.3 (64bit) + RRDTool の2013/2/20頃の最新ソースを用いて試しています 「限界」を早く知りたい! ITインフラを運用している方の多くは、Cacti, Munin等で負荷を日々モニタリングされているかと思います。モニタリングしたデータを用いて今後を予測する際、どのようにされていらっしゃいますでしょうか?描かれたチャートの動きをもとに、経験と勘を駆使して「ヨイショ!」っとされている方も、いらっしゃるのではないでしょうか。 特に、ディスク容量やネットワークトラフィック等、根的な対策