4. Amazon Linux
Amazon Linux 2
Amazon Linux 2 for ARM 用のZabbixリポジトリを公開しています。
https://s3-ap-northeast-
1.amazonaws.com/amazon.zabbix/amzn1/4.2/$basearch
amzn1 or amzn2
3.0 3.2 3.4 4.0 4.2
2019/04/184
Zabbixリポジトリ for AWS
14. DB起動
Amazon Linux/Amazon Linux 2 の標準パッケージに合わせ
Amazon LinuxではMySQL
Amazon Linux 2 ではMariaDBを起動しています。
2019/04/1814
スクリプト解説
#MySql起動
if [ ${amazonlinux} = "amzn1" ] ; then
service mysqld start
else
systemctl start mariadb.service
fi
15. DB-root
DBのrootパスワードにはランダム文字列を生成して設定しています。
2019/04/1815
スクリプト解説
#MySql root ランダムパスワード生成
vMySQLRootPasswd="$(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 16 | tee -a
/home/ec2-user/.mysql.secrets)"
#MySql_secure_installation
mysql -u root --password= -e "
UPDATE mysql.user SET Password=PASSWORD('${vMySQLRootPasswd}') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1',
'::1');
DELETE FROM mysql.db WHERE Db='test' OR Db='test_%';
FLUSH PRIVILEGES;"
16. DB-root
DBのrootパスワードにはランダム文字列を生成して設定しています。
パスワードが必要な場合は不可視ファイル/home/ec2-user/.mysql.secretsを
確認してください。
2019/04/1816
スクリプト解説
#MySql root ランダムパスワード生成
vMySQLRootPasswd="$(cat /dev/urandom | tr -dc '[:alnum:]' | head -c 16 | tee -a
/home/ec2-user/.mysql.secrets)"
#MySql_secure_installation
mysql -u root --password= -e "
UPDATE mysql.user SET Password=PASSWORD('${vMySQLRootPasswd}') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1',
'::1');
DELETE FROM mysql.db WHERE Db='test' OR Db='test_%';
FLUSH PRIVILEGES;"
17. DBチューニング
history テーブルおよびeventsテーブルに圧縮設定を行っています。
2019/04/1817
スクリプト解説
echo "ALTER TABLE history ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ALTER TABLE
history_log ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ALTER TABLE history_str
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ALTER TABLE history_text
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ALTER TABLE history_uint
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; ALTER TABLE events ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;" > /tmp/ALTERTABLE.sql
mysql --defaults-extra-file=/home/ec2-user/my.cnf-zabbix < /tmp/ALTERTABLE.sql
18. psk暗号化が指定された場合、ランダム文字列を生成して登録しています。
構築後に/etc/zabbix/tls/.zabbix_agentd.pskを確認してWEB-GUIに登録し
てください。
2019/04/1818
スクリプト解説
#psk設定
if [ ${encryption} = "psk" ] ; then
sed -i -e "s/# TLSConnect=unencrypted/TLSConnect=psk/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSAccept=unencrypted/TLSAccept=psk/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSPSKIdentity=/TLSPSKIdentity=${pskid}/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSPSKFile=/TLSPSKFile=/etc/zabbix/tls/.zabbix_proxy.psk/g"
/etc/zabbix/zabbix_agentd.conf
mkdir /etc/zabbix/tls
openssl rand -hex 128 > /etc/zabbix/tls/.zabbix_agentd.psk
chown zabbix.zabbix /etc/zabbix/tls/.zabbix_agentd.psk
chmod 400 /etc/zabbix/tls/.zabbix_agentd.psk
fi
19. cert暗号化の場合は必要なファイルをwgetでダウンロードしてきます
ので、Serverがアクセス可能な場所にファイルを置いておいてくだ
さい。
2019/04/1819
スクリプト解説
#cert設定
if [ ${encryption} = "cert" ] ; then
sed -i -e "s/# TLSConnect=unencrypted/TLSConnect=cert/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSAccept=unencrypted/TLSAccept=cert/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSCAFile=/TLSCAFile=/etc/zabbix/tls/zabbix_ca_file/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSCertFile=/TLSCertFile=/etc/zabbix/tls/zabbix.crt/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/# TLSAccept=unencrypted/TLSKeyFile=/etc/zabbix/tls/zabbix.key/g" /etc/zabbix/zabbix_agentd.conf
mkdir /etc/zabbix/tls
cd /etc/zabbix/tls
wget -O zabbix_ca_file ${cafile}
wget -O zabbix.crt ${certfle}
wget -O zabbix.key${keyfile}
chown zabbix.zabbix /etc/zabbix/tls/*
chmod 400 /etc/zabbix/tls/*
fi