*講義内容

サーバ導入に関しての考察とレンタルサーバホスティングとの比較

サーバの選定と回線・ISP選択とドメインの準備

OSのインストール
(RedHat Linux8.0)

How to PC-Unix(Linux)
超簡素UNIX入門講座

基本システム構築編

第一教程
ネットワークの設定

第二教程
DNSサーバの設定

第三教程
メールサーバの設定

第四教程
Webサーバの設定

第五教程
FTPサーバの設定

第六教程
時刻の同期(NTPD)設定

各種用途に答える
システム拡張編

第七教程
DHCPとIPマスカレード設定

第八教程
プロキシサーバ設定

第九教程
バーチャルホスティング
・IPベースとネームベース
・サブドメイン


第十教程
ハードディスクの割当容量を制限する


基本運用管理編

第一教程
ユーザとグループの管理
(登録と削除)


第二教程
システムのアップデート


第三教程
管理コマンドとログ解析


以後順次公開予定

で構築する

サーバ管理の為の基本コマンドと各種ログ その1

《教程の目的と作業のポイント》
サーバも順調に立ち上がり、ユーザーの登録も完了、いよいよ本格的な稼動状態に入り、ここからが管理者としての平凡?な日々の始まりです。

ここでは、管理の基本コマンドと時々刻々と集められる各種ログの内で特に重要なものに関し、その見方と注意点を説明しますので日々の管理の参考にしてください。

また、WEBアクセスログをグラフィカルに表示してくれるAWSTAS(日本語版)をインストールし、バーチャルホストのログも独自に解析できるよう設定します。ここではtarコマンドなどのこれから以降の教程で必要な基本的コマンドも学びます。


ユーザーやグループを登録するコマンドも管理用のコマンドですが、ここではサーバの状態(サーバステータス)を監視するコマンドやネットワークの状態(ネットワークステータス)を監視するコマンドに付いて説明します。説明中にプロセスなどの用語が出てまいりますので、先にサーバ起動に伴うプログラムの起動とそれらに関係する事柄を簡単に説明致します。

サーバの電源を入れますと、ハードディスク(HDD)からLinuxOSであるカーネルが読み込まれメモリー上に展開します。真っ黒画面に白文字でなにやらアルファベットの文字がズラズラと流れていくあの時にカーネルを読み込み初期化もしていたのです。続けてカーネルはシステム内からinitプログラムを呼び出し起動させ、今までこの講座で設定してきた様様なサーバプログラム群をメモリー上に展開させます。
initの設定ファイルは/etc/inittabです。サーバの起動形式(ランレベル)などもこの設定ファイルに従います、ワークステーション用のXウインドウから立ち上がるランレベル5やサーバ用のテキスト表示のランレベル3などもこの/etc/inittabを編集します。)


named・・・・・・・・・・・・・・・・[ OK ]
sendmail・・・・・・・・・・・・・・[ 
OK ]
httpd・・・・・・・・・・・・・・・・・[ 
OK ]

OK・・OK・・・OKと(緑色の文字)それぞれのサーバプログラムがHDDから呼び出されて一斉にメモリー上に展開して戦闘配置につきます。 このサーバプログラムのことをデーモンと呼んでいます(○=Daemon[守護神]、×=Demon[悪魔])。

そしてこのデーモンやサーバで一番最初に起動するinitプログラムなどをプロセスと呼んでいます。さて、このデーモンはそれぞれ決められたポートと呼ばれる扉を見張っています。誰かがこの扉をノックすると、 いそいで目を覚ましサービスを開始します。例えば、WEBサーバアパッチのhttpdはポートの80番、名前解決のBINDサーバのnamedなら53番、 電子メールのsendmailなら25番とあらかじめポート番号が決められています。(因みに名前の最後にdの付くものが多いのですが、 dデーモンのことを指します。)さて、決められたポートを常に監視し「叩けよ、さらば開かれん!」となりますが、デーモンは扉監視の親プロセスとなり実際のサービス提供は子プロセスを必要な数だけ生みだし(起動させて)応対するのです。ちょうど孫悟空の分身の術みたいですね!

