~/.ssh/configを使って *ssh.Client を作成する

GMOペパボ Advent Calendar 2018 の4日目の記事です。 運用しているサーバに何か問題が発生したら、SSH接続をして原因の特定をします。特定するためにいろいろ確認をします。 しかし、自分はチームメンバーの中では上記があまり速いほうではありません。勘所…

auditdのログをlogrotateでローテートする運用にしたかったがうまくいかなかったのでcronで直接ローテートするようにした

紆余曲折の記録です。 Auditとは何か Linux AuditはLinuxのシステムで発生しているイベントを記録するための仕組みです。詳しくは以下のページ 第5章 システム監査 - Red Hat Customer Portal 具体的には、(デフォルトで) /var/log/audit/audit.log にシス…

Fukuoka.go#12 で GoでTCPパケットを読むための最初の一歩の話 をした #fukuokago

Fukuoka.go に参加してきました! fukuokago.connpass.com 主催者、発表者のみなさん、ありがとうございました! ちょっとトラブルがあって楽しみにしていた「Road to your goroutines」をまともに聞けなかったので残念がっていたら、素晴らしいまとめエント…

pprofでCPU100%になる原因を特定する

tcpdpのprobeモードで、CPUが100%に張り付くという問題(結果、原因としてはしょうもないミス)がありました。 機能としては正しく動いているので、単純にテストケースを増やしてもどうにもならず、pprofを使って原因となっている箇所を絞り込んでみました。…

TCPパケットを解析して構造化ログでダンプするツール tcpdp を作った

やっと形になってきました。 github.com 「データベースのクエリログを取得したい」 例えば、データベース(RDBMS)のクエリログを取得したいとき一番確実な方法は、そのRDBMSに備わっているログ機構を利用することです。 一方で、全てのクエリログを出力す…

ISUCON8に参加してほとんど何もできなかった

ISUCON8 予選に参加してきました。 自分個人としては、「ほとんど何もできなかった」という感想でした。 どうせ普段できないことは出来ない どうせ普段できないことは出来ないと思って ( ISUCON8に参加した | | pyama.fun ) これは、本当にそのとおりでした…

net/http/pprof のheapの値は何を表しているのか

pprofのWeb UIの "heap" の数って何を表すんだろう? pic.twitter.com/JWlAgIL5Ka— k1LoW (@k1LoW) 2018年9月7日 tcprxyというTCPプロキシを作っています。 github.com 8月中旬くらいから「よし、プロダクションレディになるくらいまで開発してやろう」と、…

go.uber.org/zapでコンソールとファイルのそれぞれに別々のフォーマットでログを出力する

夏休みの自由課題です。 今作っているサーバにログ出力の機能をつけたいと思っていて、ログライブラリを検討していました。 必要な要件は以下です。 ファイルには、構造化ログを出力したい(JSONでもLTSVでもなんでもいい) コンソール(STDOUT)には、人間…

tbls v1 をリリース / SQLiteに対応した etc.

データベースドキュメント生成ツールのtblsですが、ひと通り機能が落ち着いた(と思った)のでメジャーバージョンのv1をリリースしました(現在は v1.2.1)。 github.com 前回 v0.8.2 からの追加機能や修正などを紹介したいと思います。 Amazon Redshiftのサ…

TCP Proxyを書いてMySQLの通信を覗いてみる

