2015年1月30日金曜日

Linuxサーバを作る ③

OS初期設定

ランレベルの設定

サーバ目的なのでデフォルトランレベルは3にしておきましょう。
Redhat ランレベルとは
ランレベルにより起動・利用されるサービスが違うため、余計なリソースを使わないようにするためです。
 # vim /etc/inittab
id:3:initdefault:
反映させるときは再起動が必要ですが、少し後回し。

インストールOS言語

インストール時に言語設定があったと思いますが実際の設定は下記ファイルとlocaleコマンドで確認できます。
 # cat /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
# locale
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
最近だとクラウド側が準備しているテンプレートやコンテナを利用するケースが多いですが、その場合localeがENとかになっているケースが多いと思います。
きちんと利用環境、利用サービスに合わせておきましょう。

ロケールの日本語化

日本語パッケージが無ければインストールしておきます
 # yum groupinstall "Japanese Support"
日本語ロケールを追加し
 # localedef -f UTF-8 -i ja_JP ja_JP.utf8
定義ファイルを変更し
 # vim /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
再起動して反映させます
 # reboot

システム時刻の設定

こちらも利用環境に即しているか確認して設定します。
タイムゾーンの確認
 # cat /etc/localtime
~省略
JST-9
タイムゾーンを日本時間に修正する場合
 # cp -p /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
こちらも一応日本時間に
 # cat /etc/sysconfig/clock
ZONE="Asia/Tokyo"
時刻はUTCを利用しているか
 # cat /etc/adjtime
0.000000 1410678273 0.000000
1410678273
UTC
時計のUTC?GMT?local?ってひとは下記サイトを読むと参考になるかも
Linuxはどのように時間を計っているか
これらの設定を変更した場合、反映させるためには再起動させましょう。

Cron設定

linux標準のジョブ管理ツールです。
6系からクラウド利用を考慮され今までと少し基本設定が変わっています。
日次、週次、月次の処理をanacronが、その他のジョブをcronineがという風になっています。
今まで通り任意のジョブ等はcronファイルに記述すれば今まで通り動くので問題ないので特に変更は不要ですが、
問題はanacronで実行されるジョブは指定日に指定の時間内でランダムに実行される点です。
デフォルトの日次ジョブにシステム関連ログのローテートジョブがありますが、
複数サーバを管理する場合サーバごとにローテート時刻がずれるといったログ管理上あまりよくない事態が発生してしまいます。
今まで通り指定日時に実行してほしい!という方はanacron、cron設定を変更します。
下記手順はanacronを無効化するものではなく、あくまで以前のようにanacronをジョブの再実行用に利用し、cron主体で動くようにする設定です。

定期実行ジョブをcronで管理

anacronで実行されている日次、週次、月次の処理を今まで通りcron実行にします。
各ディレクトリ配下のジョブを実行するよう追記。
 # vim /etc/crontab
05 0 * * * root run-parts /etc/cron.daily
25 0 * * 0 root run-parts /etc/cron.weekly
45 0 1 * * root run-parts /etc/cron.monthly
anacronで不実行ジョブが再実行されるタイミングを指定。
 # vim /etc/anacrontab
#START_HOURS_RANGE=3-22
START_HOURS_RANGE=5-6
日次、週次、月次の処理がcronで実行され、再実行不要であることをanacronに伝えるジョブを各ディレクトリに配置していきます。
 # /etc/cron.daily/0anacron
#!/bin/bash
if [ ! -e /var/run/anacron.pid ]; then
anacron -u cron.daily
fi
 # /etc/cron.weekly/0anacron
#!/bin/bash
if [ ! -e /var/run/anacron.pid ]; then
anacron -u cron.weekly
fi
 # /etc/cron.monthly/0anacron
#!/bin/bash
if [ ! -e /var/run/anacron.pid ]; then
anacron -u cron.monthly
fi
配置したジョブにはそれぞれ実行権限を与えておきます。

ログローテート設定

ここは利用する環境・要件に合わせて変更しましょう。
デフォルトだと4週間分logrotateで管理するログを保持します。
 # vim /etc/logrotate.conf
# 週単位でログをローテート
weekly

# ローテートしたログを4世代分保持
rotate 4

# ローテート後新しいログファイルを自動で作成
create

# ローテート後ファイルのフォーマットを"ファイル名-yyyymmdd"へ
dateext

# ローテートしたログは圧縮しない(コメントアウト)
#compress
次に続く


Linuxシステム[実践]入門 Software Design plus
技術評論社 (2013-08-20)
売り上げランキング: 4,627

0 コメント:

コメントを投稿