デーモンはサーバ起動時に
initにより呼び出されメモリ上に常駐展開すると説明しましたが、 多くのデーモンをメモリー上に常に展開しておくのは資源(リソースと言います)の無駄使いです。 そこで、ユーザーからの呼び出し頻度の少ないものは、呼び出されてから起動させるようにしてサーバ資源を節約しようと考えたのです。 ナイスアイデアですね!しかし、デーモンプロセスは常に決められたポートを監視し、そのポートにアクセスがあると直ちに決められた手順でサービスを提供しだす事になっています。そこで問題のポートの監視役を誰か代表者の一人に任せて、後はその代表監視者からの呼び出しがあるまでHDDで待機する事にしたのです。その代表監視者がxinetedだったのです。サーバプログラムの親玉ですのでスーパーサーバなどと呼ばれます。このxinetedがFTPサーバのvs-ftpd(21番ポート)や電子メールのPOPサーバipop3d(110番ポート)などの代わりにそれぞれのポートを見張っていて、誰かがそのポートにアクセスするとそのプロセスを起動させていたのです。FTPやPOPサーバの設定内容を反映させる為に、xinetedを再起動させていたのは、この為だったのです。

(ユーザーの手によりシェルから起動されたプロセスも沢山あります。これらのシェルから起動されたプロセスのことをジョブと言います。皆さんがシェルプロンプトから打ち込んでいたコマンドなどがジョブの典型です。ジョブは一つのプロセスを起動するばかりでなく、幾つものプロセスを起動させる場合もあります。)

《補足 ランレベルの変更》
インストール時にうっかりランレベルをワークステーション用のXウインドウ起動に設定したままの人は、
/etc/inittabを編集して下さい。Xウインドウから立ち上がる人は下記赤線部分になっているので例のようにに変更して下さい、再起動後はランレベル3のテキストモードになります。

プロセスなどの簡単な説明が終わったところで、早速起動中プロセスなどが解るコマンドから説明致します。

topコマンド 
さまざまなシステム状況(CPU使用率、メモリー使用率、プロセスなど)をリアルタイム表示し、システム上でもっともリソースを消費しているプロセス順に表示します(5秒ごとに自動的に更新されます)。
*コマンドの終了:[ q ]キーを押すと終了します。

#top

【システム情報】
@は、現在時刻、稼働時間、ログインユーザー数、ロードアベレージ。
ロードアベレージは、左から順に1分、5分、15分前のシステムのロードアベレージ=実行順番待ちジョブの平均数で、CPUの個数(1CPUの場合はこの数字が1)以上の数字になると処理が重くなります。高負荷状態にある訳です。常にこの数字がCPU数を上回るようですと、何らかの改善策が必要ですね。
この@部分は、#uptimeコマンドと同じものです。
#uptime

A各プロセス合計、待機中プロセス、稼動中プロセス、ゾンビプロセス、停止プロセスの数。
(ゾンビプロセス=親プロセスから生まれた子プロセスが終了したにも関わらず親プロセスがまだその終了確認をできない場合、子プロセス終了以前に親プロセスを終了させてしまったなどの場合に発生する恐ろしい怪物のこと)

B左からユーザー、システム、nice、アイドルに費やされたCPUの時間を%表示。
(niceとは、各プロセスの実行優先度のことで、ここではユーザー・システムの両方が合算されます)

