Skip to main content

ログ取得ツール

Category: コンピュータ

いろいろと環境を変えてみたり…

あまり大した理由はないのだが、環境を変えてみた。ちゃんと動くかな?

  • VPSを乗り換えて
  • Apacheやめてnginxにして
    • mod_security外して

…と色々とやってみた。果たして私はどの程度ロックインされていたのか。

全体的には技術進歩の享受を受けるには新しい方が良いわけだし、定期的に乗り換えていくというのは賢いスタイルなのかもしれないね。

  • VPS乗り換えはトラブルもあった
    • 新しい方でIPv6が使えないっぽい感じになったので、もっかい別のVMを契約し直したらそっちは使えた
    • 最初に契約したサーバは速攻で破棄
  • とりあえずnginx + php-fpmにするのは問題なさそうな感じになった
    • 一部PHPのエラーが残っている。日付関係? ページが見えないケースがあると思います
  • HTTP/2への対応は見送り。OpenSSLを上げないとダメ(ALPN対応が必須になったため)
    • 一応http2と書いておいたら電話系のクライアントの中にはHTTP/2でつないでくるものもあるみたい
    • 時間ができたらやる
  • 全く認識していなかったが、CGIを一部使っていた
    • nginxはCGIに非対応。ただしやり方はいくつかある
    • PythonのCGIHTTPServerを使ってローカルに上げたHTTPサーバにreverse proxyすることに
    • CGIHTTPServerは渡さないヘッダがあるみたいで多少トラブルに
      • refererを渡さないみたいなんだが、refererを見るCGIがあったんだよね(mimetex)
      • コンパイルフラグを変えてrpmを作ってrefererを見ないようにしてみた
      • yum updateで上書きされたらまた使えなくなるねー。ignoreに入れておくか?
        • それまでにrefererを渡せる方法を考えよう
  • mod_security外すのはちょっと微妙な感じはある
    • wordpressにプラグインやテーマを割と入れていて、そいつらをあんまり信用していないので

あと上流のファイアウォールの設定をAPIでしか変えられないっぽいのでcurlでAPI(openstackのやつかな?)を打って回っていたんだけど、なかなかうまくいかなかった。しょうがないのでWebのUIで変えられる範囲で絞ってみるのだが…sshをport 22で使うと、それだけですごい勢いでアタックされるんだよなー。自分の手元環境を考えるとアクセス元のIPアドレスは絞れないし。

最近Googleアカウントへのログイン行為が…

以前にGoogleアカウントへのログイン時にパスワードを入力する代わりに電話へのダイアログで代用するような設定をした。便利に使っていたのだけど、これが最近使えなくなっている。なんだこりゃ。再設定しようとすると画面ロックの機能があるスマートフォンが必要ですと言われる。使ってるのはNexus 5XのNougat(7.1.1)だぞーん。これ以上Google Friendlyの端末なんてPixelしかないだろ。この程度の機能にそれが必要なの? 一体どういうつもりだろう。

そして、これをこのブログに書いてあげよう、と思っていた。

…と思って今やってみたらできました!

ちょっと前に「アカウントが変更されました」と勝手にログアウトされるという事件があった影響かもしれない。あれは実に怪しかったなぁ。最初は本物のGoogleが出していると思わなかったもんね。これ絶対パスワード入れちゃいかんやつだ、って。じゃあ誰がこれを出してるんだ、という話。

DAZN考察

DAZNに勝手なことを言うのが流行りなのかと思うので便乗していこう。

見てると主要なやりとりである動画データ部分はakamai(=当代最強のコンテンツデリバリ屋)を使っていて、たまに挟まってJSONでメタデータをやりとりしているcws.conviva.comはAWSのELBを使っている。これ、対処した後の状態かもしれないが、問題がある構成とは思えません。

あとweb font(?)を置いているcdn.dazn.comは自前のCDNのようなホスト名だが、これもAWSのCloudFrontでレイテンシは10-20msだから国内だろう。Server: AmazonS3だから、スタティックコンテンツとしてS3にwoffを置いてCloudFrontを噛ませているんじゃないかと。常識的。

だから、アクセス集中に対応しきれないとかいう問題ではないと思う。Jリーグ中継というレベルであれば、akamaiに十分なお金を払えば楽にさばけるデータ量。当然、akamaiからのレスポンスタイムはTTFB(Time To First Byte)で見ても10ms未満で明らかに国内から来ている。気になる部分としては、cws.conviva.comのレイテンシが常に100ms以上かかっているが、これはAWSのus-west-2リージョンを使っているため。小さいデータなので問題なさそうにも思えるが、もしレスポンスタイムが効いてくるなら日本向けにはap-northeast-1(tokyo)を使えば少しは良くなると思う。

gogsのバックアップの罠

