Memo

メモ > サーバ > 各論: コマンド > ログを確認

■ログを確認
KEIROMICHI | IPアドレスから住所検索 http://keiromichi.com/ IPひろば http://www.iphiroba.jp/ ANSI Whois Gateway http://whois.ansi.co.jp/ 使用中のIPアドレス確認 https://www.cman.jp/network/support/go_access.cgi ■Linux OSが起動した直後からsyslogが起動するまでのログ(dmesgコマンドでも確認できる / 起動してからは /var/log/messages に記録される)
# cat /var/log/dmesg
システム全般に関するログ。ファイヤーウォールのログなども記録される
# cat /var/log/messages
認証に関するログ(suやsudoの実行履歴など。rootの操作内容が残るわけではないので、root権限が必要な処理はsudo経由で実行させることが好ましい)
# cat /var/log/secure
監査に関するログ(セキュリティに関するイベントが記録される)
# cat /var/log/audit/audit.log
cronに関するログ
# cat /var/log/cron
メールに関するログ
# cat /var/log/maillog
yumによるパッケージ情報操作に関するログ
# cat /var/log/yum.log
システム起動時に画面に表示されていた内容
# cat /var/log/boot.log
sudoポリス「誰だ! 本番環境でsudo suしてるのは!」 - Qiita https://qiita.com/keys/items/ba03b71fd34ebbff4c6e ログインに成功したログ(バイナリファイル。内容はlastコマンドで確認する)
# /var/log/wtmp
ログインに失敗したログ(バイナリファイル。内容はlastbコマンドで確認する)
# /var/log/btmp
各ユーザーの最後にログインした日時のログ(バイナリファイル。内容はlastlogコマンドで確認する)
# /var/log/lastlog
ログインに成功したログを整形して表示
# last -n 10 refirio
ログインに成功したログを整形して表示(ホストを省略せずに最後に表示)
# last -n 100 refirio -a
ログインに失敗したログを整形して表示
# last -n 10 refirio
各ユーザーの最後にログインした日時のログを整形して表示
# lastlog
【last, lastlog】Linuxでログイン履歴を確認するコマンド | UX MILK https://uxmilk.jp/26163 last、lastb、lastlogの結果にIPアドレスは含まれていないが、 /var/log/messages を見ればログインしたときのIPアドレスは判る コマンド一つ一つの実行者のIPアドレスまでは記録されないようだが、実行中に限れば以下の方法で調べることはできる SSHで接続して処理を実行中のユーザーの接続元IPを確認する方法 http://www.lesstep.jp/wiki/index.php?SSH%E3%81%A7%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6%E5%87%A6%E7%90... ■Apache アクセスログ
# cat /var/log/httpd/access_log
アクセスログ(SSLの場合)
# cat /var/log/httpd/ssl_access_log
エラーログ
# cat /var/log/httpd/error_log
エラーログ(SSLの場合)
# cat /var/log/httpd/ssl_error_log
ログの解析については、後述の 「Apacheのログをコマンドで解析」 も参照 ■nginx アクセスログ
# cat /var/log/nginx/access.log
エラーログ
# cat /var/log/nginx/error.log
■Vsftpd アクセスログ(ファイルのアップロード、ダウンロード、削除などが記録される)
# cat /var/log/xferlog
環境によっては /var/log/xferlog/vsftpd.log などの名前に変更されているかもしれない ログの解析については、後述の 「FTPのログを解析」 も参照 ■Postfix メールに関するログ
# cat /var/log/maillog
ログの解析については、後述の 「メールのログを解析」 「メールのログをコマンドで解析」 「メールのログをmaillogconvert.plで変換してコマンドで解析」 も参照 ■PHP アクセスログ なし(Apacheに依存) エラーログ なし(Apacheに依存) ■MySQL アクセスログ なし(記録していない) エラーログ・アプリケーションログ
# cat /var/log/mysqld.log
専用ログ スロークエリログファイル(slow_query_log_file で設定)
# cat /var/run/mysqld/mysqld-slow.log mysql> SELECT * FROM mysql.slow_log;
■Zabbix Zabbixサーバのログ
# cat /var/log/zabbix/zabbix_server.log
Zabbixエージェントのログ
# cat /var/log/zabbix/zabbix_agentd.log
Zabbixプロキシサーバのログ
# cat /var/log/zabbix/zabbix/_proxy.log
■SFTP デフォルト設定ではSFTPの操作はログに記録されないが、設定を変更することで記録できる 主に以下のページを参考に設定 SFTPの操作をログに残すための設定 #Linux - Qiita https://qiita.com/Sophick12224/items/b62e5f1af335a29217e0 SFTPサーバーのログ取得設定 - インフォサーカス・インコーポレイテッド - Info Circus, Inc. https://www.infocircus.jp/2020/08/06/sftp-server-logging-config/ sshd_config内にある設定で「-l INFO」を付与する
# vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server ↓ Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO
# systemctl restart sshd
「INFO」は、ファイルの転送・許可の変更などに関する情報を記録する ログは /var/log/messages に記録される 一例だが以下の操作を行ったとき、 1. SFTPで /home/ec2-user にアクセス 2. ディレクトリ test を作成 3. ファイル test/test.txt を作成 4. ファイル test/test.txt を test/test1.txt に名前変更 5. ディレクトリ test を test1 に名前変更 6. ファイル test1/test1.txt を削除 7. ディレクトリ test1 を削除 8. 接続を終了 /var/log/messages には以下の内容が記録されていた(実際は空行なし) SSH接続の際はIPアドレスは記録されないようだが、SFTP接続の際は記録されている
Dec 5 05:04:51 ip-10-1-0-246 systemd: Started Session 15 of user ec2-user. Dec 5 05:04:51 ip-10-1-0-246 systemd-logind: New session 15 of user ec2-user. Dec 5 05:04:51 ip-10-1-0-246 sftp-server[23652]: session opened for local user ec2-user from [203.0.113.1] Dec 5 05:04:51 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:04:51 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:05:00 ip-10-1-0-246 sftp-server[23652]: mkdir name "/home/ec2-user/test" mode 0777 Dec 5 05:05:02 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:05:02 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:05:04 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user/test" Dec 5 05:05:04 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user/test" Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: session opened for local user ec2-user from [203.0.113.1] Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: opendir "/home/ec2-user/test" Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: closedir "/home/ec2-user/test" Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: open "/home/ec2-user/test/test.txt" flags WRITE,CREATE,TRUNCATE mode 0666 Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: close "/home/ec2-user/test/test.txt" bytes read 0 written 6 Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: opendir "/home/ec2-user/test" Dec 5 05:05:07 ip-10-1-0-246 sftp-server[23696]: closedir "/home/ec2-user/test" Dec 5 05:05:39 ip-10-1-0-246 sftp-server[23652]: rename old "/home/ec2-user/test/test.txt" new "/home/ec2-user/test/test1.txt" Dec 5 05:05:40 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:05:40 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:05:59 ip-10-1-0-246 sftp-server[23652]: rename old "/home/ec2-user/test" new "/home/ec2-user/test1" Dec 5 05:06:07 ip-10-1-0-246 sftp-server[23696]: session closed for local user ec2-user from [203.0.113.1] Dec 5 05:06:11 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user/test1" Dec 5 05:06:11 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user/test1" Dec 5 05:06:14 ip-10-1-0-246 sftp-server[23652]: remove name "/home/ec2-user/test1/test1.txt" Dec 5 05:06:20 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:06:20 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:06:21 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:06:21 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:06:23 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user/test1" Dec 5 05:06:23 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user/test1" Dec 5 05:06:23 ip-10-1-0-246 sftp-server[23652]: rmdir name "/home/ec2-user/test1" Dec 5 05:06:23 ip-10-1-0-246 sftp-server[23652]: opendir "/home/ec2-user" Dec 5 05:06:23 ip-10-1-0-246 sftp-server[23652]: closedir "/home/ec2-user" Dec 5 05:06:35 ip-10-1-0-246 sftp-server[23652]: session closed for local user ec2-user from [203.0.113.1] Dec 5 05:06:35 ip-10-1-0-246 systemd-logind: Removed session 15.
■grepの使用例
# tail -n 100 /var/log/secure | grep warning # tail -n 100 /var/log/secure | grep refuse # tail -n 100 /var/log/secure | grep fail # tail -n 100 /var/log/secure | grep error # tail -n 100 /var/log/messages | grep invalid # tail -n 100 /var/log/messages | grep fail # tail -n 100 /var/log/messages | grep error
件数を取得
# grep ConnectException -c /var/log/httpd/error_log
正規表現で検索
# cat error_log | grep digest # cat error_log | grep done ↓ # cat error_log | egrep '(digest|done)'
圧縮されたログを表示
# zcat /var/log/httpd/access_log
圧縮されたログを検索
# zgrep XXX /var/log/httpd/access_log
gzのファイルを展開せずにgrepする - Qiita https://qiita.com/aaaaAAAA1111/items/7b56b2f5c3073f8f6b19 ■ファイルの監視
# tail -f /var/log/httpd/access_log … 対象ファイルに変更があれば即座に反映(「Ctrl+c」で終了) # tail -n 5 -f /var/log/httpd/access_log … 対象ファイルに変更があれば即座に反映(デフォルトで5件まで表示) # tail -f /var/log/httpd/access_log | grep /test/ … 対象ファイルから「/test/」を検索。変更があれば即座に反映 # tail -n 5 -f /var/log/httpd/access_log /var/log/httpd/error_log … 複数ファイルを同時に監視(ただしmultitailを使う方が良さそう)
multitailで複数のログを同時に監視 https://rcmdnk.com/blog/2016/03/06/computer-linux-mac/ 複数ファイルを tail できる multitail が便利! http://loumo.jp/wp/archive/20130228202358/
# cd /var/log/httpd # multitail -f access_log -f error_log … 「-f」が「-F」でいいかは要動作確認
[Linux]「tail -f」での監視はもう古い!?超絶便利なlessコマンド http://qiita.com/shuntaro_tamura/items/faaebb3282c37a718b76 tail -fやtailfを使うのはやめてless +Fを使おう http://qiita.com/LOUIS_rui/items/8d935526571ccfe171ae エンジニアなら知っておきたい lessコマンドtips 11選 http://qiita.com/ine1127/items/64b5b6cf52471c3fe59c 「tail -f」を使うのは情弱、情強は「less +F」を使う http://www.softantenna.com/wp/unix/stop-using-tail-f/

Advertisement