Template CentOS6

Page content

いつぞや仮想化に力を入れていた時、数十の仮想マシンを構築する時がありました。テンプレート作っては直して、を何度か繰り返していたので、それで出来たテンプレートです。まあまあ使えるかと。

テンプレートについて

利用時の注意点

  • 次章のスペック等を参考に、細かな部分は変更しつつお使いください。

  • 変更で対応できる項目

    • memoryサイズ
    • サーバ内部の設定全般
    • ディスク容量: vCenter Converterを利用すれば変更可能です。
    • 各パーティションのサイズ: vCenter Converterで対応可能
  • 変更で対応できない項目

    • パーティションの追加・削除: vCenter Converterでも対応不可能です。(正確には、追加ディスクをアタッチすれば対応可能)
    • cpuコア数: テンプレート云々の前に、一般に仮想マシン作成後のcpu変更は推奨されていません。でもcentos6なら動くのは動きます。
  • 仮想マシンの生成方法: vSphere ClientでvCenterにアクセス > template-centos6-2を右クリック > このテンプレートから仮想マシンのデプロイ を実行

主要なスペック、設定

itemconfigurationremarks
OSCentOS-6.3 –> 6.4 (2013/05/11)
cpu1core
memory4GB
disk50GB, シンプロビジョニング
partition/boot 1G, / 5G, /var 20G, /usr 10G, /home 10G, swap 4Gext4形式
hostnameお好きにお好きに
domain
accountお好きに
IPお好きに
default GWお好きに
resolv.conf192.168.{11,101}.50 をサーバに指定basic{3,4}.bp.hoge.ad.jp
ntp.conf192.168.{11,101}.50 をサーバに指定basic{3,4}.bp.hoge.ad.jp
postfixsmtp.tokyo.hoge.co.jp をrelayhostに指定
munin-node192.168.{11,101}.49 をサーバに指定srv-perf{1,2}.bp.hoge.ad.jp
NRPE192.168.{11,101}.48 をサーバに指定srv-mon{1,2}.bp.hoge.ad.jp

主要な追加コンポーネント

項目備考(用途など)
vmware-tools
nrpe-2.13
nagios-plugins-1.4.16
munin-2.0.6munin-node
※導入理由:メモリのオーバーコミット時に競合を緩和できる、vSphere Clientから仮想マシンの正常シャットダウンが可能、&br;高性能ネットワークアダプタが利用可能、など

初期構築記録

OS

2013/01/29 centos6.3minimal インストール([[Renewal/Server/CentOS/CentOS6.0インストール手順]]参照)

直後の確認

  • ディスク: ぴったり50G
