MySQL MTOP 를 설치 하여 MySQL 의 운행 성능 을 감시 하 는 튜 토리 얼 을 설치 합 니 다.

10759 단어 MySQL감시 하 다
환경 설명
1.서버 역할
2015129153745577.png (726×101)
2.시스템 환경
CentOS 6.2 x86_64
3.환경 요구
(1),MySQL 5.0 이상       (모니터 시스템 에서 수집 한 데 이 터 를 저장 합 니 다)
(2),Apache 2.2 이상        (웹 서버 실행 서버)
(3)、PHP 5.3 이상                (WEB 인터페이스)
(4)、Python 2                       (2.7 버 전 을 추천 합 니 다.다른 버 전 은 테스트 를 하지 않 고 데이터 수집 과 경보 작업 을 수행 합 니 다)
(5)、MySQLdb for python     (Python MySQL 연결 인터페이스)
2.Python 기초 환경 배치
https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz

# tar xvzf Python-2.7.6.tgz
# cd Python-2.7.6
# ./configure --prefix=/usr/local/python2.7 --enable-shared
# make && make install

# echo '/usr/local/python2.7/lib' >> /etc/ld.so.conf
# /sbin/ldconfig

# mv /usr/bin/python /usr/bin/python_old
# ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python

python 버 전이 너무 높 아서 yum 이 안 되 는 것 을 피하 기 위해 다음 과 같이 수정 해 야 합 니 다.

# vim /usr/bin/yum
...에서  #!/usr/bin/python  으로 변경  #!/usr/bin/python_old
http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz

# tar xvzf distribute-0.6.28.tar.gz
# cd distribute-0.6.28
# python setup.py install

https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz
# tar xvzf MySQLdb1-MySQLdb-1.2.5.tar.gz
# cd MySQLdb1-MySQLdb-1.2.5

# vim site.cfg
mysql_config =/usr/local/mysql/bin/mysql_config
……

# python setup.py build
# python setup.py install

3.my sqlmtop 환경 배치
1.모니터 데이터 베 이 스 를 만 들 고 권한 을 부여 합 니 다.

# mysql -uroot -e "create database mysqlmtop default character set utf8;"
# mysql -uroot -e "grant all privileges on mysqlmtop.* to 'mtop_user'@'%' identified by '123456';"
# mysql -uroot -e "flush privileges;"
2.SQL 폴 더 에 있 는 SQL 파일 가 져 오기(표 구조 와 데이터 파일)

# unzip mysqlmtop_v2.1.zip
# cd mysqlmtop_v2.1
# mysql -uroot mysqlmtop < sql/mysqlmtop.sql
# mysql -uroot mysqlmtop < sql/mysqlmtop_data.sql
3.피 감시 기 에서 권한 수여 계 정 만 들 기

# mysql -uroot -e "grant select,super,process on *.* to 'monitor'@'172.18.35.29' identified by 'monitor';"
# mysql -uroot -e "flush privileges;"
4,mysqlmtop 설정

# cp -a mysqlmtop /usr/local/
# cp -a frontweb /data/web/data/

 
# cd /usr/local/mysqlmtop/
# vim etc/config.ini
2015129154018464.jpg (319×327)

# chmod +x *.py *.sh mtopctl
# ln -s /usr/local/mysqlmtop/mtopctl /usr/local/bin
(메모:dos2unix 명령 을 사용 하여*.py,*.sh,mtopctl 파일 을 포맷 변환 해 야 합 니 다.그렇지 않 으 면 실행 에 실패 합 니 다)
5.MySQL 연결 이 정상 인지 테스트

# cd /usr/local/mysqlmtop && ./test_mysql.py

MySQLDB OK!

6.모니터링 시스템 시작

# mtopctl start
2015129154122888.jpg (410×60)
7.전단 WEB 전시 층 설정

# cd /data/web/data/frontweb/
# chown -R nobody:nogroup /data/web/data/frontweb
# chmod -R 750 /data/web/data/frontweb

# vim application/config/database.php

2015129154153004.jpg (498×215)

# vim /data/web/conf/mysqlmtop.conf

<VirtualHost *:80>
  DocumentRoot /data/web/data/frontweb
  ServerName mysqlmtop.test.com
  DirectoryIndex index.php
  AddDefaultCharset UTF-8
                                                                     
  <LocationMatch "/data/web/.*\.php$">
    Order Deny,Allow
    Deny from All
  </LocationMatch>
                                                                     
  <Directory />
    AllowOverride ALL
  </Directory>
</VirtualHost>

# service httpd graceful

그리고 로 컬 hosts 바 인 딩(172.18.35.29  mysqlmtop.test.com)
통과 하 다.http://mysqlmtop.test.com  접근 가능(초기 권한 수여 계 정:admin  admin)
8.모니터링 항목 설정
관리 센터 를 클릭 하 십시오-->응용 관리 추가 응용
2015129154225845.jpg (1156×477)
관리 센터 클릭->서버 관리 MySQL 서버 추가
2015129154243226.jpg (1164×744)
4.느 린 조회 설정
1.피 감시 서버 에 다음 과 같은 구성 요 소 를 설치 합 니 다.
http://cpan.metacpan.org/authors/id/T/TI/TIMB/DBI-1.628.tar.gz

