IBM cloud上CentOS7.4へZabbix4.2をインストールするメモ

#1.事前設定
※IBM Cloudだからといって特別変わるわけではありません

###1-1.getenforceコマンドを使い現状設定を確認

出力結果は、Enabledの場合以下のとおり変更します。
Disabledの場合、既に無効化されています。

####Config fileのBackup
cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"`


####SElinuxの無効化

以下の通りに変更します。
#####SELINUX=permissive
を
#####SELINUX=disabled
へ変更。

他の部分「SELINUXTYPE」は以下の設定から修正しません。
（SELINUXTYPE=targeted）

※最近(Centos7.x)のOSは、記載を間違うとOSがうまく上がらなくなるため注意。

###再起動
#######reboot

###1-2.時間確認
#######date
Fri May 24 08:47:13 CDT 2019

#######timezone
      Local time: Fri 2019-05-24 08:48:24 CDT
  Universal time: Fri 2019-05-24 13:48:24 UTC
        RTC time: Fri 2019-05-24 13:48:24
       Time zone: America/Chicago (CDT, -0500)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2019-03-10 01:59:59 CST
                  Sun 2019-03-10 03:00:00 CDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2019-11-03 01:59:59 CDT
                  Sun 2019-11-03 01:00:00 CST

###変更
#######timedatectl set-timezone Asia/Tokyo

      Local time: Fri 2019-05-24 22:51:11 JST
  Universal time: Fri 2019-05-24 13:51:11 UTC
        RTC time: Fri 2019-05-24 13:51:11
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a


##2.MySQLの導入準備
yum -y install epel-release
yum -y update

##2-1.remiリポジトリのインストール
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

##2-2.remi PHP7.2の有効化
#####vi /etc/yum.repos.d/remi.repo

[remi]
（途中略）
enabled=0
を、
enabled=1
へ変更。

#####vi /etc/yum.repos.d/remi-php72.repo

[remi-php72]
（途中略）
enabled=0
を、
enabled=1
へ変更


##2-3.MySQLのインストール
###レポジトリの追加
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

###php-mysqlの衝突回避
yum remove php-mysql
yum install php-mysql

###パッケージインストール
yum -y install mysql-community-devel
yum -y install mysql-community-server

###設定修正
8.0より認証方式が変更となり、しかしZABBIXが対応していないため、旧来の認証方式へ変更する(デフォルト認証プラグインの変更)

#######vi /etc/my.cnf

#######default-authentication-plugin=mysql_native_password

を、コメントを外し以下の通りにする

######default-authentication-plugin=mysql_native_password

###MySQLの起動と自動起動設定
systemctl start mysqld
systemctl enable mysqld

###パスワード確認
grep password /var/log/mysqld.log

2019-MM-DDTHH:MM:SSZ 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 4puNlJ_3mo=a


###MySQLアクセス確認
####MySQLへログイン
musql -u root -p

コマンドで確認。先にパスワードを決めないと何もさせてくれないらしい
mysql> status
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

####先に仮パスワードを変更
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '<新パスワード>';

####認証方式の確認

SELECT host,user,plugin FROM mysql.user where user='(UserID)';
+-----------+----------+-----------------------+
| host      | user     | plugin                |
+-----------+----------+-----------------------+
| localhost | (UserID) | caching_sha2_password |
+-----------+----------+-----------------------+
「caching_sha2_password」の場合、うまく認証ができないことが・・・
その場合、以下を実行。
alter user '(UserID)'@'localhost' identified with mysql_native_password by '(パスワード)';

確認。
SELECT host,user,plugin FROM mysql.user 
+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| localhost |(UserID)          | mysql_native_password |
+-----------+------------------+-----------------------+


#3.ZABBIXの導入
###レポジトリインストール
rpm -hivv https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

###パッケージインストール
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get

###ZABBIX用アカウント・DBの作成
mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

create user 'zabbix'@'localhost' identified by '(パスワード)';

GRANT ALL ON zabbix.* TO zabbix@localhost;

cd /usr/share/doc/zabbix-server-mysql-4.2.1/
zcat create.sql.gz | mysql -u zabbix -p zabbix

#4.ZABBIXサーバの設定
vi /etc/zabbix/zabbix_server.conf

以下を変更
####### DBPassword=
を、
DBPassword=＜パスワード＞
に変更する


###Apache httpd 設定を変更

<IfModule mod_php5.c>
を、
<IfModule mod_php7.c>
に変更する。
 
####### php_value date.timezone Europe/Riga
を、
php_value date.timezone Asia/Tokyo
に変更する。

###ZABBIXの起動設定
systemctl start zabbix-server
systemctl enable zabbix-server

###Apache httpd の起動と自動起動設定
systemctl start httpd
systemctl enable httpd

###Zabbix エージェント起動
systemctl start zabbix-agent
systemctl enable zabbix-agent

###Firewall設定
####CentOS 7
firewall-cmd --add-port=10050/tcp --permanent
####CentOS 6 (/etc/sysconfig/iptables)
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT


###エージェント動作確認
zabbix_get -s 127.0.0.1 -k agent.version
結果バージョンが帰ってくれば正常(4.2.1等)

###TCPDUMPでの確認
Agent導入側Hostにて以下を実行

tcpdump port 10050

Firewallにてポートを開けていない場合、あるいはZabbix-Agentが起動していない場合、zabbix-agent.confでのサーバーIP設定がない場合、サーバー側からの通信のみが一方的に表示されます。ホストや専用Firewallでのポート設定やZabbix-agentの稼働を確認しましょう。