GitLab.comでバックアップが機能してなかった事件の話を見て、まあよくある話だよね、と思ったんだ。実際に私の人生においても、周囲にいるベテランのエンジニアが機能しないバックアップによってデータロストをする、という経験が複数回あるんだよね。自分はさすがにそういうポカはやってなくて、それはそもそもバックアップしてなかったからだ、という…基本、手で作ったファイルは全部リポジトリかクラウドサービスに入れるようにしてるからね。

そんな私が、その「リポジトリに入れる」ために自宅内gitサーバとしてgogsをRaspberryPiで動かしているんだけど、gogsはgogs backupというコマンド一発でバックアップすることができる。しかし当然のようにgogs restoreコマンドはない。まあその辺はいざとなったら自分で何とかできるだろう。いつの間にかgogs importコマンドができていた。これでいけるのかな? 試してないけど。

github, gitlab, gogs…

github.com, github enterprise, gitlab, gogsをそれぞれ使っているので、それぞれの感想。

  • github.com
    • 公開できる
    • 公開されているプロジェクトが多い
    • プライベートリポジトリも作れる(有料)が、いまいち使いどころが…
      • 隠したいならそもそもgithub.comには出さない
      • そうじゃないならパブリックにするでしょ
    • 新しい(github enterprise=社内の人が計画立ててメンテ、と比べてメンテナンス頻度が高い)
    • GFMとかPRとか何かと使いやすい
  • github enterprise
    • 中でgithubで開発するときは必須
    • GFMの扱いが完璧
    • これでgithubに慣れられるという教育的効果もあるんじゃないかと
  • gitlab
    • issueとPR(merge request)はgithubよりも使いやすいと思う
      • issueのページでボタンを押すだけでブランチを作れる。そのままそこにcommitしていける
      • githubだとissueに対応するブランチをgit checkout -b issue_Nで作ってPRにするときにhubコマンドでhub pull-request -i N
      • (追記) merge requestやっぱり使いにくいかも…WIPの付け外しが簡単なのはいいけどもissueをmerge requestに変換できない! githubみたいにissueとPRの番号が共通じゃないので原理的にできないっぽい!!
    • git-lfsに完全対応
    • githubに慣れているとmarkdownの描画の行間スペースに違和感がある
    • アイコンが気持ち悪い
    • プロジェクトページが見にくい
  • gogs
    • 基本機能はだいたいカバーしている
      • webhookにも対応してる
    • 多少の不便はある
      • git-lfsに対応していない
      • PRをマージしてからブランチを削除するボタンが出てこない
      • gogs dumpはあるけどrestoreがない
    • デプロイが簡単
    • 動作が軽い
    • UIの多言語対応。日本語も完璧に翻訳されている

今のところは、、、

ブックマーク問題

