go-wkhtmltoxでウェブサイトのキャプチャを取ってみた

ウェブサイトのスクリーンショットを取りたかったので、headless chromeかな..と調べていたら

gogap/go-wkhtmltox: A web service for wkhtmltopdf and wkhtmltoimage

を見つけたので試してみました。

git clone すると docker-compose.yml が用意されているので docker-compose up -d するだけで
試せました。

curl -X POST \
  http://localhost:8080/v1/convert \
  -H 'accept-encoding: gzip' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
    "to" : "image",
    "converter":{
        "uri": "https://jitan-3.com",
        "crop":{
            "h": 1024,
            "w": 667
        },
        "width": 375,
        "height": 667
    },
    "template": "binary"
  }' --compressed -o test.png

な感じでtest.pngにPNGで保存できました

ただ取りたかったのはスマホで見たときのキャプチャだったのですが、それは取れない様子..
widthを小さくしても効きませんでした

ネットワーク設定ではまった話(MTU)

フレッツ光マンションタイプに入ってて、ルーターを変えた時にはまったのでメモ

古いルーター使っていて5GHz帯に対応していなかったので、買い替えました
PPoE設定しても確認..と思ったら全然つながらない..いろいろ確認して
MTUを適当に小さくしたらつながりました

フレッツ光公式|NTT西日本|フレッツ・光プレミアム(FTTHアクセスサービス)のPPPoE機能について

ここをみると、MTU 1438Bytes以下にする必要がありそうです。
知識ないと厳しいですね

リバースプロキシnginxにsslを設定した裏のEC-CUBE 2で管理者ログインできない

EC-CUBE 2を触ることがあって、カード決済テストするにはhttpsの環境が必要..ということで開発環境にもsslを導入しました

Nginx – Apache – EC-CUBE 2

と表にNginxを立ててたので、そこにsslを導入
config.phpのHTTP_URLをhttpsにします

$ vim config/config.php

define('HTTPS_URL', 'https://sample.co.jp');

これで、https化できたのですが、管理者画面でエラーになります
コードを読み進めると、httpでアクセスしてるようで..

リバースプロキシNginxのconfに

proxy_set_header X-Forwarded-Proto $scheme;

を設定しておいて、EC-CUBE2でもhttpsで動いてほしかったのですが、対応してない様子

data/require_base.php で無理やり対応しました

$ vim data/require_base.php

33行目あたりに

if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
    $_SERVER['HTTPS']='on';
}

これで、動作するようになりました

datadog-agentを動かすと大量のエラーが出ていたので直してみた

centos 7.3 にdatadogを導入してしばらくたっていましたが、ログを見ると大量のログが..
/etc/init.d/datadog-agent info でみると v 5.13.0 のようです

/var/log/message に

dd.collector[19776]: WARNING (disk.py:106): Unable to get disk metrics for /var/lib/docker/overlay/73186596b1b91e9e43aa5bfba55d023ed85e1108a25cf58360fa4fd7bb620c81/merged: [Errno 13] Permission denied: '/var/lib/docker/overlay/73186596b1b91e9e43aa5bfba55d023ed85e1108a25cf58360fa4fd7bb620c81/merged'
dd.collector[19776]: WARNING (disk.py:106): Unable to get disk metrics for /var/lib/docker/containers/33c87f172c8ae018545702ea12a8d75202c7b7e9aefcfc6a567abb419f09e26b/shm: [Errno 13] Permission denied: '/var/lib/docker/containers/33c87f172c8ae018545702ea12a8d75202c7b7e9aefcfc6a567abb419f09e26b/shm'
dd.collector[19776]: WARNING (disk.py:106): Unable to get disk metrics for net:[4026532202]: [Errno 2] No such file or directory: 'net:[4026532202]'

の3種類のログがたくさん出てました

dd.collector[1724]: WARNING (disk.py:109): Unable to get disk metrics for ... · Issue #2932 · DataDog/dd-agent

を参考に(issueは閉じられていませんが)

DISK='/my/mountpoint' /opt/datadog-agent/embedded/bin/python -c 'import psutil; import os; print [part.fstype for part in psutil.disk_partitions(all=True) if part.mountpoint == os.environ["DISK"]][0]'

のpythonスクリプトでエラーログの発生箇所を調べると

$ DISK='/var/lib/docker/overlay/73186596b1b91e9e43aa5bfba55d023ed85e1108a25cf58360fa4fd7bb620c81/merged' /opt/datadog-agent/embedded/bin/python -c 'import psutil; import os; print [part.fstype for part in psutil.disk_partitions(all=True) if part.mountpoint == os.environ["DISK"]][0]'
>  overlay

$ DISK='/var/lib/docker/containers/33c87f172c8ae018545702ea12a8d75202c7b7e9aefcfc6a567abb419f09e26b/shm' /opt/datadog-agent/embedded/bin/python -c 'import psutil; import os; print [part.fstype for part in psutil.disk_partitions(all=True) if part.mountpoint == os.environ["DISK"]][0]'
>  tmpfs

$ DISK='net:[4026532202]' /opt/datadog-agent/embedded/bin/python -c 'import psutil; import os; print [part.fstype for part in psutil.disk_partitions(all=True) if part.mountpoint == os.environ["DISK"]][0]'
>  proc

/etc/dd-agent/disk.yml.default をコピーして /etc/dd-agent/disk.yml を作成
スクリプトで出力されたものを excluded_filesystems に指定

   excluded_filesystems:
      - overlay
      - tmpfs
      - proc

これでdd-agentをリロード

$ sudo /etc/init.d/dd-agent reload

エラーログには出なくなりました