タグ

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

  • RFCの読み方

    こんにちは。技術開発室の伊藤です。 ハートビーツではメールサーバを自社で運用しています。そのメールサーバの移設を実施するにあたり、移設を対応するチームでさまざまなメールの仕様を理解しておく必要がありました。 メールプロトコルの仕様についてはRFC(Request For Comments)が発行されているため、メールに関するRFCを読んでまとめる勉強会を行いました。 その際にRFCを読むにあたって知っておくとよいことがいくつかあったので紹介します。 RFCとは RFCとはIETF(Internet Engineering Task Force)というインターネット技術の標準化を推進する団体やその他の団体が発行している、インターネット標準や技術提供の文書です。もともとは非公式な文書であることを明確にするため、Request For Comments(コメント募集)という名前にしていたようです

  • OpenSSL 3.0のTLS証明書用プライベート鍵生成方法

    こんにちは、技術開発室の滝澤です。 前回(2021年7月)、『TLS証明書チェッカーcheck-tls-certの公開』というエントリーを公開しました。このcheck-tls-certを開発するにあたって、テスト用のPKI(Public Key Infrastructure、公開鍵基盤)を構築しました。 opensslコマンドを利用したPKI用のスクリプトを整備したのですが、開発当時ではOpenSSL 3.0の開発が進んでいることもあり、OpenSSL 3.0でも利用できるようにとドキュメントを読んでみると、「deprecated」(非推奨)の文字が散見されました。そのため、それを踏まえたスクリプトを書きました。この際に得られた知見を記事で紹介します。 なお、2021年9月7日にOpenSSL 3.0.0がリリースされました。 記事を1行でまとめると次のようになります。 OpenSSL

  • 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向けのバ

  • DNSプロトコルのここ数年のトピック紹介

    こんにちは、滝澤です。 筆者の趣味として調べているDNSのプロトコルのここ数年のトピックについて紹介してみます。 ほぼ毎年、DNSに関連する新しいRFC(インターネットに関する技術仕様)が公開され、仕様が更新されたり、新しい仕様が追加されたりしています。 ここ数年のトピックについてまとめてみたいと思い立ち、この記事を書きました。 なお、この記事は2020年8月時点での情報となります。すべてを網羅しているわけではありません。 ちなみに、筆者は次のサイトを公開している人でもあります。 DNS RFCs ANYクエリーに対してRRsetをすべて返すわけではない 2019年1月に「RFC 8482 Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY」が公開されました。 このRFCでは、DNSレスポンダー(DNS

  • 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 の振る舞いをテストする
  • 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で動的モジュールをサポート
  • 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の接続数を制限してみよう
  • hb-agent - 構築・監視項目検出自動化ツール hb-agentのご紹介

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

  • Apache HTTP Server: MPMパラメータ チートシート

    こんにちは滝澤です。たまにはapacheネタということで一つ。 Apache HTTP ServerのパラメータチューニングではMaxClientsなどのMPM(マルチ プロセッシング モジュール)関連のディレクティブの設定値を調整することが多いです。記事ではMPM関連のディレクティブのデフォルト値やディレクティブ間の関係を表にまとめたので紹介します。 注意事項 UNIX系OSにおける説明となります。バージョン2.2系および2.4系の両方について説明します。 関係式においてバージョン2.4系の場合はMaxClientsをMaxRequestWorkersに置き換えて読んでください。 ディレクティブ名には公式サイトのリンクを張っています。公式の説明も確認してください。 デフォルトの欄で括弧付きものはそのディレクティブそのものは設定不可ではあるが、内部的に設定されているデフォルト値を示してい

    Apache HTTP Server: MPMパラメータ チートシート
  • 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から移行しやすいジョブスケジューラを使ってみよう
  • インフラエンジニアway 2014年間アクセスランキング!

    こんにちは。CTOの馬場です。 2014年も残すところあと数日となりました。 もういくつか寝ると2015年の幕開けです。 来年のことを言うと鬼に笑われてしまいますので、 このインフラエンジニアwayの 2014年間アクセスランキング をもとに今年の振り返りをしてみましょう。 10. MySQL を MHA + HAProxy で冗長化してみよう 2013年の7位、MHA + HAProxyです。 安心して寝るためには必要ですよね。 それでも心配という方は弊社まで お問合せ ください。 9. Upstart を使ってお手軽 daemon 化 2013年の8位、Upstartです。 daemontoolsやsupervisorもいいですが、CentOS6標準で入っているUpstartもぜひご活用ください。 今年はCentOS7も出ましたがUpstartは... 8. ITインフラで起きる「もし

  • CactiのデータをElasticSearch+Kibanaでまとめてみてみよう

    斎藤です。こんにちは。 最近、会社の中で様々な部活動が始まっています。「プログラミング部」や「フットサル部」といったメジャー(?)なものから、「サイクリング部」「P部(プロレス観戦部)」そして「二郎部」などなど、エッジが効いたものまであります。そうそう、私は「サイクリング部」と「P部」に所属しています。 さて、今回はKibanaを使って、Cacti(RRDTool)が収集したモニタリングデータを参照してみようと思います。Cactiはモニタリングデータを収集・ビジュアライズするツールとして普及していますが、他のサーバ・指標と比較するのがちょっと面倒です。そこを、Kibanaを用いてより見やすくしようと言うのが目的です。Kibanaとは、収集したログをGUIで整理しつつビジュアライズできるデータ分析ツールの一種です。たいてい、データストアとしてElasticSearchというNoSQL DB

    CactiのデータをElasticSearch+Kibanaでまとめてみてみよう
  • SSL証明書検証エラーの警告を無視しないほうがいいたった1つの理由

    こんにちは。CTOの馬場です。 昨日のエントリ RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ で暫定回避策として「接続先のSSL証明書を検証しないようにする」と書いたのですが、そのリスクについてもっと伝えたほうがよさそうなので追加のエントリです。 ( @nekoruri さんご指摘ありがとうございます!) いきなり結論から書きますが、 SSL証明書の警告無視はSSLの目的の1つである「通信相手の認証」を無効にするのでヤバい のです。 つまり証明書検証エラーを無視すると、通信は暗号化しているけど通信相手は誰かわからない、というトンチンカンな状況になります。 なので、トンチンカンな状況が許せる時だけにしましょう。 実はHTTPでいいんだけどなんとなく通信は暗号化しておきたいときとか、リスク覚悟で通信したいときとか... なお、技術的な説明は以下のページが

  • RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ

    こんにちは。CTOの馬場です。 昨晩1/28 21:00JSTにRHEL5/CentOS5にインストールされているルート証明書のうち、GlobalSignの有効期限が切れました。 伴ってREHL5/CentOS5からのHTTPS(SSL)接続にてGlobalSignの証明書を使っているサイトへの接続がエラーになるようになりました。 私の確認している範囲では、 curlコマンドやPHPcurlライブラリなどでの接続時に接続エラーとなることに起因して以下のような影響が出ています。 ※接続される側ではなくて、接続する側での問題です※ oauthなどの外部認証が不可 決済などの外部連携が不可 対策 RHEL5の場合、errataが公開されているのでupdateしましょう。 Red Hat Customer Portal https://rhn.redhat.com/errata/RHEA-201

    RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ
  • どうしてメモリはスワップするのか!?

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

    どうしてメモリはスワップするのか!?
  • 無料で始められる監視・モニタリングサービス 5選

    ※1: 2013/12/27追記 1台→Noneに書き換えております。これは、はてブで「制限が無いのでは」と指摘ありましたので再度調べました所、"None"と記述がありました。別項目で"Unlimited"の表記があり「無制限」とは違う意味で書かれていると認識しまして、上記の通りに変更しております。 なお、サービス内容は有償プランになると強化・増えている場合がほとんどです。 New Relic 監視・モニタリングがセットになったサービスです。 対象のサーバにエージェントをインストールすることで、監視・モニタリングを行う事ができます。監視項目毎に一つ一つ設定をしなくても良い点が、監視を始めたばかりの方にとっては便利かもしれません。 また、特徴的なのは、スマートフォンからデータの参照、及び障害通知をPush通知で受け取る事ができる点です。現代的ですね。 無償プランでは、サーバは1台、モニタリン

    無料で始められる監視・モニタリングサービス 5選
  • 今後の負荷を RRDTool を使って予測してみよう

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

  • systemd の情報を集め始めよう

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

  • そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編)

    おっさんエンジニアの滝澤です。「アトミックなファイル操作なんて考えずにデータベースを使えばいいじゃない」と言われそうでgkbrです。 前回に引き続き、アトミック(atomic)なファイル操作について紹介します。この内容は弊社の社内勉強会で話した内容をまとめ直したものです。 そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編) そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編)←今回 そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編) 2回目の今回は「みなさん、安全にファイルの作成ができていますか?」ということについて、考えてみましょう。 アプリケーションがあるディレクトリ内に存在するファイルを読み込んで処理するシステムがあるとします。このとき、そのディレクトリ内に直接ファイルを作成してみました。アプリケーションがファイ

    そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編)
  • そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編)

    ハートビーツ最年長エンジニアの滝澤です。以前、弊社CTOにシニアおっさんエンジニアから若手エンジニアに向けて何か書いてくれと言われた気がしたので、アトミック(atomic)なファイル操作について3編に分けて紹介します。この内容は弊社の社内勉強会で話した内容をまとめ直したものです。 そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編)←今回 そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編) そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編) 今回は「みなさん、安全にファイルの更新ができていますか?」ということについて、考えてみましょう。 あなたはあるサーバ上のファイルの更新を依頼され、もらったファイルをサーバ上でコピーして上書きしました。しばらくして、データに異常が発生したので調べて欲しいと言われました。さて、何が起き

    そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編)