はじめに
今IDCFクラウドでVPSを借りていて、鯖管初学者として私、 @kamioda_ampsprg, @celluloce@qiitadon.comと割り勘してえっちらおっちら運用している。
先日は@kamioda_ampsprgが
のような記事を投稿していた。
サーバー監視ツールを入れたい
最初は適当にgnome-system-monitorみればええんちゃうん?とか軽く考えていたが、入れようとしたらご覧の有様だよ!
流石にそっ閉じして、真面目にサーバー監視ツールを入れようとなった。
netdata
というわけでnetdataである。
公式Wikiに基づいて
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
とした。
これだけでsystemdのサービス追加とか不足パッケージ引っ張ってきたり、cronに自動アップデート登録したりしてくれる。強いて言えばcronじゃなくてsystemdで自動アップデートしてほしかったが、まあいいことにする。
この時点で、http://127.0.0.1:19999
でWeb画面が見えることになっているが、ここで19999 port開けるとかただの馬鹿なのでもっとマシな手段を取る。
サブドメイン取得
お名前.comのDNSを使っているので、それで新たにAレコードを貼る。
Let's Encrypt
とりあえず
<VirtualHost *:80> ServerName netdata.irregular-at-tus.work ServerAdmin https://qiitadon.com/@yumetodo DocumentRoot /usr/share/netdata/web/ ErrorLog /home/for_netdata/logs/error.log CustomLog /home/for_netdata/logs/access.log combined </VirtualHost> <Directory /usr/share/netdata/web> Options Indexes Options FollowSymLinks #AllowOverride none Require all granted </Directory> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
のようなダミーのApache2 configを書いて/etc/apache2/sites-available
に置き、
$ sudo systemctl restart apache2 $ ./certbot-auto run --apache -d netdata.irregular-at-tus.work
--apache
は自動でapache2の設定を書き換えて証明書のパスを書いたりしてくるはずなんだけど、どうにもうまくいかない。なんでや。
まあ証明書はくれたのでいいことにする。
Digest認証有効でHTTPSでnetdataの画面を公開する
あんまりサーバー監視ツールの画面を不特定多数の人には見られたくない。アクセスする人のIPアドレスは可変なのでIP指定制限するのもだるい。BASIC認証はダサい。どうするかと思っていたら、
ちょうどいい記事があった。そういやDigest認証なんてあったわ。
Apache2からSSL有効でProxy貼る方法は
公式のIssueにそれっぽいconfig晒している人がいたのでこいつを元にいじる。
<VirtualHost *:80> ServerName netdata.irregular-at-tus.work ServerAdmin https://qiitadon.com/@yumetodo DocumentRoot /usr/share/netdata/web/ Redirect permanent "/" "https://netdata.irregular-at-tus.work/" ErrorLog /home/for_netdata/logs/netdata-error.log CustomLog /home/for_netdata/logs/netdata-access.log combined </VirtualHost> <VirtualHost *:443> ServerName netdata.irregular-at-tus.work ServerAdmin https://qiitadon.com/@yumetodo DocumentRoot /usr/share/netdata/web/ SSLEngine On SSLCertificateFile /etc/letsencrypt/live/netdata.irregular-at-tus.work/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/netdata.irregular-at-tus.work/privkey.pem SSLProtocol all -SSLv2 -SSLv3 Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" ProxyRequests Off ProxyPreserveHost On <Proxy *> Require all granted </Proxy> # Local 127.0.0.1:19999 netdata server accessed with '/' ProxyPass "/" "http://127.0.0.1:19999/" connectiontimeout=5 timeout=30 ProxyPassReverse "/" "http://127.0.0.1:19999/" <Location /> AuthType Digest AuthName "Digest Auth" AuthUserFile /etc/apache2/.htdigest Require valid-user </Location> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 ErrorLog /home/for_netdata/logs/netdata-error.log CustomLog /home/for_netdata/logs/netdata-access.log combined </VirtualHost>
https://gist.github.com/yumetodo/11ead23aee869f5f9ff7dfc4618c458e
こいつを/etc/apache2/sites-available
に置いて(さっきのと置き換える)
$ sudo a2dismod auth_basic $ sudo a2enmod auth_digest $ sudo systemctl restart apache2
で完了。注意点はBasic認証を殺さないとDigest認証は使えないらしい。
Microsoft EdgeはDigest認証すらまともに使えない
なんとURL末尾に?
をつける必要があるそうだ。糞では?
参考リンク
- IDCFクラウドのUbuntu16.04サーバーでサブドメインを使えるようにするまで - Qiita
- サーバー監視ツール netdata - Qiita
- Installation · firehol/netdata Wiki
- リアルタイムなリソースモニタリングツールのnetdataを試してみた | Developers.IO
- Apache2.4でLet's Encryptを使ってHTTPS化してみる - Qiita
- ユーザーガイド - Let's Encrypt 総合ポータル
- Let's Encrypt サーバー証明書の取得と自動更新設定メモ | あぱーブログ
- Get Certbot — Certbot 0.23.0.dev0 documentation
- apache2.4系でBasic認証 or Digest認証、特定IPアドレスからは認証なしで - Qiita
- Node.js - node.jsで動いているアプリケーションにサブドメインを割り当てたい(53493)|teratail
- メモ: ブラウザで作成したsvnのSampleProjectが見れない