カテゴリー別アーカイブ: その他デジタル

Zabbix Proxyサービス起動時刻がおかしいと正常に動作しなくなる話

Zabbix Server、Zabbix Agentが導入されているサーバーを再起動することは問題ないが、Zabbix Proxyが導入されているサーバーのOSを再起動するとなぜかagent pingが飛ばなくなるという現象が有りました。以下のような状況でした。

  • OSはCentOS 7.2
  • Zabbix 3.0.2
  • zabbix-proxy.serviceは自動起動が有効。
  • キャッシュDBはSQLite3を利用。
  • systemctl restart zabbix-proxy を実行すると改善。
  • 稀にOS再起動後も問題なく動作する。

最初はProxyの設定ファイルを調査するも特に不審な点は無い状況でした。しかし、systemctl status zabbix-proxyで出てくるサービス起動時刻がおかしい事に気づきます。dateコマンドを叩いて表示される時刻はJSTとして正しいものであるものの、zabbix-proxyの起動時刻はJST + 7.x時間という中途半端な時刻になっています。9時間マイナスならともかく、JSTよりさらに先というのがよく分かりません。

  • dateコマンドで表示される時刻は正しい。
  • timedatectlで確認できるJST、UTCともに正しく、RTCはUTCと同じ値。
  • sshd等、他のサービスにもsystemctlで確認できる起動時刻がおかしいものがある。
  • psコマンドで表示される時刻は正常。
  • systemctl restart zabbix-proxyを行うとサービス起動時刻も正常なJSTになる。

時計回りの怪しさ満点ですが、結果としては「OSを起動している仮想環境のホストであるESXiの時計が狂っている」という物でした。OS上の時刻表示が正しいものだから結構気づくのに時間がかかりました。
では、なぜOS上の時刻が正しいのにサービスの起動時刻だけおかしくなるのかというと、OSの再起動時にESXiの機能が時刻同期をオフにしていてもホスト側に合わせてしまうというそんな事しなくていいのに……という処理が入るとの事。その後OS起動処理の中でchronyが動作し、ユーザーが触る頃には正しい時刻、という動きが再起動の度に挟まれていたようです。以下の記事がとても参考になりました。

―ESXi上のWindowsゲストの時刻がずれて詰みかけた話
http://qiita.com/ine1127/items/edb0a46b638265186650

なぜZabbix Proxyの起動時刻が正しくない状況にあると正常に動作しなくなるか、という点については不明ですが(まぁ正常な環境ではないのは確かですが)、とりあえず今のところは再起動後もagent pingが途切れなくなっています。


Chrome 50 + Rapport フリーズ多発の顛末

タイトルにもうオチが書いてあるようなものですが、Google Chromeのバージョンが50になった辺りから、ページ読み込み中の応答なしが多発していた現象の顛末について。

まず、Chrome 49の辺りから一部Flashの表示が崩れることが有りました。具体的には「アイドルマスター シンデレラガールズ」「アイドルマスター ミリオンライブ」等なのですが、数年前にも似たような現象の経験があり、その時と同様にFlashのハードウェアアクセラレーションを切る事で改善しました。おそらくハードウェア側の問題なのですが、GPUの動画再生支援部分だけが壊れるという現象を経験しています。ドライバの設定や再インストールでは改善せず、GPUを買い替える事で解決します。

そして、Chrome 50になってからはページ読み込み中にブラウザの応答が無くなりフリーズする事が多発するようになります。これもGPU的な問題かと思い、グラフィックスカードを取り外し、intel内臓グラフィックスに変更するなど試していますが、特に改善しませんでした。その他、以下の部分を試しても改善せずという状況。

  • GPUの変更(intel内臓への変更)
  • 全てのプラグインを無効化
  • 全キャッシュ削除
  • プロフィールファイルの再作成
  • Googleアカウントとの連携を切る
  • Chromeの再インストール
  • 念のためPC全体のウイルススキャン
  • SSDへのtrim処理
  • ディスクチェック

で、Rapportについて。これは、国内の各種インターネットバンキングサイトで導入が推奨されている、そういったサイト専用を謳う無償のセキュリティ対策ソフトです。某ネットバンキングサイトを利用するにあたり約1年以上前から導入しており、これが怪しいと思った部分も有るのですが、ChromeのRapportプラグインは「全てのプラグインを無効化」の時点で無効化しており、この時点で関係ないものだと思い込んでしまいました。

しかし、もうOSを入れなおすしかないのかなと思っていた最後になんとなく「Rapport止めてみるか」と停止させてみた所、今までのフリーズ多発が嘘のようにChromeが安定。PCを起動するたびにRapportを落とすのも面倒(自動起動の無効化は出来なかった)なので、いったんアンインストールする運びとなりました。

気づいてしまえば「セキュリティソフトが悪い」というネットトラブルあるあるな原因ですが、「あそこで関係なくなったはず」と疑う対象から外すのは、仕事での開発の上でも気を付けたい所だな、などと思ったり。