del.icio.us(旧delicious.com)の運営状況が本格的にダメな感じになっているので乗り換え検討。私には気になったURLを記録してタグとコメントをつけてブログのサイドバーに貼り付けたい、という欲望があるわけですよ。どうするべきか。あとdel.icio.usに貯めたURLとタグはどうしてくれようか。 とりあえずexportは動いたのでデータは抜き出した。どっかに持っていくか? del.icio.usはimportが動いてなかったなそう言えば…ダメだなこいつらホント。 それとも自分で書くか? DBの定義はURL/title/descriptionのテーブルとタグのテーブルとN:Mのリレーションのテーブルだろ? そしてクエリはleft outer joinしてgroup byとgroup_concat(tag.name)/string_agg(tag.name, “,")でviewを作るか。 個人用なら.mhtとか.webarchiveのデータもDBに突っ込んで後で見られるようにもしたいなぁ。スクリーンショットの.png(or .pdf)と.mhtを両方持っておくのがいいのかも。スクリーンショットはphantomjsで撮ろう。.mhtはどうやって取得しようかな。 ブックマークってrailsとかでも最初のサンプルアプリの題材ですよね。さすがに自分で書くのは馬鹿らしい気もする。モバイル対応とかも思えば、ownCloudのブックマークプラグイン? AndroidのshareとかChromeのボタンとかでサクッと登録したいんだよなぁ。del.icio.usはブックマークレットも不安定だし、モバイルアプリもここ数年ちゃんと動いてないという印象(もうずっとモバイル環境ではdel.icio.usを使ってないから分からない)。

Nougat

ルヴァンってプレミアムの後継(?)のクラシカルは割と売ってるんだけど、リッツの後継の無印ルヴァンはスーパーにあんまり売ってないですよね。リッツの後継のほうの味を確認しておきたいんだけどー。 というわけでNougatが落ちてきたのでNexus5Xに入れてみました。入れてみたはいいけど、何が不快かって、FBReaderが遅くなったこと。EPUBでダウンロードした論文を電車の中で読んだりすることがあるんだけど、なんか動きが遅い。設定の問題か、と思って設定を少しいじったりするんだけど、設定のダイアログから文章の表示に戻るのが遅い。図を拡大して吟味した後で文章の表示に戻るのも遅い。これは耐えられない遅さ。要点をメモする気も失せる。以前はFBReaderで読みつつGoogle Keepにメモするというのが割と快適だったんだけど。なんとかならないかな。他のEPUBリーダーを試そうか、それともEPUBをもうちょっと小さいやつに分割したら軽くなるのかな。今は全部を1つのファイルにまとめたやつを読み込んでるんだよね。それとも久々にKoboを引っ張り出してそっちを使うか… 他はまあ普通。利用感覚はだいぶ変わった。全体的には悪くない。画面分割も対応アプリがもっと増えてくればかなり使えそう。ちょっと重くなったと感じる部分は他にもあるんだけどね。 一番問題なのは、Marshmallowの時はこいつは「マーロウ」だと思えて確かにハードボイルドな感じだったんだけど、「ヌガー」はかなり間抜け…というどうでもいい話も。

TB45…その地獄への道

みなさ〜ん、Thunderbird 45使ってますか〜 ひどい目にあってませんか〜

  • まず、Check and Sendが死んだ。ぐぬぬ…
  • 次にQuickTextが死んだ。これは…うんこうんこうんこ…

QuickTextは偉い人がパッチを作って.xpiを配布している→必読 これでどうにか持ち直した。いちいち「(自分の名前)です」「お世話になっております」「お疲れ様です」「ありがとうございました」「よろしくお願いします」なんて心をこめてキーボードで打ちたくねーんだよ! gmailはこれがないからメインでは使えないんだ。TBで使えないなら乗り換え先を検討するレベル。まさにキラーエクステンション。 Check and Sendはどうにもならない。これがないまま、気持ち悪い文字列つきのアドレスをToやCcにつけてメールを送るのが気持ち悪いんだが?

B2移行その後

S3→B2計画のその後。 前回のエントリを書いた時には、手元のローカルディスクがマスターデータであることを忘れていた。データは手元にあって、そのバックアップがS3という位置づけだったのだ。つまりローカルディスクが破損していない現状だとS3からのダウンロードという作業やコストは必要ない。 で、ローカルディスク(HFS+フォーマット)をRaspberry Piにつないでマウントし、だらだらアップロードを繰り返して、家族写真のデータを全部B2に上げた。 結局、B2のマルチパートアップロードは使わずに、大きめの動画ファイルも1本のストリームで送りきった。まあ大きめっつってもそんなに大きくなくて10GBを越えないくらいなので、特に問題はなかった。 キャッピングの機能が割と便利で、$0.5/dayに設定しているが、それでも3TB入る。100GBなんて微々たるものだ。 性能に関してはやはりS3のほうが速いかな。レスポンスも、スループットも。S3と違ってdelimiterを指定できないのでディレクトリみたいな使い方はできないが、自分には関係ない。 当面は両方使って、問題なさそうならS3のほうは消そうと思う。この圧倒的な価格差はでかい。まあ動機の99%は価格だから、S3が価格改定したらまたS3に戻ることもありうる。

Gogs

Gogsなかなかいいですね。githubクローン。この種のソフトウェアではgitlabが最も著名だと思いますが、GogsはGolangで書かれたgithubクローンで、Golangで書かれているだけあってデプロイがシンプルで、割と高速に動作する。webhookもあるから、serfとか使うとpushされたイベントを拾って何かコマンドを実行したりといったことができる。Raspberry Pi用のバイナリも配布している。gitlabはRailsだからRaspiには荷が重いかなと思っていたところ、渡りに船とはこのことか。 Raspberry Pi(宅内サーバとして使っている)のnginxにこんな感じの設定を入れて。

location /gogs/ {
  proxy_pass http://127.0.0.1:3000/;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Real-IP $remote_addr;
  client_max_body_size 100M;
}

location ~ /gogs/(assets|css|img|js|plugins) {
  rewrite ^/gogs/(.+) /$1 break;
  root /home/git/gogs/public/;
}

で、systemdのファイルは配布物に入っているやつで。これで自宅内からは http://raspberrypi.local/gogs/ でアクセスできる。 webhookの受け先にはhokoってやつを持ってきて使っている。systemdのファイルはGogsのを参考に作って、gogs dumpしてS3にputするスクリプトを書いて、pushされたらそれが実行されるように設定。自分用であればバックアップは定時実行よりもこのほうが良いだろう。 Gogsはとりあえず、gistがないのと、PRをmergeしたあとにブランチを削除する操作をブラウザからできないというのがちょっと気になるな。自宅用では使わないので不便ではないんだけど。gitlabは知らないけどgithubにはあってかなり便利な機能。これissueにあるかな?