zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【さくらのレンタルサーバ】サイトの移設に備えて、独自ドメインのWordpressをドメイン直下に用意する

【概要】

ホスティングで動作しているhoge.co.jpというサイトをさくらのレンタルサーバ上のWordpressに移したいという要望。
まだ旧サイトが動作しているためドメインの移管はできないが、host書き換えで触れるようにしたい。

→解決策:さくらのコンパネで「他社で取得したドメインを移管せずに使う」でhoge.co.jpのドメインを追加してから作業するとよい。
(/etc/httpd/conf.dの下にconfを追加するようなイメージと思われる)


毎回忘れて数時間ドブに捨ててるのでメモを残すものなり。
コンパネが新しくなってたのでそっちで作ったのもメモしておく。
(この人は結構苦労しているようだ……)

【詳細】

1)さくらインターネット サーバーコントロールパネルより利用したいドメインを追加する

[ドメイン/SSL設定]-[新しいドメインの追加]-[5. 他社で取得したドメインを移管せずに使う]-[他社ドメインの追加]

ドメイン名: hoge.co.jp
↓確認画面
初期ドメイン名	hoge.sakura.ne.jp
追加ドメイン名	hoge.co.jp

※上記設定ができたら、hoge.sakura.ne.jpのIPをHOSTSファイルで書き換えて接続できるようになります。



3)データベース作成

[Webサイト/データ]-[データベース]-[新規追加]
データベースバージョン:5.7
データベース名:任意
データベース接続用パスワード:任意
データベース文字コードUTF-8(utf8mb4)

4)WordPress のインストール

[ホーム]-[Wordpressインストール]

インストールURL http://hoge.co.jp
ドキュメントルートを変更:hogecojp
データベース:上記で作成したDB名
データベースパスワード:上記で設定したパスワード
テーブルの接頭語:任意


5)アプリケーションの設定

hoge.co.jpで接続できるよう、作業PCのhostsファイルを書き換えておきます
例)

# DNS変更が完了するまでの間、hoge.sakura.ne.jpのIPを作業PCのhostsに設定
nslookup hoge.sakura.ne.jp
# 名前:    hoge.sakura.ne.jp
# Address:  xx.xxx.xx.xx

→hostsファイル
xx.xxx.xx.xx     hoge.co.jp 

あとは管理画面から入っていつものWordpressの導入でOK。
例)http://hoge.co.jp/wp-admin/install.php

【AWS】通常のEC2インスタンスでNested VM(仮想マシンの上で仮想マシン)できるのか問題

【やりたいこと】
AmazonLinux2上にVirtualboxとか入れてWIndowsを動かしたい

【調べた結果】
インスタンスタイプがベアメタルインスタンスなら可能。
通常のEC2仮想マシンの上では[仮想マシンの上で仮想マシンを動かす]はできない模様

【根拠】
https://stackoverflow.com/questions/7601853/can-virtualbox-be-executed-under-amazon-ec2-instance
> vboxdrv.sh: failed: Running VirtualBox in a Xen environment is not supported.

しらべたのはここまで。
実際にやってみたらまた追記します

【AWS】RDS-Auroraのインスタンスタイプ変更をFailoverでやるメモ

【概要】

シングル構成のAuroraでインスタンスタイプを上げたい。
そのまま変更すると15分くらい止まっちゃうらしいので、Failoverパターン

で実行したメモ

【作業】

1)インスタンスクラスタ選択-[アクション]-[リーダーの追加]
# Add reader
アベイラビリティーゾーン:指定なし
パブリックアクセス可能:いいえ
暗号化:初期値ママ

インスタンスの仕様
	DB インスタンスのクラス
		→変更したいクラスを指定

設定
	Aurora レプリカのソース
		→選択して指定
	
	DB インスタンス識別子
		→既存のIDと被らないように指定。インスタンスタイプ名とかを入れておくと後で間違わない

フェイルオーバー
	指定なし

データベースの設定
	データベースのポート:3306ママ
	DB パラメータグループ:選択して指定

モニタリンク
	環境に合わせて設定

メンテナンス
	マイナーバージョン自動アップグレード:環境に合わせて設定

で[Add Reader]


2)FailOverで切り替え

[書き込み]ロールが付与されている側の旧データベースを選択して
[アクション]-[フェイルオーバー]
を実行
→しばらく待つとロールが切り替わります。

3)旧データベースの削除

