CentOS7の設定
昨年末にインストールしてたシステムに問題があって、調査しに行ったところ、インストール作業に問題があるのが判明。弊社じゃないけど、うちで修正しないといけなくなった。 やることは、PostgresqlとElasticSearchのデータディレクトリの変更
RedHatの7であまり触ったことないので、一応CentOS7で構築から確認してみた。
環境はWindows10のHyper-V上に、CentOS7,5を構築
- CentOS7をインストール
- Linux Integration Services 4.2 for Hyper-Vのインストール
- NICの設定
- sshdの設定
- ファイアウォールの設定
- データ領域用HDDの追加とマウント
- ElasticSearc インストール準備
- ここからが、やるところ
CentOS7をインストール
ISOファイルをダウンロードして、 Hyper-Vのゲストマシンに設置。画面に従うだけ。
Linux Integration Services 4.2 for Hyper-Vのインストール
NICの設定
nicの確認
nmcli d
インターフェイスを有効化
nmcli c m eth0 connection.autoconnect yes
nmcli c modify eth0 ipv4.addresses 192.168.xxx.xxx/24
デフォルトゲートウェイを設定
nmcli c modify eth0 ipv4.gateway 192.168.xxx.xxx
DNS設定
nmcli c modify eth0 ipv4.dns 192.168.xxx.1
IPを固定割り当てに設定 (DHCP は "auto"に変更)
nmcli c modify eth0 ipv4.method manual
インターフェースを再起動して設定を反映
nmcli c down eth0; nmcli c up eth0;
sshdの設定
インストール状態確認
yum list installed | grep ssh
インストールされてないなら入れる。
yum -y install openssh-server
設定ファイルの変更
nano/etc/ssh/sshd_config
設定項目
PermitRootLogin #rootユーザーでのログインを許可するか否か。 PasswordAuthentication #パスワード認証を許可するか否か。
サービス再起動
systemctl start sshd.service #起動 systemctl status sshd.service #動作確認
ファイアウォールの設定
ポートの確認
firewall-cmd --list-all
ないなら追加
firewall-cmd --permanent --add-service=ssh
データ領域用HDDの追加とマウント
fdisk -l
パーテーション作成
fdisk/dev/sdb
ファイルシステムを作成
mkfs-t ext4 /dev/sdb1
マウントする
mount -t ext4 -o defaults /dev/sdb1 /data/
起動時の、自動マウント
nano /etc/sftab
で
/dev/sdb1 /data/ ext4 defaults 0 0
を追記
ElasticSearc インストール準備
wgetのインストール
yum -y install wget
で終了。で、ElasticSearchのrpmを取ってくる。 バージョンは、導入先の都合で、5.6.3
Elasticserachユーザのファイルオープン数の設定
これこれ変えとかないとあとあと、エラーが出る。まず現状確認。
sudo -u elasticsearch bash -c "ulimit -n“
たぶん、初期値1024。65536に変更する。
nano /etc/security/limits.conf
この記述を変更
elasticsearch - nofile 65536
JAVA(OpenJDK)のインストール
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
javaフォルダの確認
dirname $(readlink $(readlink $(which java))) /usr/lib/jvm/java-1.8.0-openjdk01.8.0.171-8.b10.el7_5.x86_64/jre/bin
nano /etc/profile に追加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
ここからが、やるところ
ElasticSearchデータディレクトリの変更
ElasticSearchのデータディレクトリの変更しないといけない。
デフォルトは/var/lib/elasticsearch/
配下を、すべて移行先にコピー
cp -a /var/lib/elasticsarch/ /data/elasticsearch/
chown –R で所有者、所有グループを変更。
chown -R elasticsearch:elasticsearch elasticsearch/
サービス起動の設定ファイルを変更。
nano /etc/sysconfig/elasticsearch
ここの記述を変更する。
DATA_DIR=%移行先%
systemctl restart elasticsearch.service
でプロセス再起動。
ps aux | grep elastic
で動作確認
PostgreSql データ領域の移動
ここを参考にした。
手順1 /usr/lib/systemd/system/postgresql-9.5.service 内の "Environment=PGDATA="を変更する
手順2(参照の記述がなかったので、作業せず。) .bash_profileにある、PGDATA= を変更後、source .bash_profileで反映する
手順3 systemctl daemon-reloadを実行する ※これをしないと、警告が出た Warning: postgresql-9.5.service changed on disk. Run 'systemctl daemon-reload' to reload units. でも、なんかうまくいかなくて、リブートした。
手順4
/usr/pgsql-9.5/bin/postgresql95-setup initdb
を実行する
手順5
systemctl start postgresql-9.5.service
を実行する
データ領域移動後の作業
- pg_hba.confはコピーでOK
- postgresql.confは修正。
- dbは要リストア
- postgresユーザのパスワード再設定は不要。