久し振りになるblogの更新です。
日常の家事に追われてバックログが蓄積の一途に、時間が欲しい。
そんなこんなで公開サーバー(このblogや写真の蓄積用)の相手をしないで掘ったら貸したまま放置してたのですが、サーバーに仕事を放棄されてしまいました。
再立ち上げしてログをざっと見たのですが、原因は分かりませんでした。システムログは3月2日の朝11時頃が最後で、気が付いたのが3日の夜11時頃なので、丸1日半停止していたようです。時々訪れてくれる貴重な方々にはご迷惑をお掛けしました。
停止した原因も解明出来ていませんが、SSHのリモートでのログインの操作も出来ず、一番原始的な電源コードを抜いて、再度差し込む基本的な方法で復旧しました。
昔のUNIXを知る身には、電源コードが抜けてファイルシステムの復旧に半日や1日掛かった記憶が嘘のようで、なんと軽快に復旧してしまうのだろうと思い一安心しました。
外から保守出来るように、何の細工もなく標準の22番ポートは開けてあり、何時ものようにアタックしているログは記録されていますが、パスワード認証はさせてないのでそこに問題は無さそうですが、さて何が悪いのでしょう。
昨年の夏の前にセットアップして、ざっと半年は稼働していた訳なので、まずは良しとしましょう。ただ、不具合をもっと早く発見できる何らかの対策が必要だと痛感しました。
サーバーに問題が発生した頃に、実は子供からWi-Fiで利用しているゲーム機?の動作が何か繋がりにくいけど、ネットワーク機器を変えたのかと聞かれてました。
何でそんな分かりやすいサインを見落としていたのかと、確かにDHCPサーバーも屋内のDNSサーバーもそこに集約させていました。そういった管理的な仕事をしていた会社を去ってから早5年、今の頭は完全に錆びきっていますね。
時間を作って、別のサーバーから定期的に主要なポートの稼働チェックとping死活チェック、不具合検出時の自動報告メール機能を組み込まないと駄目ですね。
しばらく様子を見るしかなさそうです。このblogのサーバーでもありますので…
カテゴリー: Linux全般
Linux関連のメモ書き
syslogに残るCRON 認証失敗
何とかセットアップしながらですが、今月からインターネットに公開を始めたPogoPlugで、syslog にCRONの認証失敗が多数記録されています。 この状態だと実行も行われていないようです。
Aug 4 08:58:01 DebianPogo CRON[4789]: 認証失敗
Aug 4 09:00:01 DebianPogo CRON[6354]: 認証失敗
Aug 4 09:03:01 DebianPogo CRON[8696]: 認証失敗
Aug 4 09:08:01 DebianPogo CRON[12609]: 認証失敗
この原因がわからないので、色々と調べました。 /etc/crontab には、実行するユーザーを指定しているので、そのメール環境に原因があるのかと思い、postfixの配送先を見直しましたが、特別な関係は無いようです。
root@DebianPogo:~# nano /etc/aliases
root@DebianPogo:~# newaliases
そこで、実行ユーザーを root に変更して、標準出力やエラー出力の情報を /dev/null に捨てるのを止めると、正常に動作していると思われる結果をメールで受け取ることが出来ました。
There doesn't seem to be any new mail.<br />Retrieval completed.<br />
syslog を確認するとメールの配送処理が行われているのが記録されていました。
そこで、実行させるユーザーでのログインを試して見ました。すると、syslog に記録されているのと同様に認証失敗の文字列が吐き出されて、ユーザーに対応するシェルが起動しませんでした。
root@DebianPogo:~# su - www-data
su: 認証失敗
(無視)
This account is currently not available.
root@DebianPogo:~# su - nobody
su: 認証失敗
(無視)
ディレクトリがありません。HOME=/ としてログインします
This account is currently not available.
root@DebianPogo:~# su - pogo
pogo:~$ ログアウト
この場合は、ユーザー名の root と pogo だけが認証失敗にならずに実行できるようです。 /etc/crontab で実行させるユーザーを pogo に変更して経過を見ると、この件に関しての認証失敗の記録は無くなりました。
なかなか上手く行かない
ブログの設定が思う様に出来ない。
ネットの情報を頼りに試行錯誤の毎日です。
ブログの公開準備
新しいWeb公開サーバーにwebalizerの導入
今現在インターネットに公開中のWebサーバー(Buffalo LinkStation)が少し古いOSで稼働しています。
最近は、Windowsを含め、Linuxやその他のシステムでもIPv6がセットアップされていますし、むしろそちらがデフォルトの設定として優先的に機能しているのですが、今の公開サーバーではDebianの古いOSなので、それに対応できていません。
そこで、最新のDebian OSを組込んだ新たなサーバーを立ち上げようとしています。
ただ古いOSとはいえ提供している今の機能としては、何年もの長期間の運用で安定して稼働しています。また、物理的な構造も内蔵ディスクを2台収容しシステム単体でRAID構成が組めてデータの保証もある程度は担保されています。という事で、同様の構成で最新のDebianに載せ替えて運用できれば理想的だと思ってます。
最終的な理想形は目標としてありますが、すでに公開している今のサーバーとしての運用形態は継続させる必要があり、簡単にはシステム更新ができません。そのため一時的にせよ別のサーバーで代替運用しなければなりません。
そのため今回は、代替運用としてPogoplug E02にDebianの最新Jesseを組込み、代替Web公開サーバーとして立ち上げます。apache2.4でセットアップして、現行公開サーバーでは運用できていない機能のブログを追加機能として組み込むこととしました。今稼働中のこのブログがWordPressにより実現されています。
公開サーバーの利用アクセスの概要を確認できるようにWebalizerをセットアップしますが、現サーバーではv2.01で完璧に近い日本語化が行われているのですが、何故か最新のv2.23-08では文字化けしているようです。
日本語化用のファイルは、EUC-JPらしく、ネット情報を参考にUTF-8に変換してソースからメークしましたが、フォントの指定でエラーが出てしまい画像上の文字が化けてしまいます。諦めてUTF-8に変換しただけの中途半端な日本語化で妥協することにしました。
BLOGをセットアップしてみようと思い立ち
佐藤さんも旅立ちに向けブログを立ち上げたので、勉強を兼ねて何とか自分でも立ち上げようかと考えました。
実はすでに数年前には@niftyのブログを少しだけ触っていたのですが、何か自分には合わないような気がしていて、ちょっとすっきり出来ずに遠ざかってしまい、その後更新が続かないまま月日が流れてしまいました。
そこで自分で立ち上げるために使うブログソフトを何にするのか…と言うより何があるのかの知識もなく、何を利用しようかと調べていると WordPressと呼ばれるソフトがあるらしい事を知りました。
それが今やっと動き始めたこのブログソフトです。
ここまでの状態に来るまででも数日要して、試行錯誤ですんなり行ってるわけではなく、今文字を打ち込んで検証ができそうな環境になったのもキセキのように感じています。
その苦労をメモとして記述しておきます。
まず組込むサーバーは、最新のDebianを投入したピンクのPogoPlug E02を利用して立ち上げて、公開用の私の写真サイトをフルコピーして、別のディレクトリにWordPressを投入して、URLで /blog/ 以下に設定することにしました。
最終的には外のインターネットからアクセスできるようにするつもりですが、ある程度操作してみて問題がない事の検証が必要です。
WordPressは、日本語にも対応している phpソフトで、色々な部分が部品のように .phpで作成されていて、スタイルシート .css や JavaScript .js 等が混在した状態です。
実行権限を与える必要があり、apache2の設定で、WordPressの入ったディレクトリを /cgi-bin/ と同様にと考えて、 ScriptAliasディレクティブで定義したらエラーが出てしまい、原因がわからず苦労しました。
apache2は、ScriptAlias定義された場所にあるファイルは、スクリプト以外でも全て実行させるように動作するらしく、.css .js も実行してエラーになるようです。
[cgid:error] [pid 9402] (13)Permission denied: AH01241: exec of ‘/var/wordpress/html/wordpress/wp-content/themes/twentyfifteen/js/functions.js’ failed
最終的には、以下のように定義しています。
Alias /blog /var/wordpress/html/wordpress
<Directory /var/wordpress/html/wordpress>
DirectoryIndex index.html index.html.var index.php index.cgi
AddHandler cgi-script .cgi .pl .php
Options ExecCGI FollowSymLinks MultiViews
Require all granted
</Directory>