リードレプリカとなった側の旧インスタンスを選択、[アクション]-[削除]
でdelete meを入力して削除


以上で完了です。

★注意★

アプリケーションで設定しているデータベースの接続先エンドポイントがクラスタ側になっていること。
例:hoge.cluster-hogefuga.ap-northeast-1.rds.amazonaws.com
これが何らかの理由でインスタンス自身のエンドポイント
例:hoge.hogefuga.ap-northeast-1.rds.amazonaws.com
を直接たたいている場合はFailoverによる切り替えでサービスが死ぬので注意(死んだ……)。

【AWS】VPCのEIP数緩和申請メモ

【概要】

ElasticIPが上限になって取得できない。上限の追加を依頼する

■作業内容

1)現在の上限確認

マネジメントコンソール-[EC2]-[制限]-[ネットワーキングの制限]-[EC2-VPC Elastic IP]
現在の制限:12(東京リージョン)

→現在の使用量:12(東京リージョン)
上限緩和申請が必要と判断

2)制限緩和リクエス

上記画面の該当する制限より[制限緩和のリクエスト]で[AWSサポートダッシュボード]を開いて以下の内容で申請

Create case
	[Service limit increase]を選択

Case classification
	Limit Type
		ElasticIPs

Requests

	リージョン
		アジアパシフィック:東京
	
	Limit
		ご希望のVPC Elastic IP アドレスの合計数

	New limit value
		50

Case Description
	EC2-VPC Elastic IPが上限に達してしまったため、上限緩和をお願いいたします。

連絡方法 : WEB

で[Submit]

【zabbix】supervisorでデーモン化したサービスの監視

zabbix-supervisorでの監視

zuntan02.hateblo.jp
上記で立てた検証環境についてzabbixから監視する

【参照】

https://share.zabbix.com/cat-app/process-managers/zabbix-supervisor
https://github.com/rterzi/zabbix-supervisor

■README.md

zabbix-supervisor
Very simple monitoring of Supervisor with Zabbix Agent

Instructions
Place userparameter_supervisord.conf file into /etc/zabbix/zabbix_agentd.d/ directory and restart Zabbix Agent
Place zabbix file into /etc/sudoers.d/ directory
Import zabbix_supervisor_v3_template.xml template via Zabbix Web
Add hosts to Template App Supervisor template
Tested with: Zabbix Server 3.0.14, Supervisor 3.0, Debian 8 & Ubuntu 16

監視対象サーバで以下を実施する

supervisord監視パラメータ追加

sudo wget https://raw.githubusercontent.com/rterzi/zabbix-supervisor/master/userparameter_supervisord.conf -O /etc/zabbix/zabbix_agentd.d/userparameter_supervisord.conf

zabbixファイルをsudoers.dに配置

sudo wget https://raw.githubusercontent.com/rterzi/zabbix-supervisor/master/zabbix -O /etc/sudoers.d/zabbix

zabbixサーバでzabbix_supervisor_v3_template.xmlをインポート

[設定]-[テンプレート]-[インポート]




監視パラメータのコマンド確認

sudo supervisorctl status|grep -v 'RUNNING'|awk '{print $1":"$2}'

監視対象でプロセスを停止してみる

supervisorctl stop hello

監視パラメータを手でたたいてみる

sudo supervisorctl status|grep -v 'RUNNING'|awk '{print $1":"$2}'

→hello:STOPPED
→Zabbixからもアラートが飛ぶことを確認できた

(そのほか)
■Template App Supervisor
https://github.com/Lelik13a/Zabbix-Supervisor-Check
→3年前のセット。やや古いのと追加モジュールが多いっぽいのでやめた

Amazonlinux2でsupervisorを動かすまで

■supervisorとは?

https://www.task-notes.com/entry/20170311/1489224418

Supervisor とは Python 製のプロセス管理ツールで、プログラムなどを簡単にデーモン化することができます。

https://qiita.com/yushin/items/15f4f90c5663710dbd56

プロセス管理/デーモン化のツール。 コンフィグちょっと書くだけで簡単にデーモンプロセスの生成/管理が可能。 本家のドキュメントはこちら http://supervisord.org/

【検証環境構築】

Amazonlinux2にsupervisorを入れてみる 【参照】 https://qiita.com/abouch/items/3f4b422c7d9048936629 http://supervisord.org/installing.html ←公式

pipのインストール

sudo easy_install pip

