YUM Repository 로는 Enterprise 버전이 없고, RPM으로 받아서 설치 하려고 하면 의존성 문제로 인하여
TAR파일을 받아서 설치를 진행 하는게 가장 편함.
설치 환경은 다음과 같음.
MySQL Server : Oracle linux5 (64bit)
Enterprise Monitor Server : Windows 10 (64bit)
0. Software Download
Oracle Software Delivery Cloud 사이트에서 Mysql을 검색하여 다음과 같은 파일을 다운로드 한다.
( http://www.mysql.com/trials/ | https://edelivery.oracle.com/osdc/faces/SearchSoftware )
MySQL Enterprise Database 5.7.14
MySQL을 모니터링 하기 위한 MySQL Enterprise Monitor 3.2.4
MySQL Enterprise Monitor는 서버에 agent를 설치 하는 방법과 Agentless방식 두 가지를 지원한다.
Agent는 오로지 O/S상의 성능 정보를 수집하는 목적이외에는 없다.
1. MySQL Enterprise Database 5.7.14 설치
설치 가이드 ( http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html )
다운 받은 V776488-01.zip 파일의 압축을 풀면 mysql-advanced-5.7.14-linux-glibc2.5-x86_64.tar.gz 파일이 나온다.
해당 파일을 /usr/local 폴더 밑으로 이동 시킨 후 다음의 순서로 진행
> 압축해제
[root@MySQLEnt5 TAR]# unzip V776488-01.zip [root@MySQLEnt5 TAR]# mv mysql-advanced-5.7.14-linux-glibc2.5-x86_64.tar.gz /usr/local/.
> libaio 설치(확인)
[root@MySQLEnt5 /]# yum install libaio Loaded plugins: rhnplugin, security This system is not registered with ULN. You can use up2date --register to register. ULN support will be disabled. Setting up Install Process Package libaio-0.3.106-5.x86_64 already installed and latest version Package libaio-0.3.106-5.i386 already installed and latest version Nothing to do
> 설치 진행
[root@MySQLEnt5 /]# groupadd mysql [root@MySQLEnt5 /]# useradd -r -g mysql -s /bin/false mysql [root@MySQLEnt5 /]# cd /usr/local [root@MySQLEnt5 local]# tar -xvzf mysql-advanced-5.7.14-linux-glibc2.5-x86_64.tar.gz [root@MySQLEnt5 local]# ln -s /usr/local/mysql-advanced-5.7.14-linux-glibc2.5-x86_64 mysql [root@MySQLEnt5 local]# cd mysql [root@MySQLEnt5 mysql]# mkdir mysql-files [root@MySQLEnt5 mysql]# chmod 750 mysql-files [root@MySQLEnt5 mysql]# chown -R mysql . [root@MySQLEnt5 mysql]# chgrp -R mysql . [root@MySQLEnt5 mysql]# bin/mysqld --initialize --user=mysql 2016-08-24T07:45:12.183507Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-08-24T07:45:12.491398Z 0 [Warning] InnoDB: New log files created, LSN=45790 2016-08-24T07:45:12.554645Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2016-08-24T07:45:12.560873Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b06ec884-69ce-11e6-8a40-08002749e37a. 2016-08-24T07:45:12.561900Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2016-08-24T07:45:14.061891Z 0 [Warning] CA certificate ca.pem is self signed. 2016-08-24T07:45:14.392011Z 1 [Note] A temporary password is generated for root@localhost: wfSo4&/,xnF* [root@MySQLEnt5 mysql]# bin/mysql_ssl_rsa_setup [root@MySQLEnt5 mysql]# chown -R root . [root@MySQLEnt5 mysql]# chown -R mysql data mysql-files [root@MySQLEnt5 mysql]# bin/mysqld_safe --user=mysql & [1] 22041 [root@MySQLEnt5 mysql]# 2016-08-24T07:48:25.126508Z mysqld_safe Logging to '/usr/local/mysql/data/MySQLEnt5.7.14.err'. 2016-08-24T07:48:25.207929Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
[root@MySQLEnt5 mysql]# ps -ef | grep mysql root 22041 21703 0 16:48 pts/1 00:00:00 /bin/sh bin/mysqld_safe --user=mysql mysql 22125 22041 4 16:48 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/MySQLEnt5.7.14.err --pid-file=/usr/local/mysql/data/MySQLEnt5.7.14.pid root 22154 21703 0 16:48 pts/1 00:00:00 grep mysql [root@MySQLEnt5 mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
> 기본 설치 정보
mysql root 유저의 기본 패스워드는 wfSo4&/,xnF* 이며, 기본 설치 디렉토리 (/usr/local/mysql) 내용
> root 패스워드 변경
[root@MySQLEnt5 mysql]# cd /usr/local/mysql/bin [root@MySQLEnt5 bin]# ./mysql -u root -p Enter password: <-- 임시 패스워드 입력 mysql> alter user 'root'@'localhost' identified by 'root1122' ; Query OK, 0 rows affected (0.01 sec) mysql> commit ; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye [root@MySQLEnt5 bin]# ./mysql -u root -p Enter password: <-- 변경한 패스워드 입력 mysql> show databases ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
> 옵션 파일 생성
[root@MySQLEnt5 data]# vi /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data explicit_defaults_for_timestamp = 1
> root 유저의 원격 접속 허용
[root@MySQLEnt5 ~]# mysql -uroot -p Enter password: <--- root1122 입력 mysql> grant all privileges on *.* to 'root'@'%' identified by 'root1122' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> commit ; Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges ; Query OK, 0 rows affected (0.00 sec)
|
2. MySQL Enterprise Monitor 설치
MySQL Enterprise Monitor 관련 동영상 (http://www.mysql.com/products/enterprise/demo.html#)
Monitor Server Manager를 설치 하게 되면 클라이언트에서 웹 브라우저를 이용하여 접속 할 수 있게 하기 위한 웹 서버와 성능 정보를 저장하기 위한 Repository MySQL이 설치 된다.
Repository는 자체적으로 가지고 있는 MySQL을 사용하여도 되고, 제공해 주는 MySQL을 사용하여도 된다.
기본적으로 설치 시에 입력해 주는 정보가 많으므로, 메모를 해 놓는게 좋다.
> 인스톨 시에 입력하였던 정보들 Repository Infomation : Repository Username : service_manager Password : service_manager Dataport : 13306 DB Name : mem |
설치가 완료 된 후에는 추가 설정을 해 주기 위하여 웹 브라우저가 실행이 되는데 ,
웹으로 접속 시에 사용할 유저를 설정해 주면 된다. (https://localhost:18443/)
설치 완료 후 접속 URL : https://localhost:18443/
> 웹 접속 유저 설정 Manager Role 유저 : manager-role / manager-role Agent Role 유저 : agent-role / agent-role |
정상적으로 설치 가 되면 다음과 같이 두 개의 윈도우 서비스가 등록이 된다.
3. 모니터링 시작
Oracle Enterprise Monitor서버에 접속 (https://localhost:18443/ )
위에서 만들어준 유저로 접속. ( enterprise-role / enterprise-role )
3-1 . 모니터링 MySQL Instance추가
(Dashboards > MySQL Instances > Add MySQL Instance)
Monitor From은 repository로 사용할 MySQL 선택. (여기서는 자동으로 설치 된 MySQL서버를 선택해 줌.)
Connect Using : TCP/IP
Instance Address / Port : 모니터링 대상 MySQL정보 입력
Admin User/Pass : 모니터링 대상 MySQL Admin유저 정보 입력
Auto-Create Less Privileged Users : "No" 선택
모니터링 대상이 많을 경우 그룹을 생성해서 관리해 줄 수 있다.
모니터링도 기본적으로 그룹별로 가능하다.
3-2 모니터링
실시간 모니터링은 Dashboards에서 모니터링이 가능하고, 사후 분석은 reports & Graphs에서 가능
Events는 발생한 Alert 이력을 확인 할 수 있으며, Query Analyzer는 분석 기간 동안의 수행된 SQL정보를 확인 할 수 있음.
Dashboards
Events
Query Analyzer
Reports & Graphs
- All Timeseries Graphs
- Database File I/O
- Lock Waits
- Processes
- InnoDB Buffer pool Usage