muninのグラフを初期化する

muninの画像に前のサーバーの画像が残っているので削除したい。

クラウドサーバをクローンして構築した時に、前のサーバのmuninグラフが残っていたので削除してみました。

  • centos6.5です。

muninとmunin-nodeを削除

# yum remove munin-node munin

muninの古いファイルをリネームしておく

# mv /var/www/html/munin /var/www/html/munin_backup

var/libの方にもファイルがあるのでリネームしておく

# mv /var/lib/munin /var/lib/munin_backup

再度muninのインストール

# yum install munin-node munin

グラフ生成のCRONをたたいてみる

# test -x /usr/bin/munin-cron && /usr/bin/munin-cron

エラーがでた

not a reference at /usr/share/perl5/vendor_perl/Munin/Master/Utils.pm line 866&

スタートしてなかった

# /etc/init.d/munin-node start

再度グラフ生成のCRONを叩くと初期化されたグラフが表示されました。

Munin    localhost    localhost

さくらのクラウドでディスクのクローン

さくらのクラウドサーバ使ってます。

最近のクラウドサーバで新しいサーバを作る時は、
ディスクのクローンを作成。

  • CPUやメモリを決めてサーバを作成。
  • サーバ起動。
  • 不要なユーザー削除とrootパスワード再設定。
  • yum updateを1発して完成。

というような感じのフローをとっています。メールサーバを新規に建てるのが大変で、もしハマると時間もかかっちゃいますし・・・。さくらのクラウドはVPSとクラウド間のディスクのクローンができればすごく便利になるので期待してます。

さて、さくらのクラウドを使ってるとディスクのクローンを行った場合、ネットワークに繋がってないので、コントロールパネルからコンソールにログインし、ネットワークの設定をする必要があります。

サーバーのIPが133.133.133.133と仮定した場合、下記の設定にすると動きました。

/etc/sysconfig/network-scripts/ifcfg-eth0を変更

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=9c:a3:ba:**:**:** ←macアドレス
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=static
IPADDR=133.133.133.133←IPv4アドレス
TYPE="Ethernet"
NETMASK=255.255.255.0←ネットマスク

/etc/sysconfig/networkを変更

# vi /etc/sysconfig/network
NETWORIKING=yes
NETWORIKING_IPV6=yes
GATEWAY=133.133.133.1 ←ゲートウェイ
HOSTNAME=localhost.localdomain1

/etc/resolv.conf を作成

# vi /etc/resolv.conf
nameserver 133.133.0.3 ←ネームサーバ
nameserver 133.133.0.4 ←ネームサーバ
search localdomain

これが終わったらnetworkを再起動。

# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]

ping打ってみます。

# ping google.co.jp
PING google.co.jp (74.125.235.184) 56(84) bytes of data.
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=1 ttl=57 time=16.8 ms
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=2 ttl=57 time=16.5 ms
64 bytes from nrt19s12-in-f24.1e100.net (74.125.235.184): icmp_seq=3 ttl=57 time=16.5 ms

参考:さくらクラウドのネットワーク設定方法
2年前に書いた記事が役に立ちました。

logrotateのエラー

ある日DBサーバーがlogorateの時間頃から止まってる!ということがあり、あたふたしてました。その時に/var/log/messageファイルに残されてたエラーがこちら

logrotate: ALERT exited abnormally with [1]

サーバーPCではログファイルがどんどん増えていくので、日ごとや週ごとにログファイルのローテートを行い、どんどん古いログファイルを削除していかないといけない。そういうことをいい感じにやってくれるのがlogrotate。それがエラーを起こしてDBサーバーの再起動に失敗して、止まった事になってたみたいです。\(^o^)/

logrotateにエラーがでてないかチェックするコマンドはこちら

# /usr/sbin/logrotate -vd /etc/logrotate.conf

まぁwebminで設定しなおしたら直りましたとさ。

・参考
logrotateがうまくいかない

memcachedのインストール