C左から全メモリ容量、使用中メモリ容量、空きメモリ容量、共有メモリ容量、バッファメモリ容量、キャッシュメモリ容量(←下に表示)。
(バッファはデータの相互取次所でキャッシュはデータの一時預かり所のことです。

D左から設定されている全スワップ領域の容量、使用中、空きの順で表示。
*メモリーを消費し尽くして、スワップを常時使用するような状況では、早急にメモリの増設を図らねばなりません。

C+Dは#freeコマンドと同じです。
#free -m (−mオプションは表示を解りやすいMB単位にします)

【プロセス情報】注以下緑枠部分の説明
PID プロセス識別(ID)番号
USER プロセスの実行権限者
PRI 現在のプロセスの優先度。(処理の優先順位)
NI 他のプロセスに対する相対的優先度を指すnice値のこと。ここの値が大きい(プラス)ものほど、処理優先度は低くなり(後回しにされる)、−20〜19の間の値が入ります。−20が最高優先処理順位で19が最低優先処理順位。
SIZE プロセスの容量(KB単位)
RSS プロセスが使用している実メモリ容量(KB)
SHARE プロセスが使用している共有メモリ容量(KB)
STAT 現在のプロセスの状態を表示
S=スリープ状態
D=割込み不可スリープ状態
R=実行中
Z=ゾンビ状態(終了しきれずにいる状態)
T=停止中
N=NIがプラスの値状態を表示
<=NIがマイナスの値状態を表示
W=スワップアウトされた状態
%CPU 現在のCPU使用率(%)。この値の大きい順に各プロセスが並び替えられて表示されます。
%MEM 実メモリの占有使用率(%)を表示
TIME プロセスの実行時間(秒)
COMMAND プロセスが今現在実行中のコマンド名。スワップアウト中のプロセスのコマンド名は()で表示されます。
プロセスに関しては専用の#psコマンドがあります。
#
ps aux
(オプションのaは制御端末のあるプロセスを表示、uはユーザ名と開始時刻表示xは制御端末の無いプロセス(=カーネルなど)も表示)
topコマンドにない部分を補足(重複するのもは上記の表参照)
TTY 制御端末名
START プロセスの開始時刻(日時)
TIME プロセスの実行時間
COMMAND 実行コマンド名とパス(シェル表記の場合もあり)

上記以外に、プロセス、メモリ、スワップ、入出力、システム、CPUの各情報の統計を表示する#vmstatコマンドもあります。システム起動時からコマンド実行時までの平均値を表示しますので、TOPコマンドの現在値表示とは反対にサーバの平均的な状態を観察するのに便利なコマンドです。

#vmstat
ここのswap項目のsi(スワップIN)=HDDからスワップしたメモリー量(KB/秒)、so=HDDへスワップアウトしたメモリ量ですので、このSOが常に1以上であれば大抵の場合は慢性的メモリ不足が疑われます。

df (=disk free)
HDD上の各パーティーション情報を表示します。
#
df -m (-mオプションはメガバイト単位で表示します)
/varは各種ログの肥大化、/homeはユーザー増加でディレクトリが、その割当て領域の限界に近づいてきた場合など、HDDの増設などを考える必要があります。また、ディスククオータでユーザーディレクトリの使用制限を加えていない場合は、ユーザーによって/homeディレクトリを使いきってしまう恐れもありますので、以下のコマンドと合わせて常時監視する必要があります。学校などの教育機関では、サーバの本格運用前にディスククオータで各ディレクトリにディスク利用制限を加えておくべきです。

du (=disk use)
ファイルシステム上の各ディレクトリごとの使用量情報を表示します。
#
du -sm /home/admin(-smオプションはsが総合計、mはMB=メガバイトのこと)
#du -a /home/admin(-aオプションは各ファイルの容量も表示します)


ネットワークの状態を監視するコマンドと各種ログの説明に続く・・・・・・・


「UNIX」はX/Open Co.,Ltd.社の独占ライセンスで米国及びその他の国での登録商標です。
「Linux」は、Linus Torvalds 氏の米国及びその他の国における登録商標です。
「Red Hat」、Red Hat「Shadow Man」ロゴおよび Red Hat をベースとしたすべての商標とロゴは、米国およびその他の国における Red Hat, Inc. 社の商標または登録商標です。

その他のプログラム名、システム名、CPU名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。

ここで提供する情報に関して、閲覧者の環境で同様の結果が得られることを保証するものではありません。
また掲載している内容については、豪Corporationが一切保証するものではありません。

Copyright (C) Go Corporation. All Rights Reserved.
ご意見・ご感想・お問合せ