PleskからThe certificate for Parallels Panel will expire in N daysというタイトルのメールが来る

メール全文はこちら

################# SSL Certificate Warning ################

Certificate for hostname ‘Parallels Panel’, in file (or by nickname):
/usr/local/psa/var/certificates/cert3HbbzeR

The certificate needs to be renewed; this can be done
using the ‘genkey’ program.

Browsers will not be able to correctly connect to this
web site using SSL until the certificate is renewed.

##########################################################
Generated by certwatch(1)

メール全文ここまで

公式ヘルプによると無視して良いとのこと。
参考

しかし私のサーバーの環境はアップデート絡みなのか該当のphpが見つからず、、、
少し調べてたらLetsEncryptoのインストールと同時に
登録されるものらしい。

なのでサーバー→拡張からいLetsEnctyptoをインストールして解決。

推測するに
前のバージョンでLetsEncryptoを入れていたがアップデートのときに欠落(?)
Cronジョブが取り消されてて、証明書切れるよー大変なことになるよーと警告メールが届く。

という流れっぽい
解決

iowaitがパンッパンでいろいろと遠回りしてしまった件

3ヶ月くらい前からサーバーが重いという報告が来ていて
その時はphp7にアプデしてだいぶ改善されて放置。
(確かLA10近くから3付近になったはず)

そのサーバーが最近またすんごく重くなっていて(LA20付近)
いろいろとハマったのでメモ

まずは
topコマンドで見てみるとiowaitが20%近くあって

ぱっと目についたのは
kblockd
jdb2/md2-8
flush-9:1,2

というプロセス(スクショはpidstat -d ですが)

PIDも低いし実行ユーザーrootだし
バックアップ系かな?(今思えばこれが壮大な罠)

iostat -xt 5

で%utilが常にhda,hdbともに100%近く。

ここでサーバー屋さんにお問い合わせ。
GMOさんの対応の速さ神やで。

しかし挙動としては正常らしい。

dd if=/dev/zero of=/tmp/hoge bs=1KB count=1024000 ; rm /tmp/hoge
dd if=/dev/zero of=/tmp/hoge bs=1MB count=1024 ; rm /tmp/hoge

で1G書き込むも全然問題なさそう。
さらに頭が_???_なわけです。

もういちど状況を整理しプロセスの
kblockdってもしやビットコイン系かな?などと迷走しましたw

lastやlastlogコマンドであやしい挙動がないか確認。

ここで固定IPからログインがあることが判明。
そのユーザーを渡してる方に質問するとISP固定回線とのこと。
ちょっと安心。

lastコマンドのrebootユーザーが300日(これが正常なのは知ってた)
その2行上にrootユーザーが still login
これをまたもやGMOさんにお問い合わせ

これはシリアルコンソール用のログインとのことでこれも正常。

ビットコイン系とか迷走してたクラッキングはなさそうだとして、
重い原因が結局わからん。

ここで怪しいと思っているプロセスのNICE値を上げる(優先順位は下がる)

しかし変化なし。ん?変化なし。。。
バックアップ系とかデフォルトプロセスの暴走だと
踏んでたのに前提が崩れたぞ。。。

とりあえずサーバーのバックアップを取って再起動。
しかし良くなるはずもなく。

状況を整理。

reniceしても状況が良くならなかったので
全体のNICE値を確認。

上記スクショの内容よりNICE値が低いものは
httpd,php,mysqlなどなど

ここで20ドメインほど入っているサーバーの各設定を見直す。

キャッシュ系プラグインの見直し。
Mysqlも一通り見てみる。
うーん問題なさそう。

ログの肥大化?
問題なさそう。

Apacheのアクセスログをオフに。
******************************
Pleskコアファイルをイジらないといけないよ
https://support.plesk.com/hc/en-us/articles/115000067345-How-to-disable-Apache-and-nginx-log-files-for-domain-domains
******************************

状況変わらず。

duコマンドやpleskの管理画面から肥大化しているフォルダがないかここで確認。
問題なし。

念の為wp-content/cache/のファイルの数を数えてみた。

