カテゴリー: Linux

サーバ調査コマンドメモ

ただのメモです。web+db press vol.65より

uptime ロードアベレージの確認

http://cmd.misty.ne.jp/refference/uptime.html

sar CPU使用率、I/O待ち状態の確認

http://www.syboos.jp/linux/doc/sar-command.html

pidstat プロセス単位で統計情報を参照できる

http://blog.withsin.net/2011/08/17/pidstat/

dstat 超多機能ツールらしい

dstat が便利

tcpdump パケットの中身を覗く

http://itpro.nikkeibp.co.jp/article/COLUMN/20070403/267311/

netstat TCPコネクションの状態を覗く

http://www.atmarkit.co.jp/fnetwork/netcom/netstat/netstat.html

サーバが重いときの調査手順
サーバ負荷対応手順

lftpできない時の対応

lftpで同期が出来ないサーバがあったので調査の方法と一応の対策

debugモードにしてつないでコマンドを打ってみる

$ lftp
lftp :~> debug 5
lftp :~> open -p 21 -u user,passwd XX.XX.XX.XX
lftp user@XX.XX.XX.XX:~> ls
...
ここにデバッグ情報がいろいろ出る
...

実際に今回出ていたエラーはこちら
WARNING: Certificate verification: The certificate’s owner does not match hostname ‘XX.XX.XX.XX’

SSL証明書のオーナーとホスト名が合わないってことみたい。
とりあえずSSLをオフにしてみる↓

set ftp:ssl-allow off

一応解決したけれど、「XX.XX.XX.XX」をドメイン名にしたら直るかも。。。
DNS切り替え前だからIPでのアクセスなんだけど。。

ftp:ssl-allow (boolean)
if true, try to negotiate SSL connection with ftp server for
non-anonymous access. Default is true. This and other ssl set‐
tings are only available if lftp was compiled with an ssl/tls
library.

今回の参考
lftpで接続できない時の対処法・・・

A basic walkthrough to using lftp

lftp(1)

今回の参考じゃないけど為になったところ
lftpのmirrorが時々うまく機能しない罠

VMware にCentOS5.6を入れようとして困った

VMware Player 3.1.4でCentOS5.6をインストールしようと
したら、インストール後の再起動の途中で止まってしまった。

ググってみると同様なtweetを発見。

@donz80
VMware続報。ネットワークの初期化じゃなくて”Simple Boot Flag at 0x36 set to 0x80″の直後だった。
で、全く同じ現象が報告されてるのを発見。まだ中身は読んでないけど記録しとく。http://bit.ly/g58blt

自分も
「Simple Boot Flag at 0x36 set to 0x80」
が表示された直後にハングアップしてしまった。

とにかくリンク先を参照。

ESX 3.5 and Red Hat EL 5.6 VM Hang on Boot

回答にあるように「.vmx」ファイルの最後に

clocksource=acpi_pm

この一行を追加したら無事起動した。

携帯電話向けWebサイトに対する・・・

これから携帯がらみのシステムをやりそうなので徳丸 浩さんの

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

をちょっと読んだ。

以下すっごい簡単なメモ

携帯電話向けWebサイトに対する脅威と対策のまとめ

○簡単ログインに対する不正アクセス

携帯IDによる認証をやめ、IDとパスワードによる認証にする。オプションでクッキーによる自動ログインを実装する

○RefererによるセッションID漏洩

以下のいずれかを実施する
・クッキーによるセッション管理に移行する
・外部サイトにリンクしない
・外部サイトにリンクする際にはクッションページをはさむ

○その他セッションID漏洩

利用者がメールでURLを教えることには根本的な対策はない

○ログイン前のセッションIDの固定化

ログイン前にはセッションを有効化しない

○ログイン後のセッションIDの固定化

ログイン直後にセッションIDを変更する

今のところ完璧な対策は無さそうだけどできる限りの対策はしようと言う事で。

詳細は本で・・・。すごくよくまとまっていて分かりやすいので全部読むぞ!

 

体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
徳丸 浩
ソフトバンククリエイティブ
売り上げランキング: 1746

Linux logrotateのタイミングでapacheが落ちる

どうも/etc/cron.daily時にapacheが落ちていて毎日monitがapacheを
叩き起している風だったので原因を調べた。

httpdのエラーログ

# less /var/log/httpd/error_log.1
[Tue Jul 12 03:16:04 2011] [notice] SIGHUP received.  Attempting to restart

上記のメッセージでググると以下のサイトを発見。

httpdのlogrotateのタイミングでhttpdが落ちてしまう時の対処法

どうもlogroteteが悪いらしい。自分の設定ですが。。

logrotateしたときにapacheの再起動がかかるが、そのときに正常に再起動しない
ことによってweb表示がされないとかなんとか。

上記サイトにのっとって設定を変更。
もともとreloadだったのをrestartにしておいた。
この問題って結構メジャーなんすね。。ググると沢山でる。

その他参考サイト
logrotateしたときにapacheが落ちるエラーについて

第3回 エラーログで障害原因を突き止めろ!

logrotateでログ・ローテーション

※2011/07/13 追記
意図した通りに動きました!

Linux loadaverageをとりあえず記録する。

夜中とかのload averageが見たいと思ったのでちょこっと。

at+linkの専用サーバに仕掛けてあったスクリプトをマネする。

#!/usr/bin/perl
use strict;
use warnings;
system("uptime >> /root/monitoring/uptime.dat");
1;
*/5 * * * * perl /root/monitoring/uptime.pl