[root@template-centos6-2 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             5.0G  316M  4.4G   7% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/sda1            1008M   63M  894M   7% /boot
/dev/sda7             9.9G  151M  9.2G   2% /home
/dev/sda3             9.9G  658M  8.8G   7% /usr
/dev/sda2              20G  190M   19G   1% /var
[root@template-centos6-2 ~]# mount
/dev/sda5 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda7 on /home type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sda2 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
[root@template-centos6-2 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping        : 7
cpu MHz         : 2599.999
cache size      : 20480 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat xsaveopt pln pts dts
bogomips        : 5199.99
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:
# cat /proc/meminfo
MemTotal:        1922780 kB
MemFree:          218020 kB
Buffers:          108188 kB
Cached:          1340124 kB
SwapCached:            0 kB
Active:           677692 kB
Inactive:         797840 kB
Active(anon):      19744 kB
Inactive(anon):     7656 kB
Active(file):     657948 kB
Inactive(file):   790184 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194296 kB
SwapFree:        4194296 kB
...
$ chkconfig --list| grep 3:on
(インストール時)
[root@template-centos6-2 ~]# chkconfig --list| grep 3:on
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
fcoe            0:off   1:off   2:on    3:on    4:on    5:on    6:off
ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
iscsi           0:off   1:off   2:off   3:on    4:on    5:on    6:off
iscsid          0:off   1:off   2:off   3:on    4:on    5:on    6:off
lldpad          0:off   1:off   2:on    3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcidmapd       0:off   1:off   2:off   3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
(初期構築後)
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
munin-node      0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
nrpe            0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off

ネットワーク周り

  • /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=san-proxy1.mon.hoge.ad.jp
  • /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
#
IPADDR=172.16.176.55
NETMASK=255.255.255.0
  • /etc/sysconfig/network-scripts/route-eth0
10.1.0.0/16 via 172.16.176.1
とか
default via 172.31.255.1
  • IPv6無効化 : /etc/sysctl.conf末尾に以下を追加し、再起動
 ############### manually added ################
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1
 (以後、ssh経由でログイン)

DNS周り

  • /etc/resolv.conf
 search hoge.co.jp fuga.ne.jp
 nameserver 192.168.11.50
 nameserver 192.168.101.50
 options timeout:1 attempts:2 single-request-reopen

ethtool

  • cliで
 ethtool -K eth0 tx off rx off tso off gso off
  • /etc/rc.localにも
 #!/bin/sh
 #
 # This script will be executed *after* all the other init scripts.
 # You can put your own initialization stuff in here if you don't
 # want to do the full Sys V style init stuff.
 touch /var/lock/subsys/local
 ethtool -K eth0 tx off rx off tso off gso off

パッケージ一括ダウンロード(yum)

  • まずepel repositoryを追加
$ wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -ivh epel-release-6-8.noarch.rpm
  • 色々追加・初回のupdate
yum groupinstall -y "Base" "Legacy UNIX compatibility" "Development Tools"
yum install -y tree zsh wireshark ntp screen ruby nmap yum-utils postfix yum-priorities git nkf sudo dstat emas w3m \
  telnet perl-CPAN jwhois net-snmp-devel libaio net-snmp-utils net-snmp rrdtool yum-plugin-ps yum-utils glib2-devel \
  zlib-devel strace ltrace ruby-devel iotop aggregate aggregate-ios
yum update -y
  • kernelのupdateを除外する設定を追加
# vim /etc/yum.conf
  →以下を追加:
  # manually added
  exclude=kernel*

vmware-tools

インストール

  • vSpherer clientから仮想マシンを選び、「VMware Toolsのインストール」を選択。イメージがマウントされます。
  • あとは以下の通りコマンド処理
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
  mount: block device /dev/sr0 is write-protected, mounting read-only
#
# cd /usr/local/src
# ls
  前回のパッケージが入ったままであれば、削除しておきましょう。
# tar zxpf /mnt/cdrom/VMwareTools-8.6.0-446312.tar.gz
  /usr/local/src/vmware-tools-distrib/ が作成されます
#
# umount /dev/cdrom
  用済みなのでアンマウントしておく
# cd /usr/local/src/vmware-tools-distrib
# ./vmware-install.pl
以下、全て/usr/local/vmware-tools/配下にファイルが置かれるようにした。binary filesの指定以外は全てEnter入力だけですんだ
---------------------------------------------------------------------------
...
In which directory do you want to install the binary files?
[/usr/bin] /usr/local/vmware-tools/bin
...
Enjoy,
--the VMware team
---------------------------------------------------------------------------

以上!

なお、vmware-toolsはinitスクリプトでの起動ではなくUpstart形式になったため、/etc/init.d/vmware-toolsは存在しません。

  • 参考: http://communities.vmware.com/message/2039434
  • ps で確認すると、起動しているときは /usr/local/vmware-tools/sbin/vmtoolsd が動いている
  • 手動でstop,start等するときは、/etc/vmware-tools/services.sh を利用(initスクリプトのようなもの)
  • 起動に失敗するようだったら、インストールし直しましょう。(CDから展開したパッケージを利用し、上のプロセスを踏むだけ)
  • 仮想マシンのサマリで「実行(未インストール)」となっていたらreboot一度しましょう
  • 仮想マシンのサマリで「実行(現在)」となっていれば正常です

時刻同期の停止

  • ゲストで NTP を使用する場合は、VMware Tools の定期的な時刻同期を無効にしましょう。上記の標準的なインストール手順で初めから無効になってます

  • (参考)VMware Tools の定期的な時刻同期を無効にするには、次のいずれかのオプションを使用します。

    • 仮想マシンの構成ファイル (.vmx ファイル) で tools.syncTime = "False" に設定する。
    • ゲスト OS の VMware Tools ツールボックスの GUI にある [仮想マシンとホスト OS 間の時刻の同期を有効にする] を選択解除する。
    • linuxの場合 /usr/local/vmware-tools/bin/vmware-toolbox-cmd timesync status で状態確認 /usr/local/vmware-tools/bin/vmware-toolbox-cmd timesync disable で停止
  • 仮想マシン起動時の時刻参照先

    • どうもホストの方を参照している あるとき、仮想マシンを再起動した。muninが約9時間先の時点にプロットし始めた。ゲストの時刻が+9hされていた。esxiの時刻が誤って+9hされていた。 現在解明中 disabling time synchronization してもだめ

アカウント関連

  • グループ・ユーザ追加
# groupadd -g 999 serveradmin
# useradd -c "me" -d /home/george -m -g serveradmin -u 1194 -s /bin/zsh george
  • visudoで以下を追加
#Defaults    always_set_home
Defaults    !env_reset
#
Cmnd_Alias     SHUTDOWN = /sbin/shutdown,/usr/bin/reboot,/usr/bin/halt,/usr/bin/poweroff
%serveradmin    ALL=(ALL)    ALL,!SHUTDOWN

ユーザ環境 (任意)

俺は自分の dotfile を使うのだ。

$ git clone https://github.com/take4mats/dotfiles.git ~/

その他

  • Ctrl-Alt-Delによるshutdown/rebootの防止
    • 電源操作をボタン、shutdown/rebootコマンドのみに絞り、誤操作を防止
    • CentOS 6.0では場所が変わった。
 # vim /etc/init/control-alt-delete.conf
 (全てコメントアウト)
 # init q
  • ちなみにCentOS 5.xまでは /etc/inittab でした。

  • SELinuxの無効化

    • setenforce 0 を実行
    • /etc/sysconfig/selinux を編集し、 SELINUX=disabled に書き換え
  • 文字セットの確認 /etc/sysconfig/i18nenglish であること

  • bashのプロンプトの設定 $ vim /etc/profile –> 追加

 ### prompt ###
 export PS1="[\u@\H \w]\\$ "

起動するdaemonの整理(chkconfig –list)

  • 自分のサーバで共通的に不要と思われる物
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrt-oops       0:off   1:off   2:off   3:on    4:off   5:on    6:off
 #-> ホスト機の動作を監視し、スクリプトエラーなどをログファイルに記録するデーモン
 ABRTがアプリケーションのクラッシュを検出して,その情報をBugzillaに報告してくれるものです。
 開発者がバグの追跡し、情報を素早く集めることを容易にしてくれる非常に便利なツールです
 ただしcentos6.0などでこいつのせいでshutdown出来ないとかクラッシュするとかあったので、不要。
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
 #-> ホスト機の動作と電源を管理し、省電力のための休止状態をサポートするデーモンです。
 これはクライアント用途としての機能で、常時稼動が前提のサーバー用途では不要です。
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
 #-> 使用するホスト機の CPU が省電力機能(SpeedStep機能)に対応している場合に、動作負荷に応じて
 CPUの速度を変化させるデーモンです。これにより幾分の省電力効果が期待できます。サーバには不要
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
 #-> デスクトップ間アプリケーション通信のプロトコル D-BUS をサポート。デスクトップ画面を使わないので不要
messagebus      0:off   1:off   2:on    3:on    4:on    5:on    6:off
 #-> CentOSシステムのデスクトップ上で相互にメッセージを送るためのデーモンです。不要
  • 今回の用途では不要
 auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →カーネル の持つ監査システムの一部を補助し、適切なログデータを出力するためのデーモンです。
   /var/log/audit/audit.logにわけわからんログがいっぱい出力され、aureportでサマリを見れる。
   が、現在の運用状況から必要性はないとして停止。
 blk-availability
   →lvm2周りのプロセスがRHEL6.4から分離された。lvm2共々使わないので停止
 fcoe            0:off   1:off   2:on    3:on    4:on    5:on    6:off
 iscsi           0:off   1:off   2:off   3:on    4:on    5:on    6:off
 iscsid          0:off   1:off   2:off   3:on    4:on    5:on    6:off
 netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
 nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
   →仮想マシン自体がiscsiやnfs, fcoeを喋る必要はないため不要
 rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
 rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
 rpcidmapd       0:off   1:off   2:off   3:on    4:on    5:on    6:off
   →RPC(Remote Procedure Call)系のサーバ・クライアント(NFS、NISなど)に必要?
   今回はそのあたり使わないので不要
 ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
 iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →FWに任せる。使わない
 lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
   →論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン。lvm使わないので停止
 sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →postfix使うので停止
 mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →ソフトウェアRAID状態の監視ツール。ソフトウェアRAID使いませんし、diskはESXi側で対応するので不要
 lldpad          0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →RHEL6からLLDPがサポートされている。どうせ対向は仮想スイッチ(LLDP非対応)なので、不要。
 xinetd
   →使うときに有効化することに。
  • 今回の用途的に必要、多分必要
 udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
   →ハードウェア自動認識らしい。追加HDDなどありうるので、使う
  • 必要
 atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
   →単発的にスケジュール化した コマンド を実行させるデーモン。必要
 crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
 irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
   →マルチ CPU の ホスト機 を使用するとき、効率よく処理を分散させるデーモンです。該当するホスト機を使用している場合は稼動させてください→multicore, hyperthreadingするのでとりあえず稼働
 kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
   →サーバーのメモリー上に、あらかじめ、カーネルダンプを出力するための
   クラッシュカーネルを常駐させておき、カーネルパニックが発生すると、
   通常のカーネルからクラッシュカーネルに処理を渡して、ダンプを取得するツール
   http://wimax.blog64.fc2.com/blog-entry-67.html
   一応入れておく
 network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
 rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
 sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
   →言わずもがなの。
 sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
   →sysstatは、定期的にサーバーの情報をバイナリで保存する為のツール。
   sarコマンドなど。使う。
  • 実際止めたもの:
# for svc in abrt-ccpp abrtd abrt-oops acpid cpuspeed haldaemon messagebus auditd fcoe iscsi iscsid netfs nfslock rpcbind rpcgssd rpcidmapd ip6tables iptables lvm2-monitor mdmonitor lldpad sendmail xinetd blk-availability; do chkconfig $svc off; done

NTP設定

(ntpがインストールされていること)

# vim /etc/ntp/step-tickers
 ----------------------
 192.168.11.50
 192.168.101.50
 ----------------------
 ->ntpd起動時に、上記のいずれかのサーバに対してntpdateしてからntpd起動

# vim /etc/ntp.conf
 ----------------------
 restrict default kod nomodify notrap nopeer noquery
 restrict -6 default kod nomodify notrap nopeer noquery
 restrict 127.0.0.1
 restrict -6 ::1
 server 192.168.11.50 minpoll 6 maxpoll 6
 server 192.168.101.50 minpoll 6 maxpoll 6
 includefile /etc/ntp/crypto/pw
 keys /etc/ntp/keys
 logfile /var/log/ntpd.log
 ----------------------

# chkconfig ntpd on
# chkconfig --list ntpd

# ntpdate 192.168.11.50

# service ntpd start
root@vm01# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*gw1.mon.hoge.a 172.16.163.33    2 u   34   64   77    0.259    2.162   0.288
+gw2.mon.hoge.a 172.16.163.32    2 u   26   64   77    0.263    2.068   0.288
+tmp-esxi1.mon.m 172.16.163.31    2 u   31   64   77    0.134    2.112   0.277
 tmp-esxi2.mon.m .INIT.          16 u    -   64    0    0.000    0.000   0.000
 LOCAL(0)        .LOCL.          10 l   30   64   77    0.000    0.000   0.001
(10分くらい待ってからこの確認コマンドを打たないと同期とれていることが確認できない。stratum=16は同期できていない証拠)

メール設定

脱sendmail

  • service sendmail stop
  • yum remove sendmail

postfix

  • chkconfig --add postfix
  • cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org
  • main.cfの編集(差分は以下)
$ diff -U1 /etc/postfix/main.cf.org /etc/postfix/main.cf
  --- /etc/postfix/main.cf.org    2011-12-03 14:00:55.000000000 +0900
  +++ /etc/postfix/main.cf        2012-09-10 18:14:44.000000000 +0900
  @@ -76,2 +76,3 @@
   #myhostname = virtual.domain.tld
  +myhostname = hop1.bp.hoge.ad.jp
#
  @@ -83,2 +84,3 @@
   #mydomain = domain.tld
  +mydomain = bp.hoge.ad.jp
#
  @@ -99,2 +101,3 @@
   #myorigin = $mydomain
  +myorigin = $myhostname
#
  @@ -118,3 +121,4 @@
   # Enable IPv4, and IPv6 if supported
  -inet_protocols = all
  +#inet_protocols = all
  +inet_protocols = ipv4
#
  @@ -266,2 +270,3 @@
   #mynetworks = hash:/etc/postfix/network_table
  +mynetworks = 127.0.0.0/8
#
  @@ -317,2 +322,3 @@
   #relayhost = [an.ip.add.ress]
  +relayhost = bp.hoge.ad.jp
  • 文法チェック
 # postfix check
 (正常なら出力なし。)
  • 起動するよー
 # service postfix start
  • メール送信テスト
 # tail -f /var/log/maillog &
 # echo "pleases ignore" | mail -s "[TEST] built postfix" matsuda@hoge.ad.jp

aliases

  • aliasesの編集(ローカルのrootにメールが滞留しないように)
 # vim /etc/aliases
 --> 以下を追加
 root:           server-alert@hoge.ad.jp
  • 反映
 # newaliases
  • メールテスト
 # echo "pleases ignore" | mail -s "[TEST] built postfix and updated aliases" root

syslog

  • syslogはreadだけはみんなから出来るように
 # find /var/log/ -type f | xargs chmod -c +r

logrotate

  • weeklyで12世代(約3ヶ月)保持することに。 最低1ヶ月分で十分かと思うが、ユーザランドなので当面は多めに残しておこうと思って(製作者の独断)
 # vim /etc/logrotate.conf
 rotate 15
  • ファイルは圧縮して保持。ファイル名には日付を入れて保存
  • /etc/logrotate.d/syslog を少し編集
 /var/log/boot.log
 /var/log/cron
 /var/log/maillog
 /var/log/messages
 /var/log/secure
 /var/log/spooler
 {
     sharedscripts
     postrotate
         create 0664 root root
         /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
     endscript
 }

logwatchによるログ監視(暫定対処!)

本当はsyslogサーバ立てて、そこで集約したいが、開発までの間、今まで自分でやってきた風習を取り入れておく。

  • インストール
 # yum install -y logwatch
  • コンフィグ設定
 # vim /etc/logwatch/conf/logwatch.conf
 MailTo = server-report@hoge.ad.jp
 Detail = High
 LogDir = /var/log

※Detailは3種類のレベル有り。 High(sudo実行履歴を全部表示) Med (initのログが無さそう、sudo実行履歴はユーザごとにサマって表示) Low (Medと比べてcronは表示なし, PAM,SSHD,sudoは更に絞っている)がある。 →なるべく出力はサマって欲しいけど、サービス単位でログが出なくなる(cron全部、とか)のは嫌なので、Highで。

  • 動作確認
 # logwatch --print       //結果を端末に表示
 # logwatch --mailto root //結果をrootに送る
  • cron登録(編集不要)
 # vim /etc/cron.daily/0logwatch

NRPE(クライアント)

  • 手順: [[Renewal/Server/サーバ監視システム/nagios監視対象追加]]の通り。
  • 内容
    • nrpe-2.13.tar.gz
    • nagios-plugins-1.4.16.tar.gz
  • 特記事項
    • logは/var/log/messagesに
    • srv-mon[12].(bp|mon).hoge.ad.jpからアクセスを許可 allowed_hosts=127.0.0.1,192.168.11.48,192.168.101.48,172.16.176.48,172.16.177.48

munin-node

  • 手順: [[Renewal/Server/共通仮想化基盤/srv-perf1,2/munin_config/munin-node_setup]]を参照
  • 内容
    • cpanで環境整備
    • munin-2.0.6.tar.gzからソースインストール
    • munin-nodeとmunin-asyncdを稼働させる
    • srv-perf1,2とlocalhostからのアクセスを許可

バックアップ

acronis VM protect でクラスタ単位でバックアップされるので、基本的にOS上での作業は発生しない!

SSH

  • RootLoginを不許可
    • /etc/ssh/sshd_config
 PermitRootLogin no

追加構築記録

20130301 フロッピー削除、SCSIコントローラ変更、NWアダプタタイプ変更、kernelのoffload無効化

仮想ハードウェアの変更

  • 仮想マシンをシャットダウン
  • 仮想マシンの設定編集より
    • NWアダプタを削除し作りなおす→タイプをVMXNET3とする
    • SCSIコントローラのタイプの変更→準仮想化とした(cpu処理の低減)
    • フロッピードライブを削除

TCP offloadの無効化

数Gbpsレベルで定常的に通信が発生していることがない限りCPU負荷&通信速度に与える効果は無いらしく、逆にトラブルに成るケースも多いようなので、offload機能は基本的にoffにする。

  • 事前確認: 一部onになっている
 root@ns2.mon.hoge.ad.jp# ethtool -k eth0
 Offload parameters for eth0:
 rx-checksumming: on
 tx-checksumming: on
 scatter-gather: on
 tcp-segmentation-offload: on
 udp-fragmentation-offload: off
 generic-segmentation-offload: on
 generic-receive-offload: off
 large-receive-offload: on
 root@ns2.mon.hoge.ad.jp# ethtool -k eth1
 Offload parameters for eth1:
 rx-checksumming: on
 tx-checksumming: on
 scatter-gather: on
 tcp-segmentation-offload: on
 udp-fragmentation-offload: off
 generic-segmentation-offload: on
 generic-receive-offload: off
 large-receive-offload: on
  • offしてみる
 root@ns2.mon.hoge.ad.jp# ethtool -K eth0 rx off tx off tso off gso off lro off
 root@ns2.mon.hoge.ad.jp# ethtool -K eth1 rx off tx off tso off gso off lro off
  • 事後確認: 全部OFFになっている
 root@ns2.mon.hoge.ad.jp# ethtool -k eth0
 Offload parameters for eth0:
 rx-checksumming: off
 tx-checksumming: off
 scatter-gather: off
 tcp-segmentation-offload: off
 udp-fragmentation-offload: off
 generic-segmentation-offload: off
 generic-receive-offload: off
 large-receive-offload: off
 root@ns2.mon.hoge.ad.jp# ethtool -k eth1
 Offload parameters for eth1:
 rx-checksumming: off
 tx-checksumming: off
 scatter-gather: off
 tcp-segmentation-offload: off
 udp-fragmentation-offload: off
 generic-segmentation-offload: off
 generic-receive-offload: off
 large-receive-offload: off
  • 再起動時にもdisable状態になるようにrulesファイルに書く
 # vi /etc/udev/rules.d/50-eth_offload.rules
 ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/sbin/ethtool -K eth0 rx off tx off sg off tso off gso off gro off lro off"
 ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth1", RUN+="/sbin/ethtool -K eth1 rx off tx off sg off tso off gso off gro off lro off"
 ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth2", RUN+="/sbin/ethtool -K eth2 rx off tx off sg off tso off gso off gro off lro off"

wtmpの削除

 # echo /dev/null > /var/log/wtmp

centos 6.xへのupgrade

  • yum update で実行
  • その後, iptablesなどが有効になってしまったので、適宜 chkconfig off などしなおす。