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

  • メトリック収集と分散トレーシングのフレームワーク OpenCensus を使ってみた - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは、滝澤です。 先日、社内ISUCONが開催され、運営側として関わっていました。 その中で、試し解きと技術検証(お遊び)も兼ねて、以前から興味があったメトリック収集と分散トレーシングのフレームワークの OpenCensus を使ってみて、処理時間の可視化をしてみました。 そのときに行った内容などを紹介してみます。 OpenCensusとは OpenCensusはメトリック収集および分散トレーシングを行うためのライブラリ集です。 マイクロサービスやモノリシックなアプリケーションに対して Observability (可観測性)を提供します。 Google社が社内で利用しているメトリック収集およびトレーシングのライブラリ集であるCensusのオープンソース実装として、2018年1月にリリースされました。 提供する機能としては大きく分けて次のものになります。 Metrics (メトリック

    daiki_17
    daiki_17 2018/09/05
  • nginxの動的モジュールの最新状況(2017年2月版)

    StreamモジュールとMailモジュールについては、nginxバイナリに静的にビルドされて組み込まれています。 なお、nginxバイナリと動的モジュールの両方とも、後述するconfigure時のオプション「--with-compat」付きでビルドされています。 nginxバイナリとモジュールのsignatureが異なると動作しない 動的モジュールが実装された当初から「nginxバイナリとモジュールのsignatureが異なると動作しない」という制約があります。 このことについては昨年の記事「nginx-1.9.11で動的モジュールをサポート」において次のように説明しました。 nginxバイナリと異なる環境でビルドされた動的モジュールを組み合わせて動かすことはできません。 これにより困ることの例としては、公式サイトやディストリビューションからnginxのRPMパッケージをインストールした環

    nginxの動的モジュールの最新状況(2017年2月版)
    daiki_17
    daiki_17 2017/02/23
  • そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編)

    おっさんエンジニアの滝澤です。「わしゃあ、まだまだ若いもんには負けん」と老害を振りまくよりかは「俺の屍を超えていけ」と言うようになりたい今日この頃です。 アトミック(atomic)なファイル操作について紹介しているシリーズの最終回です。この内容は弊社の社内勉強会で話した内容をまとめ直したものです。 そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編) そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編) そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編)←今回 今回は「みなさん、安全にロックができていますか?」ということについて、考えてみましょう。 複数のプロセスから同時にファイルに対して書き込みを行うとファイルのデータが壊れるときがあります。これを防ぐために、ファイルへの書き込み処理を行うプログラムのプロセスがロックを

    そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編)
    daiki_17
    daiki_17 2016/08/23
  • 株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP

    運用監視も エンジニアが対応 これまでの経験を元に、お客様の業務を全面的にサポート。運用監視もエンジニアによる24時間体制で状況変化・障害発生を早期に検知し、対応します。 幅広い対応力 技術担当者が不在、または別の業務に専念したい場合も、ハートビーツのエンジニアがインフラ管理〜コンサルティングまで対応、ご要望にお応えします。

    株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP
    daiki_17
    daiki_17 2016/08/08
  • 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 の振る舞いをテストする
    daiki_17
    daiki_17 2016/06/17
  • nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定

    株式会社ハートビーツのITインフラエンジニアがお届けするnginx連載の6回目。今回はnginxのTLS/SSLについての設定を確認していきます。以降、"TLS/SSL"のことを単に"SSL"と書きます。 nginx.orgのパッケージからインストールしたnginxが提供している設定ファイルexample_ssl.confをサンプルとして説明します。なお、一部修正をしております。 server { listen 443; server_name example.jp; ssl on; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/cert.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ci

    nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定
    daiki_17
    daiki_17 2016/05/20
  • nginx-1.9.11で動的モジュールをサポート

    nginxの記事を書くのは久しぶりの滝澤です。 nginxにApache HTTP Serverの動的共有モジュール(Dynamic Shared Object)(DSO)のような機能が欲しいと思っていた人も多いでしょう。筆者もそうです。秘伝のタレのようなビルド用のスクリプト(実際はRPMパッケージのSPECファイル)を保守し続けるのは辛いなと思っていました。 そのような方々に朗報です。2016年2月9日にリリースされたnginx-1.9.11において動的モジュール(Dynamic Modules)がサポートされました。 しかし、Apache HTTP ServerのDSOと比べると、現時点ではまだ制約があります。 記事ではnginx-1.9.11における動的モジュールの説明と制約について説明します。 注: 2017年2月22日にフォローアップ記事「nginxの動的モジュールの最新状況(

    nginx-1.9.11で動的モジュールをサポート
    daiki_17
    daiki_17 2016/02/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 化
    daiki_17
    daiki_17 2016/01/29
  • 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の接続数を制限してみよう
    daiki_17
    daiki_17 2015/10/20
  • Microsoft の DevOps ハッカソンに行ってきました #DEVOPSJP

    こんにちは。斎藤です。 みなさん、ハッカソンは大好きですか?!ハッカソンというとソフトウェアを開発すると考える方が多いと思いますが、今回はDevOpsです。 内容は、プログラマとITインフラエンジニアが共同で Continuous Integration (CI), Continuous Delivery (CD)を実践し、技術的な点ではもちろん、仕組みを開発するにあたりチームビルディングをどうしていくかという学びを得るイベントでした。 9/5, 9/6の2日にわたって催されたMicrosoft DevOps ハッカソン(会)、今日はその模様についてお話しします。 公式ブログにも模様が掲載されています: 「DevOps ハッカソン開催報告 (9/5~6) & 次回予告 - MSDN オンライン チームブログ」 概要 会は、次のプログラムで構成されていました。 1日目 9:00〜11:3

    Microsoft の DevOps ハッカソンに行ってきました #DEVOPSJP
    daiki_17
    daiki_17 2015/09/13
  • 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選
    daiki_17
    daiki_17 2015/07/18
  • hb-acns - サーバ監視・メトリック取得設定の自動化システムのご紹介 - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは。斎藤です。 前回につづき、当社で実践しているITインフラ構築・運用の自動化やコード化のお話になります。今回は、hb-acns(あくねす、といいます)といって、当社の監視・メトリック取得設定の自動化を行う内製のシステムについてご紹介します。 ※最後にお知らせがあります TL;DR データセンタ・IaaS事業者が入り乱れている中で、既存ツールで自動化するのが難しかった。また、既存業務をできる限り維持したい。そこで内製した。 hb-acns は軽量なエージェントとサーバで構成される。そのうえで、既存の監視システムに設定を自動登録できるシステムとなっている。 監視設定時間が1/10に短縮されるなど、大きな導入効果が得られた。 Issue, PRベースで開発を進めることで、利用者が自分のツールとして理解し、利用するようになり、そして改善に協力してもらえた。 動機 幾多にもある案件をどうこ

    hb-acns - サーバ監視・メトリック取得設定の自動化システムのご紹介 - インフラエンジニアway - Powered by HEARTBEATS
    daiki_17
    daiki_17 2015/06/10
  • hb-agent - 構築・監視項目検出自動化ツール hb-agentのご紹介

    こんにちは。斎藤です。 私の記憶では2012年頃から盛り上がり始めた、ITインフラ構築・運用の自動化やコード化のお話ですが、その後みなさまどのような形で推進されていますか?あれから3年ほど経ちまして、当社でも取り組んできた内容を一旦棚卸しできるかなと考え始めています。そうそう、「MSPでのChefの使い方 --- 運用ノウハウをコードに落とす」という記事を書いた日から考えても、2年以上経っています。 そこで、何回かに分けまして、私が担当していたITインフラ構築・運用の自動化・コード化に関する取り組みについてご紹介していきます。 TL;DR hb-agentは、「初期構築作業の自動化」「監視項目洗い出しの自動化」そして「ノウハウをコードに集約」を実現する社内ツールです。 導入を通じて、構築時間の短縮、ノウハウの共有がすすみました。その結果、新しいスタッフが入った時でも習熟度のぶれを押さえ、構

    daiki_17
    daiki_17 2015/05/15
  • 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から移行しやすいジョブスケジューラを使ってみよう
    daiki_17
    daiki_17 2015/01/19
  • インフラエンジニア勉強会 - hbstudy

    第89回:『クラウドエンジニアの教科書』著者によるクラウドのお話(2022年11月30日(水)18:30~20:00) ■開催日時 2022/11/30(水) 18:30 〜 20:00 ■イベント概要 『クラウドエンジニアの教科書』著者によるクラウドのお話と題しまして、クラウドの初学者から中級者向けのクラウド勉強会を開催します。当日は以下のようなお話をします。 パネルディスカッション 司会者からスピーカーへの質問コーナーです! イベント参加登録時に皆様からいただく質問にも回答予定です。 質問例) 3大クラウドについて分かりやすく比較・解説するために気を付けたポイントは? 初学者が一番ハマりそうなポイントは? 初心者向けの情報だけでなく、IaCやコンテナ、マルチクラウド構成、監視など応用的な部分まで解説した狙いは? 当は書籍に含めたかったけど、今回は省くしかなかった項目や話題は? 参加者

    daiki_17
    daiki_17 2014/10/28
  • Mackerel プラグインを書いてみよう

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

    Mackerel プラグインを書いてみよう
    daiki_17
    daiki_17 2014/10/08
  • Cactiをより使い込むコツ 3選

    こんにちは。斎藤です。 RHEL/CentOS 7がリリースされて数ヶ月経ちましたが、みなさま検証の進捗はいかがでしょうか?手順や、ツールの検証・更新が必要ですから、じっくりやって行く必要があるのではと思います。 さて、今日はCactiを使い込むコツを3つ、ご紹介します。対象バージョンは、0.8.7e, 0.8.8aです。 テンプレートの複製にはハッシュ値の書き換えが必要 サードパーティ製のホストテンプレート(例: Percona Monitoring Plugins for Cacti)などをベースに、派生させた別のテンプレートを作成した際、編集したXMLファイルをそのまま取り込んでしまうと既存のテンプレートを上書きしてしまいます。 対策として、ハッシュ値を変更すると上書きしないようにできます。その際、ハッシュ値が紐づけられている項目がありますので、その紐付けが解けないように置換する必要

    daiki_17
    daiki_17 2014/08/05
  • nginxパッケージの選び方@CentOS6、Ubuntu14.04 - インフラエンジニアway - Powered by HEARTBEATS

    こんにちは。CTOの馬場です。 最近はnginxがパッケージでインストールできるようになってきたので、 いろいろなパッケージのconfigureオプションを比較してみました。 nginx.org公式パッケージ(stable = 1.6.0) @ CentOS6, Ubuntu14.04 nginx.org公式パッケージ(mainline = 1.7.3) @ CentOS6, Ubuntu14.04 Ubuntu公式パッケージ(1.4.6) @ Ubuntu14.04 nginxにはまだDSO機構がないので利用したいモジュールが入ったものを選ぶ必要があります。 バージョン、configureオプションをもとにパッケージを選びましょう。

    daiki_17
    daiki_17 2014/07/31
  • Google BigQuery を試してみよう #gcpja

    こんにちは。斎藤です。 先日のGoogle Compute EngineとGoogle Cloud DNSの解説に続き、今回はGoogle BigQueryを試したいと思います。ビッグデータという言葉がもてはやされる今日、DWHシステムは外せませんよね。 データがそろっていれば、操作は全てWebインタフェースから進められます。そのため、操作のハードルはそれほど高くありませんので、ぜひ試してみて下さい。 前提条件 全ての記述内容は、執筆時点である2014年6月時点の情報を基にしています。今後、変わる可能性があります。 まず、次の条件が揃っている事を確認して下さい。 先日のエントリ「Google Cloud Platformをはじめようチュートリアル #gcpja」をお読みになられていて、かつ操作が完了している。 簡単なSQLが書ける 次に、今回使うデータについて簡単にご紹介します。 内容:

    Google BigQuery を試してみよう #gcpja
    daiki_17
    daiki_17 2014/06/20
  • ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - powered by HEARTBEATS

    こんにちは。斎藤です。 Chefで構築の自動化ができる事はわかっていても、Cookbookをどう記述すればいいのかピンとこない場合があります。そんなときに使えそうなコツをピックアップしてみました。 「Chefを使ってみたいけどいまいちとっかかりがわかりづらい」「あれ、これはどうやるんだ?」、そんなときにご覧頂けたら幸いです。 ※Chef 10.16.2で確認しました。また、RHEL, CentOSで利用する事を前提に説明しています。 Cookbookに同梱したRPMファイルから直接インストールする cookbook_fileとpackageリソースを組み合わせて実行します。 下記の例は、MySQLサーバをRPMファイルを用いてインストールします。 "MySQL-server-5.5.29-1.el6.x86_64.rpm"ファイルをあらかじめ "files/default" 内に保存します

    daiki_17
    daiki_17 2014/02/23