お、MySQLの通信も見えそうだぞ? pic.twitter.com/GVxBXqHEgA— k1LoW (@k1LoW) 2018年7月25日 "TCP Proxyを書いてPostgreSQLの通信を覗いてみる - Copy/Cut/Paste/Hatena" の続編です。 MySQLの通信を覗いてみる また簡単なクエリだけを対象にします(プリ…

TCP Proxyを書いてPostgreSQLの通信を覗いてみる

なんとなく興味がでてきたのでインターネット情報を参考にTCP Proxyを書いてPostgreSQLの通信覗いてみた。クエリの取得まではできた。HTTP/1.1の世界で生きていたので、プログラムでバイナリ?を触ったの久しぶり過ぎるし(TokyoTyrantのPHPクライアント書い…

Fukuoka.go#11 に参加してspf13/cobraの紹介をした #fukuokago

Go

先週、Fukuoka.go#11 に参加しました。 fukuokago.connpass.com どの発表も興味深く聞くことができました。主催の皆さん。発表者の皆さんありがとうございました!! 感想を1つだけあげるとしたら どの発表も本当に面白かったのですが、個人的には @deeeet …

データベースドキュメント生成コマンド tbls 更新情報 ( MySQLに対応/ER図自動生成/リレーション・コメント追加機能 etc)

Go

tbls更新情報です。 やっとできた— k1LoW (@k1LoW) 2018年6月5日 やっと、もともと実装したいと思っていた機能をすべて実装できましたので紹介します。 なお、tblsコマンドについては以下のエントリに書いています。 k1low.hatenablog.com 追加機能 ( ~ v0.8…

CIフレンドリなデータベースドキュメント生成コマンド tbls を作った

Go

進捗報告です。 https://t.co/sVmTUw6klC とりあえずPostgreSQLの実装はできたので、明日からテーブル設計のドキュメント化とそのドキュメントのCIは回せそう— k1LoW (@k1LoW) 2018年5月20日 ドキュメントの更新が追いつかない問題を解決したい 活発なプロジ…

第2回Web System Architecture研究会@福岡 に参加した #wsa研

まさに「Webシステムのアーキテクチャ」で悩んでいることがあって、どうしても「これだ!」という情報を探すことができなかったところ、Web System Architecture研究会が福岡で開催されるということで渡りに船とばかりに参加してきました。 発表内容 予稿 gi…

cgrpsの実践を考える

cgrps ps いらなそうだから削除しよう— k1LoW (@k1LoW) 2018年4月30日 (主に自分に)来たる大量コンテナ時代に向けて作ったcgrpsですが、試験運用をしていて気づきがありました。 github.com 今回は新たに作成したサブコマンド cgrps pids について紹介しま…

MISSION WORKSHOP The Rhakeを使い始めている

2ヶ月ほどになりますがバックパックをMISSION WORKSHOPのThe Rhakeに変えて使い始めています。 左がThe Rambler、右がThe Rhake Tha Rambler もともとは同じMISSION WORKSHOPのThe Ramblerを愛用していました。つまり前もMISSION WORKSHOPです。 missionwork…

faultlineのGitHub連携機能をGH:Eに対応した / faultline-go をリリースした

faultline更新情報です。 faultlineのGitHub連携機能をGH:Eに対応しました faultlineのGitHub連携機能をGitHub Enterpriseに対応させました。faultline v1.2.0 から利用可能です(ただ、バージョンアップされる方は最新にすることをおすすめします) 具体的…

asciinema / asciicast2gifでターミナルのアニメーションGIFをつくる

ターミナルでのコマンド実行のアニメーションGIFを作るとき、自分はasciinemaとasciicast2gifを使っています。 github.com github.com ターミナルのアニメーションGIFを作るツールはいろいろありますし自分でも試したのですが、今のところ使い勝手が良いのと…

cgroupの状況を確認するコマンドcgrpsを作った

cgrps v0.5.0 から cgrps ps コマンドは削除しました cgroup / cgroups 問題について下記に追記しました。それに伴いタイトルと文章も修正しました。 以前のエントリで書いたようにcgroupの状況を確認するコマンドはあります。 k1low.hatenablog.com ごく普…

JAWS-UG福岡#6 でロリポップ!マネージドクラウドについて発表した #mclolipop

JAWS-UG福岡:6度目もちょっと濃い目にAWSの話をしてみよう というAWSなイベントでマネージドクラウドの発表をさせてもらいました。 もともと自分はAWSをよく使っていて、いろいろなツールを作っていたこともあって、JAWS-UG福岡の中の人たちにはお世話にな…

ロリポップ!マネージドクラウドのチームメンバーとして正式版リリースに参加できた #mclolipop

今日マネージドクラウドの正式版リリースがされました。 mc.lolipop.jp 前々から(使う側として)目をつけていたサービスの開発チームにまさかJOINできるとは思っていませんでした。 たった1ヶ月半で、何も知らないところから、技術面にもビジネス面にもいろ…

cgroupの状況を確認する便利コマンドは存在した

cgroupの状況を確認するのに以下のコマンドが使えることを知りました systemd-cgtop 名前の通りcgroupごとにグルーピングしてtopコマンドみたいにCPU, Memory, Block IO usageを確認することができます systemd-cgls こちらもcgroupごとにグルーピングして表…

mod_mrubyとngx_mrubyのRPMリポジトリをpackagecloudに作った

ビルドとかコンパイルとか苦手なのでビルドとかコンパイルをできるだけしなくて済む世界を作るためにビルドとかコンパイルをしている— k1LoW (@k1LoW) 2018年3月22日 マネージドクラウドのチームにJOINして、1ヶ月たちました。 ツイートから周りからは「楽し…

街のレコ屋という場所

※正確にはCDショップの話です。 ※DJの人たちの話ではなくて、ただのリスナーの話です。 今の時代、音楽はインターネット上でいくらでも得ることができて、様々なプレイリストがあるし、あの手この手でレコメンドがされます。 ただ、自分はおそらく古い人間で…

git cloneしているソースコードからGitHubやGH:EのWebページを開く

前にも書いたとおり、マネージドクラウドチームで開発に関わっているのですが、今までと違って まだ全てを追いきれていない ある程度の規模のアーキテクチャなので複数のリポジトリに分かれている 多くのOSSを活用している(もしくはOSSを自分たちで作って活…

GMOペパボに入社していました

入社エントリ頑張ろうと思ったのですが、余裕がゼロなので、ロリポップ!マネージドクラウドのJOINエントリをもって入社エントリとさせていただきます。 note.mu ちなみに今どんな感じなのか 昼休みに「たぶんP山さんにabみたいにベンチマークかけられている…

ダーマの神殿に行った気持ちで頑張る

2月末で株式会社Fusicを退職します。現在有給消化中になります。 気づけば11年目に突入していた 長いように思えますが、特に不満なくやってきていつの間にか勤続2桁に突入していました。 これがどれくらい長いかというと バージョン管理のツール(サービス)…

faultline v1.0.0 をリリースした

今年のうちにfaultlineをv1にしたい— k1LoW (@k1LoW) 2017年12月18日 残念ながら2018年に入りましたが、リリースできました。 github.com v1になって何が変わったのか? 基本的に機能追加などはありませんが、v0からいくつかBREAKING CHANGEが入りました。 B…

utsusemiという静的サイト生成用クローラを作った(作っていた)

github.com 昨年からサーバーレスな勉強会で何回か紹介していましたが、ちゃんとエントリを書いていなかったので書いておきます。 これは何? 1つのオリジナルサイトをクロールしてS3上に(S3の静的ウェブサイトホスティング機能で)静的サイトを構築してし…