するとサイトの一つのobjectフォルダ配下に240万のファイルが。。。
これっぽいということで
プラグインをオフにしたあとに、removeしました。
(通常の削除はタイムアウトしたし)
pleskのサイズ計算や、もっと上の階層からのduでは
ファイルの数が多すぎて計算結果が出ていなかった。

サーバーが重くなっていることもあってrmコマンドの完走に12時間ほどかかりましたw

結論:W3 Total Cache のObject cacheの設定には気をつけましょw

ということで開発案件をすすめますっ

横並びのCSSの3パターン

CSSに関する記事はゴマンとあるので自分用メモにとどめておきます。
読みにくさがご勘弁を

CSSは奥さんのほうが詳しく、いつも聞いてばかりなので
同じことは聞かないようにうまくまとめていかないと、、、。

1
フロートレフト、フロートライトで頑張る
クリアフィックスを忘れない
(これはよく使うので割愛)

2
親にディスプレイフィックス
子にウィズで%指定_100位内に収める

 justify-content: space-between;

できれいに中央そろえ

3
親にフォントサイズ0を当てて

.hoge_left,
.hoge_right {
display:inline-block;
width: 49%;
}

4
親にテーブルを使う(ウィズ100%)
子にテーブルを使う(セル)
vertical-align
top: 上端揃え
を行う

色々と使えるコマンド_troubleShootingの取っ掛かりに使える系

アクセスログからipを抽出してランキング化するコマンド

Plesk環境でエラーログからipを抽出して多い順にソートしたかったので組んだ1行コマンドです。
自分用メモ兼ご指摘マサカリ大歓迎です。

cat /var/www/vhosts/Domain_Daoyo/logs/error_log |grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort |uniq -c|sort -30

同時接続数を表示するコマンド

watch -d -n 1 "netstat -alpn | grep -E ':(80|443) ' | awk {'print $5'} | sed -e 's/\:[^.]*$//' | wc -l"

意訳:
watch -d -n 1 “COMMAND”
-n … 指定した秒数ごとに COMMAND を実行します。
-d … 実行結果の差分をハイライト表示します。

netstat -alpn すべてのネットワーク状態をポート付き&名前解決なしで表示します。
grep と awkで5番目のカラムを出力 →Sed でポート番号削除 最後にカウント

参考:https://qiita.com/hidekuro/items/e75c42390eda6a63b445

 

各ドメインのエラーログのファイルをを更新順で表示。リアルタイムで全部更新されてたら顔真っ青になるやつ。

ls -lth /var/www/vhosts/*/logs/error_log

サイズ順の際は
ls -lhS でおk

ディレクトリを多い順に表示する
# du -m | sort -rn | head -100

117827.
113328./var
109083./var/www/vhosts
109083./var/www
105184./var/www/vhosts/jyukusiri.net
100166./var/www/vhosts/domain_name/httpdocs
100139./var/www/vhosts/domain_name/httpdocs/wp-content
 95853./var/www/vhosts/domain_name/httpdocs/wp-content/cache
 95259./var/www/vhosts/domain_name/httpdocs/wp-content/cache/log/000000

 

dbcache.logが100G近くありました。
これって消していいのかしら。。。
追伸_dbcache.logはw3totalcacheのdbのデバッグログでした。

2018/06/18
iowaitが多すぎて現在調査中
85 0.0 0.0 0 0 ? S 2017 104:23 [kblockd/3]
1116 0.0 0.0 0 0 ? D 2017 394:28 [md2_raid1]
1377 0.0 0.0 0 0 ? S 2017 368:16 [jbd2/md2-8]
1382 0.0 0.0 0 0 ? S 2017 13:25 [flush-9:1]

blockでioしまくりってビットコイン系のクラックが怖いZO
緊急課題ですな

特定のファイルがエラーを履いている時にそのファイルのパスを特定する

find /var/www/vhosts/ -name hoge.php -type f 2>/dev/null

pleskが入った状態で納品されたサーバーのMysqlにログイン
mysql -u admin -p$( cat /etc/psa/.psa.shadow )
(あんまりセキュリティ的によくなさそうだけども、、、)