とりあえずuptimeコマンドを5分起きに叩いておけば
過去の状況がわかるということらしい。
マネした元は1分毎に実行してたけどいまのところそこまでの
情報が欲しいわけではないのでこんなところで。

uptime.datの出力例

 16:20:01 up 19 days, 17:47,  1 user,  load average: 0.03, 0.01, 0.00
 16:25:02 up 19 days, 17:52,  1 user,  load average: 0.00, 0.00, 0.00
 16:30:01 up 19 days, 17:57,  1 user,  load average: 0.00, 0.00, 0.00
 16:35:01 up 19 days, 18:02,  1 user,  load average: 0.00, 0.00, 0.00
 16:40:01 up 19 days, 18:07,  1 user,  load average: 0.00, 0.00, 0.00
 16:45:01 up 19 days, 18:12,  1 user,  load average: 0.08, 0.03, 0.01
 16:50:01 up 19 days, 18:17,  1 user,  load average: 0.06, 0.02, 0.00
 16:55:01 up 19 days, 18:22,  1 user,  load average: 0.00, 0.00, 0.00
 17:00:01 up 19 days, 18:27,  1 user,  load average: 0.00, 0.00, 0.00
 17:05:01 up 19 days, 18:32,  1 user,  load average: 0.00, 0.00, 0.00
 17:10:01 up 19 days, 18:37,  1 user,  load average: 0.00, 0.00, 0.00
 17:15:01 up 19 days, 18:42,  1 user,  load average: 0.00, 0.00, 0.00
 17:20:01 up 19 days, 18:47,  1 user,  load average: 0.00, 0.00, 0.00
 17:25:01 up 19 days, 18:52,  1 user,  load average: 0.00, 0.00, 0.00

この時間平和すぎる。。

さぁ明日確認しますかね。。
logwatchの出力内容の変更も楽しみ。

エセサーバ管理者なんでもっと専用サーバ中のスクリプト見て真似してみなければ。

Linux ddコマンドとisoファイルの圧縮

ちょっとddコマンドが気になったのでメモ。

dd(wikipedia)

ddはUNIXやLinuxなどのOS上でファイルシステム等のデータに直接アクセスを行い、コピーや変換を行うプログラムである。IBM社のJCL上に実装されていたプログラムのインターフェースを模倣しており、呼称はデータ定義(dataset definition)の短縮形である。

ddの主な機能は指定されたバイト数もしくはブロック数のデータのコピーであり、この機能は、ハードディスク(全体もしくはパーティション単位、またはブートセクター等)のバックアップや、/dev/zeroや/dev/randomを用いて指定された領域を完全消去するために利用される。

ファイルの変換・コピー
ファイルのコピー・ディスクダンプ・バックアップ・リストア・ファイル作成

実際に使ったコマンド

# dd if=/dev/cdrom of=./temp.iso

進捗がわからなくていつ終わるんだろうかと。。

これがよさそう。
LinuxのDDコマンドで進捗状況をリアルタイムで確認する方法

で、isoは作ったけど焼こうと思ったら容量がでかくて困ったのでDVD Shrinkを使ってみる。

4.7GBを超えたISOファイルはDVDShrinkで圧縮

 

Linux logwatchのインストールと設定

logwatchのインストールと設定。
※やり方はいろんなサイトに書いてあるけれど自分が設定したことを忘れない用にメモ。

yumで探す

# yum search logwatch
・・・
===================================================================== Matched: logwatch =====================================================================
dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reporting
logwatch.noarch : A log file analysis program

見つかったのでインストール

# yum install logwatch

インストールが終わったらとりあえずログを表示してみる

# logwatch --print

設定ファイルの場所を確認
以下のファイルを見ると設定ファイルのパスが書いてある

# less /etc/logwatch/conf/logwatch.conf

以下のファイルを適宜変更。

# vim /usr/share/logwatch/default.conf/logwatch.conf

DetailをHighにしてMailToを設定した。

詳細に表示されるようになったか確認

# logwatch --print

メールで飛ぶか確認

# logwatch --mailto self@example.co.jp

logwatchの参考URL
VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定

LANDISK HACKING DIARY

Logwatchによるログの定期チェック

上記とは別件で見たサイト

Linuxサーバ運用マニュアル

lame server resolving をログから消すには

設定したことを忘れないように。。

lftp ミラーリング用のスクリプト

今日は体調が悪いので参考にしたサイトをとりあえず貼って済ませる。。

lftpミラーリングスクリプト

この辺を参考に。。

lftp <<-  END
open -u $USERID,$PASSWAD $FTPSITE
set ftp:list-options -a
lcd ~/public_html/$DIRNAME
cd /$DIRNAME
mirror -Rev
END

lftpは前回と内容が同じでもディレクトリごとにチェックに行くのでディレクトリ
の数が多いとそれなりに時間がかかるのでできるだけピンポイントにミラーする
ように修正を行う必要があったので・・・。

他にはこの辺も参考にした。
http://qz.tsugumi.org/man_lftp.html

blog.paz-para.com

rsync使いたい。。

Linux: Monit導入

Monitとは?

Monit とは、プロセスを監視して、 なにか問題があったときに再起動などを行ってくれる、便利なユーティリティです。

 

便利そうなのでいれてみる。

CentOS5.3はrpmforgeを見ないとmonitが無いようなので一度確認する。

# yum search --enablerepo=rpmforge monit
・・・
monit.x86_64 : Process monitor and restart utility
・・・

もっと読む Linux: Monit導入