Nginx、MySQL の log 周り設定メモ

カテゴリー: スニペット,

Nginx エラーログ

/etc/nginx/nginx.conf とかで調整。

Nginx ログ出力設定

server {
    access_log  /var/log/nginx/example.com-access_log  main;
    error_log  /var/log/nginx/example.com-error_log;
}

特定のディレクトリ下のエラーログを停止

location /wp/wp-content/uploads/ {
    error_log off;
}

404 not found のログを全て停止

location / {
    log_not_found off;
}

特定ファイルの 404 not found, access log を停止

    location =/favicon.ico { log_not_found off; access_log off; }
    location =/apple-touch-icon-120x120.png { log_not_found off; access_log off; }
    location =/apple-touch-icon-120x120-precomposed { log_not_found off; access_log off; }

反映 Nginx

# systemctl reload nginx

または

# systemctl restart nginx

MySQL エラーログ

/etc/my.cnf で調整。
調べるときはfind

# find / -name "*my.cnf"

複数ある場合の優先順位確認は

# mysql --help | grep my.cnf

SELinux が有効になっているかどうかの確認

# sestatus

MySQL ログ出力設定

※ 初期で「mysql」ディレクトリは存在していない
※ パーミッション700

[mysqld]
#  Error log
log_error="/var/log/mysql/mysqld.log"
log_warnings=1

#  Slow Query log
slow_query_log=1
slow_query_log_file="/var/log/mysql/slow.log"
log_queries_not_using_indexes
log_slow_admin_statements

ログのタイムスタンプは MySQL 5.7.2 からデフォルトUTCになったらしい。
システムの system_time_zone がJSTでもログ出力時間はUTC。これは困る。
[参考] MySQLのバージョンをあげたら、ログ出力される時間がおかしくなった - Qiita

MySQL(未検証)

[mysqld]
log_timestamps = SYSTEM

MariaDB

[mysqld]
loose-log_timestamps = SYSTEM

反映 mysqld

# systemctl restart mysqld

 


関連記事

関連記事はまだありません

スニペット」のBookmark
「スニペット」記事一覧