memcachedの読み方は、メムキャッシュドって読んじゃいがちですが、
正確にはメムキャッシュディーらしいです。でも、メムが言いにくいんでメンキャッシュディーで良いんじゃないかと個人的には思います。

yumでmemcachedのインストール

CentOS 5.7
PHP 5.3.3
デフォルトのレポジトリには無く、remiで発見しました。

# yum install memcached --enablerepo=remi
 
================================================================================
Package           Arch           Version                    Repository    Size
================================================================================
Installing:
memcached         x86_64         1.4.5-2.el5.remi           remi          73 k
 
Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

memcached の開始。サーバー起動時の自動起動にも設定すると良さそうです。

# /etc/rc.d/init.d/memcached start
# chkconfig memcached on

PHPで使えるようにするにはpeclのmemcacheをインストール

# pecl install memcache

/etc/php.ini に
memcache.so
を追記してhttpd再起動した後に、インストールできてるか確認する。
エラーがでてなければ使えるようになってるみたい。

# php -i | grep memcache
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user memcache

PHPでの使用例

<?php
// インスタンス
$memcache = new Memcache();
 
// 接続する 11211がデフォのポートらしい
$memcache->connect('localhost', 11211) or die('memcached connect failed.');
 
// 保存
$memcache->set('key', 'hoge');
 
// ゲッツ
$get = $memcache->get('key');
 
// 切断
$memcache->close();
 
echo $get;  // hoge
?>

postfix2.6.6をインストール

さくらの専用サーバーエクスプレスをいじる機会があったので、ごそごそ設定してました。
まず、centosが6.2になってて、yumがいろいろ便利になってました!

・phpが5.3系になってた
・mysqlが5.1系になってた
・munin-nodeが標準レポジトリに入ってた
・iotopも標準レポジトリに入ってた
・postfixが2.3.3から2.6.6になった

さて、postfix2.6.6のインストール

今まではpostfix2.3.3を使ってて、mysqlを使うパッケージに変換して使ってましたが、
2.6.6はデフォルトでmysqlを使うことができるようです!

# postconf -m |grep mysql
mysql

mysql発見!これはそのままでmysqlが使えるってことだろう常識的に考えて。

とりあえずpostfix2.3.3の時と同じ設定にしといて、
popで接続してみたら・・・、接続できない\(^o^)/

mail.log
Mar 16 01:51:01 localhost postfix/smtpd[457]: warning: SASL: Connect to private/auth failed: Connection refused
Mar 16 01:51:01 localhost postfix/smtpd[457]: fatal: no SASL authentication mechanisms
Mar 16 01:51:02 localhost postfix/master[347]: warning: process /usr/libexec/postfix/smtpd pid 457 exit status 1
Mar 16 01:51:02 localhost postfix/master[347]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

エラーがでたのでmain.cf変更。

main.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
を↓に変更
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd

yumのパッケージが無ければいれる

# yum install cyrus-sasl-plain cyrus-sasl-md5

もう一回pop接続してみる・・・、接続できない\(^o^)/

mail.log
Mar 16 02:23:38 localhost postfix/virtual[5589]: fatal: main.cf configuration error: virtual_mailbox_limit is smaller than message_size_limit

virtual_mailbox_limit・・・?
きっと2.6.6で新たに追加された項目ですね?

main.cf
virtual_mailbox_limit = 0

を追記してみて、もう1回pop接続すると・・・、今度は接続できました/(^o^)\

結局postfix2.6.6の設定ファイルは下記のようになりました。

# postconf -n
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_command = /usr/bin/procmail
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 0
mydestination = $mydomain
mydomain = araishi.com
myhostname = mail.araishi.com
mynetworks = 168.100.189.0/28, 127.0.0.0/8, 192.168.1.0/24
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
unknown_local_recipient_reject_code = 550
virtual_alias_domains = $virtual_alias_maps
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:10000
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = virtual
virtual_uid_maps = static:10000

不要な項目もあるんでしょうが、ひとまずこれで稼働させて様子を見ることに。