Installed /usr/lib/python2.7/site-packages/pip-19.1.1-py2.7.egg

supervisorのインストール

pip install supervisor

Successfully installed meld3-1.0.2 supervisor-4.0.3

バージョン確認
supervisord -v

4.0.3

サービス起動設定を行う

pipでのインストールではデフォルトではsupervisord自体のサービス管理は含まれません。動かすために以下の設定を行います。

デフォルトコンフィグファイル生成

echo_supervisord_conf コマンドで設定ファイルの雛形が出力されるのでこれを/etc/supervisord.confに書き出す。

echo_supervisord_conf > /etc/supervisord.conf
includeコンフィグ用のディレクトリ作成
sudo mkdir /etc/supervisord.d
ログ出力先のディレクトリを作成、log rotationの設定も行っておきます。
sudo mkdir /var/log/supervisor/

sudo sh -c "echo '/var/log/supervisor/*.log {
       missingok
       weekly
       notifempty
       nocompress
}' > /etc/logrotate.d/supervisor"

supervisord.conf修正

cp -p /etc/supervisord.conf /etc/supervisord.conf.org

diff /etc/supervisord.conf.org /etc/supervisord.conf
======
28c28,29
< logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
---
> ;logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log
> logfile=/var/log/supervisor/supervisord.log
32c33,34
< pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
---
> ;pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid
> pidfile=/var/run/supervisord.pid
151c153
< ;[include]
---
> [include]
152a155
> files = supervisord.d/*.ini

※上記の説明

ログディレクトリ変更
;logfile=/tmp/supervisord.log
logfile=/var/log/supervisor/supervisord.log
pid, includeの設定

pidファイルは/var/run/以下に生成するようにし、 /etc/supervisord.d/以下の設定ファイルをincludeできるようにします。

pidファイル
;pidfile=/tmp/supervisord.pid
pidfile=/var/run/supervisord.pid
includeセクションがをイキにして下記の用に修正
[include]
files = supervisord.d/*.ini

supervisord本体のシステムサービス登録

CentOS6系

initスクリプトは以下を使用

https://github.com/Supervisor/initscripts/blob/master/redhat-init-equeffelec

sudo curl -o /etc/rc.d/init.d/supervisord https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec
sudo chmod 755 /etc/rc.d/init.d/supervisord
sudo chkconfig --add supervisord
CentOS7系:systemdに登録

/etc/systemd/system/supervisord.serviceを用意

sudo sh -c "echo '[Unit]
Description=Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target

[Service]
ExecStart=/usr/bin/supervisord -n -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=50s

[Install]
WantedBy=multi-user.target' > /etc/systemd/system/supervisord.service"
サービス起動確認
systemctl start supervisord
systemctl status supervisord
systemctl stop supervisord
自動起動に登録
systemctl enable supervisord.service

特定の処理をデーモン化してみる

動作確認用に10秒毎に現在時刻を出力するシェルを用意

/home/hoge/hello.sh

#!/bin/sh
while true 
do
sleep 10s
echo "hello "`date`
done

このシェルを実行するプロセス設定ファイルを以下のように作成

sudo sh -c "echo '[program:hello]
directory=/home/hoge
command=/bin/sh hello.sh
user=root
autorestart=true  ;
stdout_logfile=/home/hoge/hello.log ;
redirect_stderr=true  ;
' > /etc/supervisord.d/hello.ini"
動作確認

tail -f /home/tcmobile/hello.log →タイムスタンプの値が出続けていればOK

デーモンプロセス一覧確認

supervisorctl

hello RUNNING pid 14742, uptime 0:01:43 動作している

プロセスを停止してみる supervisorctl stop hello supervisorctl

hello STOPPED Jun 27 07:02 PM 止まっている

管理画面について

https://debug-life.net/entry/989 WebUIが存在するが今回は置く

Supervisorの検証はここまで

AWS Inspectorとりあえず動かすメモ

■公式手順を参考にとりあえず動かす

https://docs.aws.amazon.com/ja_jp/inspector/latest/userguide/inspector_installing-uninstalling-agents.html
https://docs.aws.amazon.com/ja_jp/inspector/latest/userguide/inspector_rule-packages.html

1)エージェント導入

監視対象サーバにエージェントを導入

mkdir /usr/local/src/inspector
cd /usr/local/src/inspector
wget https://inspector-agent.amazonaws.com/linux/latest/install
続きを読む