# tar xvzsf DBI-1.628.tar.gz
# cd DBI-1.628
# perl Makefile.PL
# make && make install
http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.024.tar.gz

# tar xvzf DBD-mysql-4.024.tar.gz
# cd DBD-mysql-4.024
# perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql
# make && make install
http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-1.972.tar.gz

# tar xvzf IO-Socket-SSL-1.972.tar.gz
# cd IO-Socket-SSL-1.972
# perl Makefile.PL
# make && make install
http://www.percona.com/redir/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.7.tar.gz

# tar xvzf percona-toolkit-2.2.7.tar.gz
# cd percona-toolkit-2.2.7
# perl Makefile.PL
# make && make install
2,MySQL 자체 의 느 린 조회 기능 을 엽 니 다

slow_query_log = 1
slow_query_log_file = /data/dbdata/slow_query.log
long_query_time = 1
3.피 감시 서버(10.160.2.2.14)에 다음 과 같은 crontab 항목 을 추가 합 니 다.

00 * * * * /usr/bin/pt-query-digest --user=mtop_user --password=123456 --port=3306 --review h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_4 --history h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_history_4 --no-report --limit=0% /data/dbdata/slow_query.log >/dev/null 2>&1
4.피 감시 서버(10.160.22.47)에 다음 과 같은 crontab 항목 을 추가 합 니 다.

00 * * * * /usr/bin/pt-query-digest --user=mtop_user --password=123456 --port=3306 --review h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_5 --history h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_history_5 --no-report --limit=0% /data/dbdata/slow_query.log >/dev/null 2>&1
이상 데이터 시트 my sqlslow_query_review、mysql_slow_query_review_history 의 접 두 사 는 호스트 ID 입 니 다.그림 참조:
2015129154414920.jpg (1259×469)
5.감 시 된 서버 를 위 한 느 린 조회 시작
2015129154437909.jpg (825×591)
6.효과 전시
2015129154518166.jpg (1372×669)
3.도구 구성 요소 설정
1.피 감시 서버(172.18.35.29)에 다음 과 같은 crontab 항목 을 추가 합 니 다.

*/30 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_bigtable.py >/dev/null 2>&1
*/1 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_hit_rate.py >/dev/null 2>&1
*/1 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_connect.py >/dev/null 2>&1
2.효과 전시
2015129154605413.jpg (1004×341)
4.자원 모니터링 설정
1.피 감시 서버 의 설정
NET-SNMP 서비스 설치(주의 버 전):
ftp://ftp.fi.freebsd.org/pub/FreeBSD/ports/distfiles/net-snmp-5.3.2.tar.gz

# tar xvzf net-snmp-5.3.2.tar.gz
# cd net-snmp-5.3.2
# ./configure --prefix=/usr/local/snmp \
--enable-mfd-rewrites \
--with-default-snmp-version="2" \
--with-sys-contact="[email protected]" \
--with-sys-location="China" \
--with-logfile="/var/log/snmpd.log" \
--with-persistent-directory="/var/net-snmp"

# make && make install
# cp EXAMPLE.conf /usr/local/snmp/share/snmp/snmpd.conf

# vim /usr/local/snmp/share/snmp/snmpd.conf
com2sec notConfigUser 172.18.35.29   mysqlmtop

group notConfigGroup v1  notConfigUser
group notConfigGroup v2c notConfigUser
group notConfigGroup usm notConfigUser

view all  included .1                80
access notConfigGroup ""   any    noauth  exact all none none
......

서비스 시작:

# /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/share/snmp/snmpd.conf

2.서버 설정 모니터링
NET-SNMP 서비스 설치:

# tar xvzf net-snmp-5.3.2.tar.gz
# cd net-snmp-5.3.2
# ./configure --prefix=/usr/local/snmp \
--enable-mfd-rewrites \
--with-default-snmp-version="2" \
--with-sys-contact="[email protected]" \
--with-sys-location="China" \
--with-logfile="/var/log/snmpd.log" \
--with-persistent-directory="/var/net-snmp"

# make && make install

# cd /usr/local/mysqlmtop
# ln -s /usr/local/snmp/bin/snmpwalk /usr/bin/snmpwalk
# ln -s /usr/local/snmp/bin/snmpdf /usr/bin/snmpdf

# vim /usr/local/mysqlmtop/check_linux_resource.sh
host="172.18.35.29"
port="3306"
user="mtop_user"
password="123456"
dbname="mysqlmtop"
......

# vim /usr/local/mysqlmtop/etc/config.ini
[linux_server]
server_ip="10.160.22.14|10.160.22.47"

모니터링 서비스 다시 시작:

# mtopctl stop && mtopctl start
문제 수정(그렇지 않 으 면 메모리 정 보 를 가 져 올 수 없습니다):

# vim /usr/local/mysqlmtop/check_linux_resource.sh
totalmem=`/usr/bin/snmpdf -v1 -c mysqlmtop ${ip} | awk '/Real Memory/ {print $3}'`
usedmem=`/usr/bin/snmpdf -v1 -c mysqlmtop ${ip} | awk '/Real Memory/ {print $4}'`
crontab 내용 추가:

*/1 * * * * cd /usr/local/mysqlmtop; ./check_linux_resource.py >/dev/null 2>&1
효과 전시
2015129154803297.jpg (1258×332)

좋은 웹페이지 즐겨찾기