#ZABBIX4.0構築手順
ZABBIX4.0LTSを構築する際の自分用忘備録。
間違えているところあるかも。
cent7.5
#事前準備
#1.DNSサーバの設定
手動で設定するため、DHCPでのDNSサーバ設定を無効に。
nmcli con mod enp0s3 ipv4.ignore-auto-dns yes
DNSサーバを設定し、NetworkManager を再起動
nmcli con mod enp0s3 ipv4.dns 8.8.8.8
systemctl restart NetworkManager
DNSサーバが設定されていることを確認
cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8'
★名前解決確認
FQDNへping or nslookupを実施し、DNSサーバへ正常に設定されているか確認
#2.ホスト名の設定
ホスト名「XXX-SV」を設定し、hostnamed を再起動
nmcli general hostname `XXX-SV`
systemctl restart systemd-hostnamed
★hostsファイルの確認
cat /etc/hosts
#3.基本パッケージのインストール
yum アップデート
yum -y update
#4.不要サービスの停止
systemctl disable abrt-ccpp
systemctl disable abrt-oops
systemctl disable abrt-vmcore
systemctl disable abrt-xorg
systemctl disable abrtd
systemctl disable avahi-daemon
systemctl disable mdmonitor
systemctl disable dmraid-activation
#5.SELinux無効設定
vim /etc/sysconfig/selinux
SELINUX=enforcing
↓
SELINUX=disabled
OSを再起動
shutdown -r now
#6.firewalld設定
初期設定では publicゾーンに ssh のみ許可
firewall-cmd --list-all
public (default, active)
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
下記を許可する。
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --add-port=23/tcp --permanent
firewall-cmd --add-port=161/tcp --permanent
firewall-cmd --add-port=162/tcp --permanent
設定の読み込み
firewall-cmd --reload
★設定を確認
firewall-cmd --list-ports --zone=public
-----(以下のような表示があればOK)-----
443/tcp 80/tcp etc..
#7.Chrony設定 (NTP)
初回は手動で時間合わせ
ntpdate ntp.nict.jp
コンフィグをバックアップ
mv -i /etc/chrony.conf /etc/chrony.conf.org
コンフィグを作成
vim /etc/chrony.conf
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
起動
systemctl restart chronyd
自動起動設定
systemctl enable chronyd
systemctl status
動確
chronyc sources -v
★確認
date
現在時刻が表示されてば問題なし。
#8.yum リポジトリの追加
MySQL
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
EPEL(リポジトリ拡張用)
yum -y install epel-release
yum -y update
Remi(php7.2用)
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
★確認 下記コマンドでリポジトリ追加されていれば問題なし
yum repolist all
#9.各種ミドルウェアインストール
Apache httpd(2.4.6-80)
yum -y install httpd-devel
yum -y install mod_ssl
PHP(7.2.5-1)
yum -y install php
yum -y install php-devel
yum -y install php-pdo
yum -y install php-mysqlnd
yum -y install php-mbstring
yum -y install php-gd
yum -y install php-pear
yum -y install php-pecl-apc-devel
yum -y install zlib-devel
MySQL(8.0.11-1)
yum -y install mysql-community-devel
yum -y install mysql-community-server
#10.Apache httpd の設定
不要なコンフィグの削除
mv -i /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.conf.org
mv -i /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/userdir.conf.org
mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
コンフィグバックアップ
mv -i /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
コンフィグ作成
vim /etc/httpd/conf/httpd.conf
httpdの起動
systemctl start httpd
自動起動設定
systemctl enable httpd
★確認 httpdが起動しているか
service httpd status
or
systemctl status httpd
#11.証明書作成(HTTPS)
一旦なしの方向で
#12.Apache HTTPS(SSL/TLS)の設定
一旦なしの方向で
#13.PHPの設定
エラーログの出力先を作成
mkdir /var/log/php
chown apache /var/log/php
chmod 755 /var/log/php
PHPの設定
vim /etc/php.ini
expose_php = On
↓
expose_php = Off
;date.timezone =
↓
date.timezone = 'Asia/Tokyo'
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
↓
error_reporting = E_ALL & ~E_NOTICE
;error_log = php_errors.log
↓
error_log = "/var/log/php/php_errors.log"
★確認方法
プロンプトで
php -v
#14.MySQL 8.0 の設定
ログの出力先を作成
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql
コンフィグバックアップ
mv -i /etc/my.cnf /etc/my.cnf.org
コンフィグを作成
vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1.0
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log_timestamps=SYSTEM
skip-character-set-client-handshake
character-set-server=utf8mb4
explicit_defaults_for_timestamp=ON
起動
systemctl start mysqld
自動起動設定
systemctl enable mysqld
★確認方法
mysqlログイン
プロセス確認
#15.ログローテーション設定
設定ファイルのバックアップ用ディレクトリを作成
mkdir /etc/logrotate.off
Apacheログのローテーション設定
設定ファイルをバックアップ
mv -i /etc/logrotate.d/httpd /etc/logrotate.off/
設定ファイルを作成
vim /etc/logrotate.d/httpd
"/var/log/httpd/*log /var/log/php/*log {
daily
missingok
dateext
rotate 60
create 644 apache apache
sharedscripts
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}"
★確認方法
プロセスチェック
logrotate -dv /etc/logrotate.d/httpd
reading config file /etc/logrotate.d/httpd
Handling 1 logs
rotating pattern: /var/log/httpd/*log /var/log/php/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
#16.MySQLログのローテーション設定
設定ファイルをバックアップ
mv -i /etc/logrotate.d/mysql /etc/logrotate.off/
設定ファイルを作成
vim /etc/logrotate.d/mysql
/var/log/mysql/*log {
daily
missingok
dateext
rotate 60
sharedscripts
postrotate
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin --defaults-extra-file=/root/.my.cnf ping &>/dev/null
then
/usr/bin/mysqladmin --defaults-extra-file=/root/.my.cnf flush-logs
fi
endscript
}
MySQL の root ユーザのパスワードファイルを作成
vim /root/.my.cnf
[mysqladmin]
user=root
password="<パスワード>"
パスワードを書いているのでパーミッションを変更
chown root:root /root/.my.cnf
chmod 600 /root/.my.cnf
★確認
logrotate -dv /etc/logrotate.d/mysql
"reading config file /etc/logrotate.d/mysql
Handling 1 logs
rotating pattern: /var/log/mysql/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
プロセスチェック
#17.自動起動の設定確認
systemctl list-unit-files | grep -e httpd -e mysqld -e memcached -e chronyd
chronyd.service enabled
httpd.service enabled
memcached.service enabled
memcached@.service disabled
mysqld.service enabled
mysqld@.service disabled
OSを再起動して、各種サービスが起動している事を確認
shutdown -r now
ps aux | grep -e httpd -e mysqld -e memcached -e chronyd
以上!