アンインストールの際に表示されるアンケートで現象は伝えているので、修正されるといいのですが。あとは、グラフィックスカードを買い替えるかどうか、しばらくはintel HD Graphicsを使うか。


Windows環境にちゃんと動くComposerを導入する

2016年1月現在においてPHPで何かを作るうえで、パッケージ管理ツール(兼、便利なクラスオートローダー)であるComposerを使う機会は多いと思います。そしてこのComposerはWindows環境においても簡単に導入できるのですが、実際にComposerを使ってパッケージを導入してみようと思うと内部でGitコマンドを呼び出していたりと動かないことがありますのでその辺まで含めて簡単にまとめてみたいと思います。

0.PHPをインストール済み

http://windows.php.net/download
既に導入済みかとは思いますがWindows版PHPをインストールしておきます。ファイルを展開し C:\php\バージョン\ あたりにでも展開、環境変数にパスを設定して、あとはphp.iniのタイムゾーンやら基本的な設定をしておきます。Windows 10は以前のWindowsに比べて環境変数が編集しやすくなってていいですね。

php環境変数設定

更に脱線すると、WebサーバはPHP内臓のビルトインサーバが使えますので、別途ApacheやXAMPP等をインストールしたりする必要は特にありません。DBを使いたい人はWindows版のMySQLなりPostgreSQLなりもどうぞ。

1.Composerをインストールする

https://getcomposer.org/
Windows版のインストーラがありますのでComposer-Setup.exeをダウンロード、実行でインストール完了です。途中、右クリックメニューにComposer関連のコマンドを追加するかのオプションが表示されますが、特に追加する必要はないかと思います。

もし、以下のような画面でインストールが失敗した場合、PHPのopensslエクステンションが有効になっていません。php.iniでopensslを有効にして再度実行してみてください。

composer_windows_openssl

php_ext_openssl

2. Git for Windowsのインストール

https://git-for-windows.github.io/
ここまででComposerの導入はできているのですが、実際に使おうと思うと内部でGitコマンドを呼んでいるなどして結局動かないことが多々あります。Gitコマンド含めLinuxコマンドも使える環境としてGit for Windowsを導入します。えっ、結局Linux互換環境入れちゃうの?と思われるかもしれませんが、基本的にComposerコマンドを使うときにコマンドプロンプトの代わりにGit Bashを開く程度で済みます。コンポーネントの選択でGit BashのチェックはデフォルトでONですので、そのままにしておきます。以下、注意が必要な選択肢。

1番目か3番目をお好みで。3番目の「Use Git and optional Unix tools from the Windows Command Prompt」を使う場合は記載の注意を要確認。

git_bash1

MinTTY(MSys2)を使います。

git_bash2

3. 使ってみる

ここまででインストール完了です。実際に使ってみます。インストール済みのGit Bashを起動します。

bit_bash_menu

おもむろに composer とタイプしてみます。動いた!

comoposer_for_gitbash

では実際にパッケージを導入してみます。今回はとりあえずCodeigniterを入れてみます。Codeigniterは公式のComposerパッケージがないのですが、@kenji_s 氏作成の使いやすい導入パッケージが利用できます。ありがたい。

CodeIgniter 3.0をコマンド一発でインストールするCodeIgniter Composer Installer

適当なインストール先ディレクトリを作成し移動、サンプルのコマンド通りに実行してみます。

composer_codeigniter

ComposerでCodeigniterが導入できました!せっかくなので動作確認まで行います。publicディレクトリまで潜り、php -S localhost:9090でビルトインサーバを起動、Webブラウザで開いてみます。

codeigniter_303_init

しっかり動いています!おしまい!


特定の環境でexFATのHDDが有ると起動しない件

既に夏ごろの話なのですが、メインPCをWindows10にリプレースするにあたって遭遇した現象。最終的にはNTFSでフォーマットしなおす結果になりました。はっきりした事は分かっていませんが、状況をメモしておきます。UEFI(BIOS)のPOST時点で起動がフリーズするのでOSは関係なさそうです。

  • 発生した状況はマザーボードにASUSTek P8Z68-M PRO、HDDはHGST HDP725050GLA360を利用している環境。
  • 再現率100%。
  • exFATのHDDは起動ドライブではない。起動ドライブはNTFSでフォーマットされたSSDを利用しておりSSDのみ繋いだ状態では問題なく起動する。
  • UEFIをその時点の最新バージョンに更新してみるも特に変わらず。
  • exFAT形式でのフォーマットはWindows7 SP1で実施。
  • どうもチップセットに関係なく同様の状況が起きているケースもある模様。
    ―(検証希望)3TBのHDDをexFATで初期化するとHDDにロックがかかる
    http://bbs.kakaku.com/bbs/K0000424008/SortID=16591024/#tab
  • NTFSでフォーマットしなおしたら改善。