カテゴリー
Linux

【MySQL】全クエリをログ出力し、ログローテート設定を行う

環境

  • mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

設定を行うコマンド

  • /etc/my.cnf の [mysqld] に記述することで全クエリをログ出力する。
  • general_log でオンにし、general_log_file でログファイルパスを指定する。
  • ログローテートは、もともとある /etc/logrotate.d/mysqld をほぼそのまま使用した。
カテゴリー
コンピューター

yum インストールした nginx の logrotate 設定を読み解きます♪

nginx の logrotate 設定ファイル「/etc/logrotate.d/nginx 」

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

/etc/logrotate.d/nginx の各行の意味

  • /var/log/nginx/*.log {
    「/var/log/nginx/」ディレクトリの、ファイル名が「.log」で終わるファイルを対象とする
  • daily
    日ごとにログファイルを置き換える。
  • missingok
    ログファイルがなければエラーメッセージを出力しない
  • rotate 52
    ログを 52 世代分残す
  • compress
    ログを圧縮する。
  • delaycompress
    ローテートの 1 世代目は圧縮しない
  • notifempty
    元のログファイルが空なら、ローテーションしない
  • create 640 nginx adm
    ローテーション実行後、空の新規ログファイルを属性を指定(パーミッション 640 ユーザ nginx、グループ adm)して作成する。
  • sharedscripts
    複数指定したログファイルに対し、postrotate または prerotate で記述したコマンドを実行
  • postrotate 〜 endscript
    ローテーション終了後に postrotate から endscript までの処理を実行する。
  • [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    馴染みがなくてわからないが、おそらく nginx を再起動するような感じ?
カテゴリー
Linux

なんだか動きがおかしいですわ? → ntpd ログ出力&ローテートを設定メモ♪

ntp 設定ファイルを編集してログが出力されるようにします

編集するファイルはこれですわ。

vim /etc/ntp.conf

ファイル末尾に次を追加しますの。「logconfig」は、「=」の右側にスペースを入れないことがコツですわ。

logfile /var/log/ntpd.log
logconfig =all

再起動も忘れずに♪起動時のログもバッチリ、指定しました /var/log/ntpd.log に記録されます。

/etc/init.d/ntpd restart

ntp ログのローテート設定をします♪

ローテート用のファイル /etc/logrotate.d/ntpd を作成しますの。

vim /etc/logrotate.d/ntpd

1行目ではもちろん、設定ファイルに記述しましたログファイルを指定しまして、内容はシンプルに次のようにいたします。

/var/log/ntpd.log {
    missingok
    notifempty
    copytruncate
}

これで一安心ですわ。

カテゴリー
コンピューター

VirtualBox で LAMP + PostgreSQL + APC + XDebug + PHPUnit の開発環境構築手順♪

前提

  • CentOS 5.9 インストール済み
  • CUI で SSH 接続可能
  • CentOS に IP アドレス割り振り済み

つまり、VPS 契約した直後のような状態です。

インストールして最低限の設定をするパッケージ

  • Apache
  • PHP
    • APC
    • XDebug
    • PHPUnit
  • MySQL
  • PostgreSQL

LAMP + PostgreSQL → LAMPP!と思っていのですけれども、別の構成ですでにこのような名前がありました><。ぜんぶまとめて強引に略称にすれば、、、LAMPPPAX (らんぷぷぱっくす)でしょうか♪

それはともかく、開発環境ですので SQL サーバーとして MySQL に加え、PostgreSQL をインストールします。

はじめるまえに

わたくしは今回の手順を行う前に時刻同期やメモリ節約として次のことを行なっています。

それでは、はじめます。

1.Apache、MySQL、PHP、PostgreSQL、APC、XDebug、PHPUnit インストール

カテゴリー
Linux

【logrotate】PHP エラーログでローテーションを!【できました!】

ポイント

PHP エラーログファイルは、/var/log/php_errors.log とします。

  • ローテーションさせるための設定ファイルの作成をしますが、Apache の設定ファイルをコピーして、これをひな形とします(そのほうが楽です♪)。
    cp -ap /etc/logrotate.d/httpd /etc/logrotate.d/php
    vim /etc/logrotate.d/php
  • Apache と同じ条件でのローテーションで問題ありませんので、1行目の対象となるログファイルの設定のみ変更します。
    /var/log/php_errors.log {
        missingok
        notifempty
        sharedscripts
        postrotate
            /sbin/service httpd reload > /dev/null 2>/dev/null || true
        endscript
    }
  • ローテーション設定の確認です。
    # -d テストとして実行する。
    # -v 詳細な情報を表示する。
    logrotate -dv /etc/logrotate.d/php
  • 今すぐに実行したい場合は「-f」オプションで実行します。
    # -f 指定したローテーションを今すぐに実行します。
    logrotate -df /etc/logrotate.d/php

以下、実際にやってみました記録です。

カテゴリー
Linux

logrotate の設定をサンプルから勉強します♪【実践的】

logrotate の設定ポイント

※数値は具体例です。

  • 設定ファイルは /etc/logrotate.d/ に作成
  • 設定ファイル名は自由
  • #コメント行
  • 1行目にローテートを設定するログファイルをフルパスで記述
  • missingok ログファイルがなければエラーメッセージを出力しない
  • notifempty 元のログファイルが空なら、ローテーションしない
  • sharedscripts postrotate 〜 endscript 「〜」に記述された内容を実行する。
  • weekly 週ごとにログファイルを置き換える。
  • yearly 年ごとにログファイルを置き換える。
  • rotate 4 ログを 4 世代分残す。
  • size 30 k ログのサイズが 30 k バイトを超えていればローテーションを行う。
  • create 0600 root root ローテーション実行後、空の新規ログファイルを属性を指定(パーミッション 0600 ユーザ、グループ root)して作成する。

はじめに