前回のZabbixを入れてみた パート1の続きです。
以前はMuninといった、これもまたRRDToolを使ったグラフツールなんだけども、そのMuninを使っていました。
ほいでGT-Metrixの評価を上げることにこだわってたので、いろいろキャッシュするアプリケーションを試していて、最終的に落ち着いたのが、Googleのmod_pagespeedでした。
これはApacheのModuleなんですが、たけけんが試した結果これがぴか一でした。
これは予想だけど、いろいろやってくれるが為に、MuninだったりZabbixのどちらも描画の部分に影響してしまったのではないかと思います。
最初に考えてたのが、VirtualHostごとにモジュールを呼び出すものを変えれないかという方法。
たとえばVhostをhttpd.confにincludeするように変更して、VhostのConfファイルでmoduleを呼び出すようにしたらどうか。
これは上手く行かなかったので断念した。
Apacheのドキュメントをもっと読まないといけないけど、とりあえずほかに方法がないか探すことにした。
ついで試したのが、pagespeedのconfファイルの中に何かないかと探してみた。
中を見ると確かインストールしたときに多少設定を変えて、有効にしたり無効にしたりしたものがあったはずだと思い出した。
となると、順番にコメントアウトしてはまた有効にして、apacheを再起動という作業になる。
なんとなくだけど、ざーっと読んでみてこれかな?ってのを試してみようと思った。
その前にまずはpagespeedを無効にして、ちゃんと動作するかを試さないといけない。
vi /etc/httpd/conf.d/pagespeed.conf
ModPagespeed on
まずはonからoffに変えてみた。
案の定、うまく動作してくれた。これが原因なのは間違いないようだ。
となるとさっき言ったようにオプションを変えていくしかない。
それほど多くないし、順番でもいいかなあと思いながらもこれかなってのを試していく(笑)すると、なんと1回目で正解だった。
ModPagespeedEnableFilters defer_javascript
そう、犯人はJavascriptだったのだ。
javascriptのdeferと調べてみると、読み込んだあとに実行するというもの。
GT-metrixerならピンと来るかもしれないけど、これも評価対象のうちの一つで本来は記述でなんとかするところをapacheがやってくれるというものだったのだ。
MuninやZabbixでうまく動かないのはJavascriptのせいだったのだ。
そもそも体感速度を早くするのがGT-Metorixの評価を上げることの目的だったのだけど、SSDになった今ではそれほど影響はないはずなんだよね。
むしろほかにも無効にした方がいいフィルターもあるかもしれない。
HTMLは日々変わってるからなあ。
でもGoogleのModuleだし、その辺もきっと研究しているはずだけどな。
というわけで、けっこう大きな謎だったのがある日突然解けたパターンでした。
Pagespeedはまだ使うつもりだし、Zabbixもこれからいじろうと思います。
ではでは。
そうそう、さすが検知が早いのか、ほんのちょっとhttpdを止めてただけなのにZabbixからメールが来ていた。
すごい。