CentOS 7.4 に Memcached をインストール、ログの設定まで実施する


CentOS 7.4 に yum で Memcached をインストール、ログの設定まで実施してみました。
以下、実施したことを記載します。


前提

以下の環境で実行しています。

  • OS
    cat /etc/redhat-release 
    CentOS Linux release 7.4.1708 (Core)
    

また、Memcached は、同一筐体上で稼働する HTTP サーバからアクセスする予定なので、127.0.0.1 からのアクセスのみを許可する想定です。


参考記事

Cent OS 6.9 へ Memcached をインストールした際の実施内容を参考にしました。
* Cent OS 6.9 に Memcached をインストール、ログの設定まで実施する | Monotalk


Memcached の インストール、自動起動設定

インストール

yum install memcached
------------------------------------------
インストール:
  memcached.x86_64 0:1.4.15-10.el7_3.1                                                                                                                                                                    
-------------------------------------------

コマンドとして、何が実行できるのか確認

CentOS 7 からは、起動、停止コマンドは、service から、systemctl 置き換わっています。
CentOS 6 との対応関係配下の通りです。
各コマンドの意味は、以下の記事が参考になりました。
* はじめてのsystemdサービス管理ガイド | Developers.IO

CentOS 6CentOS 7説明
service memcached startsystemctl start memcached.service起動
service memcached stopsystemctl stop memcached.service停止
service memcached restartsystemctl restart memcached.service再起動
service memcached try-restartsystemctl try-restart memcached.service起動していれば、再起動を実行する
service memcached reloadsystemctl reload memcached.service設定ファイル再読み込み
service memcached force-reloadsystemctl force-reload memcached.service設定ファイル強制再読み込み
service memcached statussystemctl status memcached.serviceステータスチェック
service memcached condrestart-起動していれば、再起動を実行する1

Memcached 自体の設定

sasl が使用できるか確認

memcached -S  
で、CentOS 6.9 の際は確認ができたのですが、CentOS 7.4 だと何故かコマンドでの確認ができませんでした。

/etc/sysconfig/memcached の編集

Memcached の 設定ファイル /etc/sysconfig/memcached を編集します。

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-U 0 -vv -l 127.0.0.1 -B ascii 1>> /var/log/memcached/memcached.log 2>>/var/log/memcached/memcached.log"

設定値の意味については、Cent OS 6.9 に Memcached をインストール、ログの設定まで実施する | Monotalk に記載していますので、そちらをご確認ください。

ログディレクトリの作成

OPTIONS で書き出しを指定したログディレクトリがないので作成します。

mkdir /var/log/memcached/


ログローテーション

以下のようにログローテーションの設定を行いました。
* /etc/logrotate.d/memcached

/var/log/memcached/*.log {
 notifempty
 daily
 rotate 10
 missingok
 dateext
 dateformat -%Y%m%d
 copytruncate
 sharedscripts
}
設定内容については以下の記事が参考になりました。
ログローテーションするためのlogrotate設定とちょっとしたtips - Qiita


memcached の再起動スクリプト

日次で再起動を実施したいので、以下の処理を行う再起動スクリプトを作成しました。
nc コマンドは、CentOS 7.4 のデフォルトだと使用できないため、yum install nc でインストールしました。

  • restart_memcached.sh

    #!/bin/sh
    # Dump memcached
    /usr/bin/memcached-tool localhost:11211 dump > /tmp/memcached.dump
    # restart memcached
    /sbin/service memcached restart 
    # Import dump file
    /bin/cat /tmp/memcached.dump | /usr/bin/nc localhost 11211
    

  • 補足
    cron に設定する場合は、dump コマンドの出力が、標準エラーに出力されるため、以下のように記載します。

    30 03 * * * /bin/sh $SCRIPT_HOME/restart_memcached.sh &>> $LOG_DIR/restart_memcached.log 
    

以上です。


  1. try-restart との違いがちょっとわかりませんでした。CentOS 7 だと対応するコマンドがなくなっているようです。 

コメント