タグ

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

  • Apache HTTP Serverのgraceful stop/restartを理解する

    こんにちは、去年の8月に入社しましたMSP事業部エンジニアリンググループの鈴木です。 記事は、Apache HTTP Server(以降「Apache」と略す)のgraceful stop/restart(以降、2つを指す場合「graceful」と略す)について調査・理解したことをまとめたものになります。具体的には以下について調査しました[※1]。 gracefulの概要、通常のstop/restartとの違いおよびユースケース systemd(systemctl)でgracefulを実行する方法 gracefulを実行する3つのコマンドの動作や関係性 gracefulを実行するコマンドの動作確認(ドキュメントの裏取り) 付録:graceful関連のソースコード解析(理解できている範囲のみ) なお、今回は私個人の学びの一環としてgracefulの基的なことから調査しましたので、内容とし

    Apache HTTP Serverのgraceful stop/restartを理解する
  • 安心してリザーブドインスタンスを購入するために

    はじめまして。 今年の5月に入社した、エンジニアリンググループの佐藤です。前職ではメディア関連の会社で就業していて、WebサイトやWebシステムの開発チームでインフラ構築・運用・保守を担当してきました。この度、自分自身の技術力向上を目的にハートビーツに入社しました。 今回は、業務の中でAWSのリザーブドインスタンスを購入する機会があったので関連するTipsをご紹介します。 リザーブドインスタンスとは AWSのリザーブドインスタンスとは、1年もしくは3年の長期間利用を予約することで、通常のオンデマンド料金に対して割引が適用され、オプションによってはキャパシティーを予約できるサービスです。その他様々な購入オプションがありますが、今回はそのオプションについて詳細は触れません。 詳細については AWSの公式サイトをご確認ください。 高額決済ってこわい リザーブドインスタンスの購入手続きは、先述の通

  • AWS Network Load Balancer + syslog転送における注意点

    皆さんは、日々の運用の中で発生するログについてどのように管理していますでしょうか。 ログを周期的に圧縮してサーバ内に保存し、かつ一番古いログを削除(ログローテーション)する ログを定期的にクラウド内の外部ストレージに転送して管理する(CloudWatchエージェント / Fluentd / etc.....) など、考えれば考えるほど様々な案が上がります。 今回はログ転送において、私が実際に業務の中でぶつかった問題について紹介します。 記事の概要としては、下記になります。 AWS Network Load Balancer + syslogを用いた負荷分散を構成する際には、意図した負荷分散が正しく行えているか確認するべきである。 送信元サーバで定期的にAWS Network Load Balancerへ再接続する設定を加えることで、送信先サーバの偏りの緩和や、耐障害性の向上ができる。 今

    AWS Network Load Balancer + syslog転送における注意点
    mapk0y
    mapk0y 2022/10/23
  • サーバ作業を安全に行うための工夫

    こんにちは。 2021年7月にハートビーツに入社後、エンジニアリンググループに所属している北岡です。 以前は同じMSP企業で10年以上勤務しておりましたが、自身のスキル向上などを目的としてハートビーツへ入社しました。 私の転職の経緯やハートビーツへ入社して感じたことなどは今後お話するとして、今回はお客様のLinuxサーバ上で作業する際、私がオペレーション中に意識していることやミスを防ぐために行っていることについて紹介します。 コピー、ペーストのショートカットキーを変更する コピー「Ctrl + c」とペースト「Ctrl + v」はキーが隣り合っており、タイピングミスによってコピーしようとしたつもりがペーストしてしまったということが起こりえます。 メモ帳などで起きた場合は特に問題にはなりませんが、サーバ上で起きると不要なコマンド実行に繋がります。小さなことではありますが防止策をとるべきです。

    サーバ作業を安全に行うための工夫
  • DNS前史:HOSTS.TXTとドメイン名ができるまで

    こんにちは、技術開発室の滝澤です。 先月(2022年7月)、『Software Design 2022年8月号』の特集記事『WebエンジニアのためのDNS速習講座』に『第2章:DNSの構成要素と名前解決のしくみ』という記事を寄稿しました。第1章でも滝澤が趣味で作成した資料『ドメイン名の歴史』が参考文献として掲載されていました。よい機会なので、ドメイン名ができるまでの歴史について文章としてまとめようと思い、このブログ記事を書きました。 なお、筆者自身はインターネットの原型であるARPANETや80年代のインターネットをリアルタイムには体験してはいないため、RFC(Request for Comments)やインターネット上にある当時のホストアーカイブを元に調査した内容をまとめたものになります。 ARPANETの時代 1969年から1980年代初期にかけてのインターネットの原型となったAR

  • TLS証明書チェッカーcheck-tls-certの公開

    こんにちは、技術開発室の滝澤です。 TLS証明書チェッカーcheck-tls-certを開発して公開したので紹介します。 このcheck-tls-certについて簡単に説明すると次の通りです。 check-tls-certは、TLS証明書の有効性と証明書チェインの検証するツール 主な用途は、TLS証明書の設置・更新作業の際の各種確認およびTLS証明書の(有効期限を含む)有効性の監視 様々な検査を実施し、各検査結果を出力することで問題箇所を把握しやすい check-tls-certの概要 TLS証明書チェッカーcheck-tls-certはTLS証明書の有効性と証明書チェインを検証します。 主にTLS証明書の設置・更新作業の際の各種確認およびTLS証明書の(有効期限を含む)有効性の監視のために利用できます。 次のサイトで公開しており、ReleaseページからLinux向けとmacOS向けのバ

    mapk0y
    mapk0y 2021/07/14
  • クラウドと可用性

    こんにちは、技術開発室の滝澤です。 今回はクラウドと可用性についてのポエムを書いてみたいと思います。 まとめを最初に書くと次のようになります。 原則としては、ゾーン冗長構成にすることで可用性は向上する。 クラウド事業者側のソフトウェアのバグやヒューマンエラーなどが原因の障害ではゾーン冗長構成でも回避できない場合がある。 マルチリージョン構成やマルチクラウド構成は当にそのレベルの可用性が必要かどうかを検討する。 可用性(アベイラビリティ) まず最初に可用性についての復習をしてみましょう。 可用性は英語のavalability(アベイラビリティ)を日語に訳した言葉で、簡潔に述べると「利用したいときに利用できる能力」という意味です。日語としては稼働率と呼ばれることもあります。 例えば、あるサービスのウェブサイトが、障害が起きない、あるいは障害が起きてもすぐに復旧していつでも利用できる状態に

  • 文字エンコーディングの検出方法

    こんにちは、技術開発室の滝澤です。 最近(2021年春)、Go言語でメールパーサーを書く機会があり、備忘録的な意味でも知見をまとめておこうかなと思い、この記事を書きました。 メールパーサーを書いていて考慮しないといけないことの一つは、文字エンコーディング(charset)が正しく指定されていないメールがときどきあることです。 MIME(Multipurpose Internet Mail Extensions)関連のインターネット標準であるRFCが公開された1990年代や世間一般にインターネットメールが利用され始めた2000年代初期ならともかくとして、2021年にもなってまだその点を考慮しないといけないのはなかなかつらいことです。 そのようなメールを取り扱うときには、文字エンコーディングの検出を行う必要があります。記事ではその文字エンコーディングの検出方法について書いてみました。 なお、

  • 社内ISUCON - H-ISUCON2019を開催しました

    こんにちは。人材開発室の倉持です。 弊社は ISUCON に参加するメンバーが多く、今年も社内版 ISUCON である H-ISUCON2019 を開催しました! ※ H-ISUCON(Heartbeats Iikanjini Speed Up Contest) ※ ​「ISUCON」は、LINE株式会社の商標または登録商標です。 利用したWebアプリとベンチマーカーはGitHubで公開しております。 要項 今回は下記内容にて実施致しました。 お題 [WEB]Nginx + [APP]Python(Flask) + [DB]MySQL on Alibaba(ECS) な Web システム 上記は3つのDockerコンテナで動作 期間 1週間の中で業務時間外に取り組むこと 参加資格 ハートビーツ従業員(社員、アルバイト) 賞品 備品購入権 1位: ひとり¥30,000 2位: ひとり¥10,

    社内ISUCON - H-ISUCON2019を開催しました
  • nginx連載5回目: nginxの設定、その3 - locationディレクティブ

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

    nginx連載5回目: nginxの設定、その3 - locationディレクティブ
    mapk0y
    mapk0y 2018/09/14
  • メトリック収集と分散トレーシングのフレームワーク OpenCensus を使ってみた - インフラエンジニアway - Powered by HEARTBEATS

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

  • Mackerelチェックプラグイン check-smtp を開発しました - インフラエンジニアway - Powered by HEARTBEATS

    はじめまして。技術開発室の與島( @shiimaxx )です。 先日、mackerelio/go-check-pluginsにSMTP接続の正常性を監視するプラグインcheck-smtpを追加するPull Requestを送り、Mergeしていただきました。 そこで、記事ではcheck-smtpの概要、新規プラグイン開発をするにあたってどのような点を意識したか、について紹介します。 なお、チェックプラグインの作成方法自体については説明しません。作成方法については、以下のヘルプが参考になりますのでご参照ください。 checkersを利用してチェックプラグインを作成する また、プラグインの開発時のGoのバージョンは1.10です。 背景 ハートビーツでは、NagiosとNagios Pluginsを使って監視をしています(その他、監視の要件によっては自作Nagiosプラグインも使っています)。

  • 硬派な高解像度パフォーマンスモニタリングツール Performance Co-Pilot と PCP.CONF 2018

    こんにちは。CTOの馬場です。 Performance Co-Pilotというモニタリングツールをご存知でしょうか? 先日、Performance Co-Pilotのカンファレンス PCP.CONF 2018 に行ってきました。 Performance Co-Pilot Conference 2018 正直かなりマニアックなツールなので、カンファレンス!そんなにユーザいたの!すごい!みたいな気持ちで参加したところ、 参加者は15人くらいで、だいたいはお互いに知り合いっぽい、みたいな感じで驚きました。 (ぱっとみですが、半分くらいはRed Hatの方だったのかな?) エントリではユーザと日語情報流通が増えることを祈念して Performance Co-Pilot の紹介をします。 PCPの特徴 Performance Co-Pilot 私の知る限り日では知名度が低めだと思いますが、Pe

    硬派な高解像度パフォーマンスモニタリングツール Performance Co-Pilot と PCP.CONF 2018
  • DevOpsに関する論文を読んでみよう 前半

    斎藤です。こんにちは。 今回は、2回にわたりインフラエンジニアにも関係してくる学術論文を取り上げ、内容を要約・解説していきます。 運用に携わる人々は「実務」から物事を理解し、マニュアルやツールといった形でモデリング化し、物事を切り開かれている方が多いかと思います。一方で、物事をモデリングする手法には、学術論文...文章化してゆくと言う方法もあります。 「いやー、論文って読もうとすると難しいよねー」とか、「英語とか面倒だなぁ〜」なんて思っている方にでも、論文に触れる新しい機会に、そしてこれからの運用の参考となれば幸いです。 ※誤訳やより良い解釈がある等ありましたら、twitterの @koemu までお知らせください。 「ログを用いたソフトウェア開発者と運用者を繋ぐ手法」 原題は"Bridging the Divide between Software Developers and Oper

  • H-ISUCON2017 実施しました。

    こんにちは、技術開発室の西村です。 今年も後半となり、今年たてた目標の振り返り、来年の目標への意識がちらつく時期ではないでしょうか。 さて、弊社では ISUCON に参加するメンバーが多く、弊社としても応援したく思い、H-ISUCON(Heartbeats Iikanjini Speed Up Contest) を開催しました。 ※​「ISUCON」は、LINE株式会社の商標または登録商標です。 要項 今回は下記内容にて実施致しました。 お題 Nginx + Python + Flask + MySQL on さくらクラウドな Web システム 競技期間 09/27 11:00 〜 10/04 11:00 参加資格 ハートビーツ従業員(社員、アルバイト) 賞品 備品購入権 弊社は 24 時間 365 日の運用サービスを行っているため、なかなか 1 日に全員が集まるのが難しいので競技期間を

    H-ISUCON2017 実施しました。
  • graphiteの時系列データをpandasとscikit-learnで予測して月次レポート化する仕組み

    こんにちはCTOの馬場です。 弊社では業種柄、サーバごとのCPU利用率などたくさんの時系列メトリックデータを持っています。 以前はこの収集・閲覧にcactiを利用していましたが、最近はgrafana + graphiteを利用しています。 (ちなみにこれらは全て自社製OSS監視エージェントのhappo経由で収集されます) 今回はこのデータの活用例として弊社で実装している解析・レポーティングについて簡単に紹介します。 できること 全体としては月次レポートを作るしくみです。 月次レポートを自動生成 月次レポートに、前月の実績値が閾値超過しているグラフを掲載 月次レポートに、前月の実績値からの予測値が1ヶ月以内に閾値超過するグラフを掲載 下2つは今回作ったgraphdというアプリケーションで実現しています。 ※オレンジが閾値、赤が予測 動作概要 ハートビーツでは HTTPS(HTTP)+JSON

    graphiteの時系列データをpandasとscikit-learnで予測して月次レポート化する仕組み
  • 外形監視におけるフルリゾルバーのキャッシュ保持期間

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

    外形監視におけるフルリゾルバーのキャッシュ保持期間
  • Dockerドキュメント日本語化に参加しよう!

    このエントリは Docker Advent Calendar 2016 - Qiita の2日目です。 こんにちは。CTOの馬場です。 みなさんお世話になった(と思われる)Docker語ドキュメントは @zembutsuさんが個人で翻訳されています。 GitHubで作業されていて、Pull Requestを受け付けてくれているので、 ぜひ参加しましょう! 環境構築 いまはSphinxがあればビルドできるので、 インストールしておきましょう。 pip install Sphinx 2016/12/1時点で Sphinx 1.4.8 でHTML生成できることを確認しています。 生成は1行ぽんと実行するだけ。 make html これで build/html 配下にHTMLが生成されます。 別の方法として、もし手元の環境に手を加えたくないなーという場合はDockerを活用しましょう。 リポジ

    Dockerドキュメント日本語化に参加しよう!
  • 継続的テストとしての監視実装例

    その昔hbstudyで @kazuho さんは言いました 「監視は継続的なテストである」 というわけでこんにちはCTOの馬場です。 今回は弊社で実際に適用しているテストケースを紹介します。 ハートビーツと監視システム ハートビーツでは永らくNagiosを使って2拠点から同内容の監視をしています。 最適な監視を実現するためにはNagiosの監視の実体である Nagiosプラグインを自作する必要があり、 ハートビーツでは特に別途費用をいただかず必要なNagiosプラグインを実装しています。 ソースコードは社のGitLabで管理していて、 hb-nagios-plugins グループ配下には100近いリポジトリがあり、 さらにこの他にも案件固有の監視項目用に個別のリポジトリがあります。 要するにたくさんですね。 さきほどざっと hb-nagios-plugins グループ配下のファイル数を確認し

    継続的テストとしての監視実装例
  • 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 の振る舞いをテストする
    mapk0y
    mapk0y 2016/06/17
    varnishtest で似たこと試してるけどちょっと記述が独特で辛いのでやはり infrataster を使うべきか/別にDockerでなくてもできるけど、docker-compose.ymlで記述できて、dockerだから環境に左右されにくいから便利