タグ

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

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

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

  • 外形監視におけるフルリゾルバーのキャッシュ保持期間

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

    外形監視におけるフルリゾルバーのキャッシュ保持期間
  • ハートビーツ「職場体験日誌 」No.02

    karumado
    karumado 2016/11/17
    私もこんな職場体験したかったなぁ。
  • 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の接続数を制限してみよう
  • 新人エンジニア向けに情報収集の際の入手元を公開してみる

    こんにちは。CTOの馬場です。 新人エンジニアから割とよく聞くお悩みとして「情報収集の仕方がわからない」というのがありまして、 入手元が見つけられない、何に注目してよいかわからない、というところが解決できないということのようです。 というわけで今回は私の情報入手元を公開してみます。 Twitter まずは定番のtwitter。フォローしているのは627人です。 スマホで一日数回、そのときに取得したぶん(直近200件)だけを見るようにしています。 Androidなのでtwiccaを使っています。 リストは使わず、タイムラインのみを見ています。 PCでは夜フクロウを常時起動してますが、タイムラインは見ていなくて、mention/DMに反応するくらいです。 Facebook これまた定番のFacebook。友達は596人です。 スマホで一日数回、そのときに取得したぶん(2スクロール分くらい)だけ

    karumado
    karumado 2015/08/19
    "ばばさん通信は、入社していただけば見ることができますよ!"
  • Python+SSHな自動化・デプロイメントツールFabricを活用するTips

    こんにちは。CTOの馬場です。 みんな大好きFabricのTipsです。 Welcome to Fabric! -- Fabric documentation よくデプロイツールとして紹介されますが、 自動化のためのPython+SSH+コマンド実行フレームワークとして柔軟に使えて超便利です。 基的には 手元でのコマンド実行 SSHごしのリモートサーバでのコマンド実行 SSHごしのリモートサーバでsudoしてコマンド実行 ができるツールなのですが、使い方の例を紹介します。 間違いなどあればお近くのハートビーツ社員か @netmarkjp に教えていただけると嬉しいです。 Python 2.7.10 + Fabric 1.10.2 + Paramiko 1.15.2で動作確認しました。 複数のサーバに対して同じユーザ・パスワードでログインする ユーザ名やパスワードを一括指定できます。 鍵認

    Python+SSHな自動化・デプロイメントツールFabricを活用するTips
  • Upstart を使ってお手軽 daemon 化

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

    Upstart を使ってお手軽 daemon 化
    karumado
    karumado 2015/06/08
    今勉強中
  • 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から移行しやすいジョブスケジューラを使ってみよう
    karumado
    karumado 2015/01/19
  • Mackerel プラグインを書いてみよう

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

    Mackerel プラグインを書いてみよう
    karumado
    karumado 2014/10/08
  • 「サーバ/インフラエンジニア養成読本 ログ収集〜可視化編」を献本いただきました

    こんにちは。斎藤です。 先週、「サーバ/インフラエンジニア養成読 ログ収集〜可視化編」(以下、書)を、筆者のお一人である吉田さん(@yoshi_ken)より献いただきました。どうもありがとうございます。 せっかくですので、私自身の視点で、書の紹介、刺さった所、及び感想を残しておこうかと思います。 名前は知っているよ!でもどこまで使ってる? Fluentd, Elasticsearch, Kibana...。今をときめくログ収集、KVS、そしてデータ可視化ミドルウェア・ツールの名前です。アンテナが高い人なら名前は知っている、ヤル気がある人は既に検証はした、そして環境が整っている人は番へ投入し活用されていると思います。 しかし、検証や、番投入へ一歩進めるにはパワーが要ります。事例がBlog等に上がっているものならまだしも、出始めの頃はドキュメントを読み解きながらじっくり設定を進める

    karumado
    karumado 2014/09/25
  • 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オプションをもとにパッケージを選びましょう。

    karumado
    karumado 2014/07/31
  • ギズモード|メディアジーン様|株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP

    ギズモードが立ち上がった翌年からなので……ハートビーツさんにサーバーを管理してもらうようになって、もう7年ですね。当時は、ギズモードもまだ月間で数百万PVの規模で、これから軌道に乗せるという段階でした。リアルタイム更新のアクセスもさばききれなくなってきて、「そろそろ腰を入れて管理しなければ……」と認識していたところで、複数の会社から見積もりをいただいた結果、ハートビーツさんにお願いすることになりました。

    ギズモード|メディアジーン様|株式会社ハートビーツ|サーバ構築、クラウド、セキュリティに強いMSP
    karumado
    karumado 2014/05/08
  • Sphinxのテーマを継承して体裁をカスタマイズしよう

    斎藤です。こんにちは。 今日は、SphinxでHTMLのドキュメントを生成する際、ドキュメント全体に対して体裁の変更を行えるよう、テーマを継承する方法をお話しします。記事では、「継承する理由」「組み方」そして「注意点」の3点についてまとめました。 ※検証したソフトウェアのバージョンば、Sphinxは1.1.3sphinxjp-latexPythonは2.6.6 (CentOS 6.4標準rpm)です。 継承する理由 Sphinxとは、Pythonで動作し、reStructuredText(以下、reST)で記述するドキュメント生成エンジンです。出力は、HTMLばかりでなく、LaTeX(PDF)やmanなど多様な形式をサポートしています。また、HTML出力の際、テーマを利用して容易に体裁を変更する事ができます。 さて、既存のSphinxのテーマを変更したくなる時とは、どのような場合でしょ

    Sphinxのテーマを継承して体裁をカスタマイズしよう
    karumado
    karumado 2013/11/22
  • ITインフラで起きる「もしも」のための12個のコマンド

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

    ITインフラで起きる「もしも」のための12個のコマンド
    karumado
    karumado 2013/10/02
  • PythonでExcelスプレッドシートを出力しよう

    斎藤です。こんにちは。 今日は、Pythonの"xlutils"ライブラリを利用してExcelスプレッドシートの生成をしてみます。「使い方」「書式定義のしかた」そして「注意点」の3点について、順にお話しします。 Excelを用いて、サーバ管理台帳など、ITインフラ運用に用いるドキュメントを作られる方もいらっしゃるかと思います。そのときに、これからお話しする"xlutils"ライブラリを用いると、お手製CSV出力ツールや、それこそ 手動 で作るよりも手間を省きつつExcelスプレッドシートを作成できます。 ※Python 2.7.4, xlutils 1.6.0, xlwt 0.9.2, Excel for Mac 2011 (14.3.6), Mac OS 10.7.5 を用いて検証しています 使い方 インストール インストールはとても簡単です。 # easy_instal xlutils

    PythonでExcelスプレッドシートを出力しよう
    karumado
    karumado 2013/09/09
  • 1