サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
nori3tsu.hatenablog.com
fluentdのリトライ処理に失敗した場合に、ログを消失させたくない+処理に失敗したログを復旧させたいという話です。 fluentdのBufferedOutput系のpluginは、retry_limitに記載されているリトライ回数を消費してしまった場合、"throwing away old logs."のwarnメッセージと共に、ログが消失します。 # buffer_type fileの場合は不明 それを防ぐため、secondaryというディレクティブが存在します。 secondaryは、matchディレクティブのretry_limitに記載されているリトライ回数を超過してしまった場合に実行されます。 そのため、処理に失敗した場合のバックアップ用途に使用できます。 例えば、fluent-plugin-xxxを使用してxxx上にデータを書き込む処理中に、xxxへの接続がダウンしている場合、
ここ数年、Web API(以降API)を作る機会が増えています。例えば、スマホやシングルページアプリケーションのバックエンド,システム間のデータ連携などです。 これらのAPIを複数の言語やフレームワークで実装してみましたが、個々の機能を実装する前に考えるべき事は共通していました。これから先も多くのAPIを作成する事になると思いますので、APIを作る上での共通実装をまとめてみたいと思います。 目次 文字コード 日付書式 リクエストフォーマット レスポンスフォーマット API認証 Validation トランザクション ログ出力 横断処理 共通例外処理 設定ファイル 処理時間の計測 X-Request-ID ヘルスチェック 単体テスト デプロイ 検討項目 文字コード UTF-8を選択します。 日付書式 ISO8601形式を選択します。 曖昧さを無くすためタイムゾーン情報を付与したいためです。
なんらかの原因(ssh_configの設定ミス等)でSSH接続出来なくなってしまい、もうどうしようもない場合の対処法です。 実サーバの場合 物理ドライブを取り外す 別システムにマウント 設定ファイルを書き換える 元のシステムにマウント AWS EC2の場合 作業用EC2インスタンスを作成 作業用インスタンスと復元したいインスタンスを停止 復元したいインスタンスからRoot VolumeをDetach EC2 管理画面のInstancesからRoot VolumeのVolume IDを調べる Volumes から対象のVolume IDを検索して右クリックからDetach 作業用インスタンスにAttach 前項で外したVolumeを右クリックしてAttatch デバイス名は/mnt/sdfとする 作業用インスタンスを起動 作業用インスタンスに復元したいインスタンスのVolumeをマウント $
これはApacheに関わらず、Vagrant共有ディレクトリにサービス起動に必要なファイルを配置している場合に発生する現象です。 解決方法を考えてみましたが、起動スクリプトを変更するという微妙な方法になりました。 どなたか良い解決方法をご存知なら教えていただきたいです。 現象 以下再現手順。 $ vagrant ssh Apacheインストール [vagrant@localhost ~]$ sudo yum -y install httpd 自動起動ON [vagrant@localhost ~]$ sudo chkconfig add httpd [vagrant@localhost ~]$ exit OS再起動 $ vagrant reload 自動起動確認OK $ vagrant ssh [vagrant@localhost ~]$ ps -ef | grep httpd root
nginxでssl offloadしてtomcatをバックに置く場合の簡易設定メモです。 nginx /etc/nginx/conf.d/app.conf upstream app { server localhost:8080; keepalive 16; } server { listen *:443 default_server; server_name app.example.com; server_tokens off; # ssl ssl on; ssl_certificate /etc/nginx/certs/app/certificate.crt; ssl_certificate_key /etc/nginx/certs/app/rsa-secret.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!AD
WindowsのVirtualBoxにCentOSを入れていますが、長く使っているとディスク容量が足りなくなったので拡張しました。方法をメモします。 VirtualBoxの仮想ディスクサイズ拡張 ゲストOS(CentOS)停止してプロンプトを起動。VBoxManage.exeコマンドで仮想ディスクサイズを拡張します。 $ "{VirtualBoxインストールディレクトリ}\VBoxManage.exe" modifyhd [対象のvdiファイル] --resize [変更後サイズ(MB)] 仮想ディスクパーティションサイズ拡張 Gnome Partition Editorを使って仮想ディスクパーティションサイズを変更します。 公式から「GParted Live CD/USB/HD/PXE Bootable Image > Stable Releases > xxxlivexxx.iso」と
今まで遭遇したことのない奇妙な現象でかなり戸惑ってしまいましたのでメモしておきます。 環境 Vagrant VirtualBox CentOS6.4 現象 タイトルの通りですが、Apache(Nginx)のDocumentRootにVagrantの共有フォルダ(/vagrant)以下のフォルダを指定するとレスポンスがおかしくなることがあります。 具体的には、ファイルの内容が切れたり、削除したはずの文字列が残っていたり、非常に奇妙な動作をします。 原因 原因はLinuxカーネルのsendfileとVirtualBoxのNFSのバグによるものらしいです。Apacheのデフォルト設定ではこのsendfileを使用するオプションが有効になっていますが、これを無効にすることにより解決します。 ApacheのEnableSendfileに関するドキュメントを読んでみると、そもそもNFSやSMBマウント
ownCloudはDropboxのクローンです。Dropboxと同様にWindows,Mac,LinuxやiPhone,Android用のクライアントもあり、非常に便利です。 今回はCentOS6にownCloudを構築する方法をご紹介します。 ownCloud.org | Your Cloud, Your Data, Your Way! インストール php CentOS6にインストールされているphp5.3にはnullバイト攻撃の脆弱性が残っているようで、そのままownCloudをインストールするとログイン画面で以下のように警告メッセージが表示されます。 Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243) Please update your PHP installation to use own
JDKに標準で入っているjstatコマンドを使います。jstatコマンドではJavaヒープ領域中のNew領域・Old領域・Permanent領域の使用量・容量・最小容量・最大容量などを取得することができます。 ※ 2015/06/24追記: こちらはJava7までのヒープ領域についての記事です。Java8はPermanent領域がないなどの違いがあるため、別途Java8のjstat公式ページを参照してください。 Javaヒープについて Javaヒープ領域を指定するJVMオプションは-Xms,-Xmxです。このオプションで指定しているJavaヒープ領域のサイズはNew領域とOld領域を合算したものとなり、Permanent領域は含まれていません。また、New領域はSurvivor領域0(From)+Survivor領域1(To)+Eden領域の合算です。 取得方法 -gcオプションでJava
随分前に悩んだことでまた悩んでしまったのでメモ。 Java/Python/Rubyのそれぞれの実装をまとめました。 Javaで"AES"と指定して暗号化/復号したデータをRubyで復元する際、 AESの知識が乏しいせいでRubyでどうやって復元すれば良いのかわからず困ってしまったため、 次回から悩まないためにJavaの標準AESアルゴリズムと互換性のあるRubyの実装書いてみました。 ついでに最近少し触っているPythonでも書いてみました。 AESはブロック暗号です。 ブロック暗号についてはコチラが詳しいです。 Javaのjavax.crypto.Cipherクラスで単純に"AES"として暗号化すると"AES/ECB/PKCS5Padding"という形式になります。 鍵長: 128bit 暗号モード: ECB パディング方式: PKCS5Padding 暗号モードのECBはある文字列を暗
書式説明 $?直前に実行したコマンドの終了ステータス $@スペース区切りの実行引数 $*変数$IFS区切りの実行引数 $0ファイル名 $n実行引数のn番目の値 ${@:n}スペース区切りの配列のn番目以降 ${@:n:o}スペース区切りの配列のn番目からo番目 $$プロセスID ${!var}varの値を変数名としてeval実行 ${#var}varの文字数 $((1+2))算術演算 ${foo-bar}fooの変数がない場合にbarを使う ${foo:=bar}fooの変数がない場合にbarを使いfooにbarの値を設定 n,o=数値 var=変数名 参考 BASHでの変数について Bash変態文法最速マスター? - programming 2006-10-27 - 明日=今日×(反省+前向き)+努力
実はboxの実態をリネームするだけでbox名を変更することができます。 boxの実態は$HOME/.vagrant.d/boxesにインストールされています。 $ cd ~/.vagrant.d/boxes/ $ mv {old} {new} あとはvagrant initで新しいbox名を指定するだけです。 $ vagrant init {new}
VagrantはOSに依存しない開発環境を手軽に管理・配布することができるツールです。 私の環境の場合、開発環境にありがちな問題への対処としてVagrantを導入することにより、いくつかの問題を解決することができました。 開発環境構築の手順書を作成したいけど開発者のOSがバラバラ(WindowsでRubyのライブラリが動かない...) 複数案件を一台のPCで管理していて案件によりミドルウェアのバージョンが異なる 開発環境と本番環境のOSが異なるため各環境独自の不具合が発生してしまう Vagrantは一般的にChefやPuppetと組み合わせることにより絶大な効果を発揮しますが、ChefやPuppetを使ったことのないエンジニアは覚えることが多くて少し敷居が高いと思っていました。 今回はChefやPuppetを使わずにゆるくVagrantを使う方法をご紹介します。 事前準備 必要なミドルウェ
SiegeはWEBサーバに負荷をかけるツールです。同様のツールとしてApache Bench, httperf, Tsung, JMeterなどありますが、私は主にJMeterとSiegeを利用しています。 siegeのインストールと使い方・オプション・結果の見方をまとめました。 それぞれ、重い負荷やシナリオ込みの負荷をかける場合はJMeter、そこそこの負荷やWEB APIへの負荷はSiegeと使い分けています。 インストール 依存ライブラリをインストール $ sudo yum -y install gcc make openssl-devel ダウンロード $ curl -LO http://www.joedog.org/pub/siege/siege-2.74.tar.gz インストール $ tar zxvf siege-2.78.tar.gz $ cd siege-2.78 $ .
購入してから放置していたMacBook Air (11-inch, Mid 2011)をiOS開発のためにセットアップしてみたら、なぜ今まで使ってなかったのかと後悔してしまうくらいに快適です。Macに乗り換えた方々のWindows要らなくなったという言葉はにわかに信じられませんでしたが、毎日使うようになってくると快適過ぎて本当にWindows要らないと思ってきました。むしろデスクトップPCもiMacかMac Miniに買い換えたいです。自分用のメモも兼ねて、一つでもかけると日常生活に支障がでるレベルのアプリケーションと各種設定をまとめておきます。 Mac初心者なので他に便利なアプリあったら教えてもらえると嬉しいです。 この記事は随時更新します。 最終更新日: 2013/11/30 OSアップデート 2013/11/30現在、最新のOSであるOS X Mavericksが無料で配布されていま
GitLabはGitHubのクローンです。 サーバにプライベートなGitHubを構築することができます。 Amazon Linux にインストールする方法をまとめました。 公式は Debian/Ubuntu を対象としていますが、Amazon Linuxにインストールしみました。 「Amazon Linux 2013.09」AMI起動直後のインスタンスにインストールしたメモを、公式の章立てに沿って残しておきます。 実施日は2013/10/19です。このような記事はバージョンが異なると動かなくなる可能性大なのでお気をつけください。 ☆マークは勝手に追加した章立てです。 ミドルウェア Nginx Unicorn Redis MySQL Postfix Ruby Python 1. Packages / Dependencies 依存性のあるライブラリをインストールします。 公式にも多数ライブラ
このページを最初にブックマークしてみませんか?
『nori3tsu's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く