analogのログフォーマット (turn debugging on or try different LOGFORMAT)

Cron からアラートメールが返ってくる。

/etc/cron.daily/logrotate:
/usr/bin/analog: analog version 5.32/Unix
/usr/bin/analog: Warning L: Large number of corrupt lines in logfile stdin:
turn debugging on or try different LOGFORMAT
(For help on all errors and warnings, see docs/errors.html)
Current logfile format:
%v %S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%wHTTP%j" %c %b "%f" "%B"\n
%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r%wHTTP%j" %c %b "%f" "%B"\n
%S %j %u [%d/%M/%Y:%h:%n:%j] "%j%w%r" %c %b "%f" "%B"\n
%S %j %u [%d/%M/%Y:%h:%n:%j] "%r" %c %b "%f" "%B"\n

analog のログフォーマットが違うみたいだ。Apache のログ形式は combined なので、analogの LOGFORMAT ( /etc/analog.cfg ) を確認。なかったので末尾に以下を追記。

LOGFORMAT COMBINED

Apache のログ形式を変更したときには見直すことを忘れずに。

[提供終了]画像をBase64に変換するツール (data URI scheme)

Google のウェブ検索結果でウェブページのスクリーンショットに使われている data URI scheme。

data:[<mediatype>][;base64],<data> 形式のデータ (data URI scheme) を生成してウェブページに埋め込むことで HTTP リクエストを減らせるメリットがある。ただ、バイナリデータより3割ほどデータサイズが増える。

ファイルサイズが小さいアイコンを直接埋め込んだり、ブラウザが PC より対応しているスマートフォンでも使われ出している。ということで、画像のバイナリデータを Base64 にエンコードするツールをつくった。出力形式も HTML の img、CSS、JavaScript、生データに対応。

続きを読む "[提供終了]画像をBase64に変換するツール (data URI scheme)"

サーバ管理ツール Plesk アップデートエラー対処法

サーバ管理ツールである Parallels Plesk Panel をバージョン 8.6.0 から 9.x.x にアップデートすると、管理画面にアクセスできなくなった。届いてるメールは「Plesk autoupdate success report」だけど。

メールの内容をみると、Plesk の起動に失敗している。

Trying to start Plesk...
Stopping Plesk... done
Starting xinetd service... done
Starting named service... done
Starting mysqld service... done
Starting postgresql service... done
Starting psa-spamassassin service... done
Plesk: Starting Mail Server... already started
Starting Plesk... failed
Starting drwebd service... failed

再びサービスを開始しても同じに。

$ /etc/rc.d/init.d/psa start

ログをみると、どうやら SSL でエラーになっているようだ。

$ tail /var/log/sw-cp-server/error_log
2010-10-24 18:44:44: (log.c.75) server started
2010-10-24 18:50:27: (log.c.135) server stopped
2010-10-24 18:50:34: (log.c.75) server started
2010-10-24 18:50:34: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)
2010-10-24 18:50:34: (log.c.75) server started
2010-10-24 18:50:34: (network.c.336) SSL: error:00000000:lib(0):func(0):reason(0)

対処方法は、Latest update of openssl breaks Parallels Panel を参考にパッケージをインストール。

$ wget -c http://kb.parallels.com/Attachments/12669/Attachments/sw-cp-server-1.0-6.201004011105.centos5.i386.rpm
$ rpm -Uhv sw-cp-server-1.0-6.201004011105.centos5.i386.rpm
$ /etc/rc.d/init.d/psa start
startStarting xinetd service... done
Starting named service... done
Starting mysqld service... done
Starting postgresql service... done
Starting psa-spamassassin service... done
Plesk: Starting Mail Server... already started
Starting Plesk... done
Starting drwebd service... done

と無事に Plesk が起動して管理画面にアクセスできるようになった。

関連サイト

ログ監視ツール Logwatch を使ってみる

2018.2.20追記: Logwatchのコマンドが変わっていたので、書き直しました。ログ監視ツール Logwatch を使ってみる (アップデート版)

Logwatch は、いろいろなログをまとめて集計し、レポートとして毎日定期的にメールで届けてくれる。不正アクセスや不具合の発見とサーバの監視に便利なツール。

Logwatch のインストール

Logwatch は Perl で書かれていて Perl 5.8 が必要です。

yumからのインストールは、

$ yum install logwatch

で、

ソースからのインストールは、こちらから

Logwatch をインストールした時点で cron に登録されているので、毎日4時2分になると Logwatch のスクリプト (/etc/cron.daily/0logwatch) が実行されてレポートが届く。

logwatch の設定

logwatch の設定は、/usr/share/logwatch/default.conf/logwatch.conf を編集する。標準設定のままで十分ですが、以下の項目を確認して設定。

#ログが保存されているディレクトリ
LogDir = /var/log
#メールの送信先
MailTo = user@hoge.com
#アーカイブされたログも含めるかどうか
Archives = Yes
#レポートの日付範囲を3つのオプションから。All, Today, Yesterday
Range = Yesterday
ログの詳細度、Low (=0), Med (=5), High (=10) または 0から10までの数字で
Detail = High
# チェックの対象となるサービスを /usr/share/logwatch/scripts/services/ 以下、あるいは All で指定。
Service = All
# メールコマンドパス
mailer = "sendmail -t"

サービスごとの個別設定は、/usr/share/logwatch/default.conf/services/ に用意されている。各サービスの設定ファイルを編集することで個別設定できる。

logwatch コマンドを使ってみる

標準出力

logwatch --print

特定のサービスだけ出力

logwatch --print --service http

複数のサービスにも

logwatch --print --service http --service sshd

ログの詳細度を変えてみる

logwatch --print --detail 10 --service http

メールに出力

logwatch --mailto user@hoge.com

ファイルに出力

logwatch --save /path/to/logwatch.txt

関連サイト

文字列を一括置換するSQL文 – 文字列関数 REPLACE()

SQL で文字列を置換するには、文字列関数 REPLACE() を使います。置換対象にマッチした文字列を置換後の文字に置き換えます。

SELECT REPLACE(カラム名,'置換対象','置換後の文字') FROM テーブル名;

置換対象は、大文字小文字を区別します。マルチバイトも可能。

以下の UPDATE 文で指定したカラム名の文字列を対象に一括置換ができます。

UPDATE テーブル名 SET カラム名=REPLACE(カラム名,"置換対象","置換後の文字");

最近の投稿

カテゴリー

アーカイブ