1. 前言


        zabbix作为开源免费的监控软件。其易于管理配置和可视化的视图、历史数据的定期维护、模板化的监控项目越来越受到广大IT运维人员的喜爱。

这里主要是总结了下Zabbix Server和MPM使用yum进行高速部署。其更加具体的东西,大家还是看官方文档吧。我们首先把环境搭起来!


2. 环境


1)Zabbix Server




Os:Redhat6.5 i686(vmware)


        ipaddr:192.168.8.3


        hostname:linux-zabbix


        MySQL :5.6.23


        MEM:1G




2)监控端




        Os:CentOS 6.4 x64(vmware)



        ipaddr:192.168.8.5


        hostname:oneproxy-vm


        MEM:1G


3. Zabbix Server部署

3.1 yum环境配置


这里的yum源使用的是163的CentOS6.6和zabbix官网的源。


因为我的server安装的是rehat。所以首先要把redhat的yum卸载掉。安装centOS的yun软件。


3.1.1 下载centos yum软件



wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-40.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm


3.1.2 卸载redhat的yum包



rpm -qa|grep -i yum|xargs rpm -e --nodeps


3.1.3 安装centOS的yum包



rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-3.2.29-40.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm


3.1.4 配置163的CentOS6.6的yum



[root@linux-zabbix yum.repos.d]# cd /etc/yum.repos.d
[root@linux-zabbix yum.repos.d]# cat CentOS6-Base-163.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-6.6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6.6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-6.6 - Updates - 163.com
baseurl=http://mirrors.163.com/centos/6.6/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-6.6 - Extras - 163.com
baseurl=http://mirrors.163.com/centos/6.6/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?
release=6.6&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6.6 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/6.6/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-6.6 - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/6.6/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6.6&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6


3.1.5 配置zabbix的yum源



wget http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-release-2.4-1.el6.noarch.rpm
rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
[root@linux-zabbix yum.repos.d]# cat zabbix.repo 
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX


[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1


3.2 Zabbix Server安装


3.2.1 安装mysql数据库



yum remove mysql-libs-5.1.71-1.el6.i686
rpm -ivh MySQL-server-advanced-5.6.23-1.el6.i686.rpm
rpm -ivh MySQL-client-advanced-5.6.23-1.el6.i686.rpm
rpm -ivh MySQL-shared-compat-advanced-5.6.23-1.el6.i686.rpm MySQL-shared-advanced-5.6.23-1.el6.i686.rpm MySQL-devel-advanced-5.6.23-1.el6.i686.rpm


3.2.2 配置mysql


配置文件/etc/my.cnf



[root@linux-zabbix etc]# cat my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock

#The MySQL Server
#########Basic######
[mysqld]
server-id = 1
port = 3306
user = mysql
basedir = /usr/
datadir = /var/lib/mysql
tmpdir = /var/lib/mysql/tmp
socket = /tmp/mysql.sock
skip-external-locking
skip-name-resolve
default-storage-engine = INNODB
character-set-server = utf8
wait_timeout = 100
connect_timeout = 20
interactive_timeout = 100
back_log = 500
event_scheduler = on
explicit_defaults_for_timestamp
#skip-grant-tables
#############binlog##############
log-bin = /var/lib/mysql/logs/mysql-bin
binlog_format = row
max_binlog_size = 128M
binlog_cache_size = 4M
expire_logs_days = 5
##############Slow log####################
slow_query_log = 1
slow_query_log_file = /var/lib/mysql/logs/mysql.slow
long_query_time = 2
###############Per_Thread_Buffers########################
max_connections = 1024
max_user_connections = 1000
max_connect_errors = 10000
key_buffer_size = 32M
max_allowed_packet = 128M
table_open_cache = 3096
table_definition_cache = 4096
sort_buffer_size = 512K
read_buffer_size = 512K
read_rnd_buffer_size = 512K
join_buffer_size = 512K
tmp_table_size = 16M
max_heap_table_size = 16M
query_cache_type = 0
query_cache_size = 0
bulk_insert_buffer_size = 16M
thread_cache_size = 64
thread_stack = 256K
################InnoDB#########################
innodb_data_home_dir = /var/lib/mysql
innodb_autoinc_lock_mode = 2
innodb_log_group_home_dir = /var/lib/mysql/logs
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 256M
innodb_buffer_pool_instances = 1
innodb_log_file_size = 64M
innodb_log_buffer_size = 4M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 10
innodb_sync_spin_loops = 40
innodb_max_dirty_pages_pct = 90
innodb_support_xa = 1
innodb_thread_concurrency = 0
innodb_thread_sleep_delay = 500
innodb_file_io_threads = 4
innodb_concurrency_tickets = 1000
log_bin_trust_function_creators = 1
innodb_flush_method = O_DIRECT
innodb_file_per_table
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_io_capacity = 2000
innodb_file_format = Barracuda
innodb_purge_threads = 1
innodb_purge_batch_size = 32
innodb_old_blocks_pct = 75
innodb_change_buffering = all
transaction_isolation = READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 64M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 256K
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit=28192

[mysql]
host=localhost
user=zabbix
password=zabbix
socket=/tmp/mysql.sock

[mysqladmin]
host=localhost
user=zabbix
password=zabbix
socket=/tmp/mysql.sock

创建文件夹


mkdir -p /var/lib/mysql/tmp
mkdir -p /var/lib/mysql/logs
chown -R mysql:mysql /var/lib/mysql

初始化mysql


mysql_install_db --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql/

启动数据库后,创建zabbix数据库。设置rootpassword


service mysql start
mysql> create database zabbix default charset utf8;
mysql> grant all on *.* to 'root'@'localhost' identified by '123456';
mysql> grant all on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;


3.2.3 安装zabbix



yum install zabbix-server-mysql zabbix-web-mysql
yum install zabbix-get

yum会自己主动的将apache和php安装配置好。



3.2.4 初始化zabbix数据库



cd /usr/share/doc/zabbix-server-mysql-2.4.5/create
[root@linux-zabbix create]# mysql -p123456 -uroot zabbix < schema.sql
[root@linux-zabbix create]# mysql -p123456 -uroot zabbix < images.sql
[root@linux-zabbix create]# mysql -p123456 -uroot zabbix < data.sql


3.2.5 改动zabbix server配置文件



cat /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=123456


3.2.6 改动php配置文件



php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
date.timezone = PRC


3.2.7 启动服务



service zabbix-server start
servivce httpd start


3.2.8 配置页面


打开 http://192.168.8.3/zabbix 后,配置相关选项


安装要求检查



Zabbix Server和MPM(monitor for mysql)的高速部署_linux



数据库配置


Zabbix Server和MPM(monitor for mysql)的高速部署_perl_02




zabbix-server


Zabbix Server和MPM(monitor for mysql)的高速部署_mysql_03




安装预览


Zabbix Server和MPM(monitor for mysql)的高速部署_php_04




完毕后,能够使用默认管理员用户admin/zabbix进行登录


Zabbix Server和MPM(monitor for mysql)的高速部署_mysql_05




4. 配置Zabbix Agent和MPM

4.1 zabbix agent配置


yum的配置上一部分已经说了,直接安装



yum install zabbix-agent
yum install zabbix-sender

配置/etc/zabbix/zabbix_agentd.conf


Server=192.168.8.3
ServerActive=192.168.8.3
Hostname=oneproxy-vm


4.2 MPM安装配置

4.2.1 安装依赖包



yum install perl-File-Which perl-libwww-perl perl-Digest-SHA perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay




4.2.2 软件介绍

        到官网http://www.fromdual.com/ 下载MPM的相关版本号。这里我使用的是mysql_performance_monitor-0.9.3.tar.gz。(PS:最新的0.10版本号没有相关文档,简直坑啊!)

解压缩软件包后,会发现有两个文件mysql_performance_monitor_agent-0.9.3.tar.gz和mysql_performance_monitor_templates-0.9.3.tar.gz。当中mysql_performance_monitor_agent-0.9.3.tar.gz是放在监控机器上的配置信息。mysql_performance_monitor_templates-0.9.3.tar.gz则是要让我们导入到zabbix server的模板数据。




4.2.3 模板导入


登录到我们的zabbix server服务器上,通过Configuration-->Templates-->Import进行模板导入


Zabbix Server和MPM(monitor for mysql)的高速部署_perl_06


将mysql_performance_monitor_templates-0.9.3.tar.gz解压缩后Template_FromDual.MySQL.mpm.xml是必须导入的,我们优先导入。其它的大家依据需求进行导入。我这里是将全部模板导入了。




4.2.4 创建监控host


通过Configuration-->Host groups创建一个用户组。我这里创建名称为​​mpm​​的用户组。


Zabbix Server和MPM(monitor for mysql)的高速部署_php_07




通过Configuration-->Hosts创建一个用户,将其增加到mpm用户组中。关联的Template使用我们导入的。




Zabbix Server和MPM(monitor for mysql)的高速部署_mysql_08




关联Template


Zabbix Server和MPM(monitor for mysql)的高速部署_mysql_09






ok,我们的server端就配置完成了。




4.2.5 MPM agent配置


解压缩我们的agent软件包mysql_performance_monitor_agent-0.9.3.tar.gz。将其放到/opt文件夹下



mv mysql_performance_monitor_agent-0.9.3 /opt/mysql_performance_monitor_agent
cd /opt/mysql_performance_monitor_agent/etc
cp FromDualMySQLagent.conf.template /etc/zabbix/FromDualMySQLagent.conf
mkdir -p /var/log/zabbix /var/log/zabbix/cache
chown -R zabbix: /var/log/zabbix /var/log/zabbix/cache


编辑/etc/zabbix/zabbix-agent.conf。加入


UserParameter=FromDual.MySQL.check,/opt/mysql_performance_monitor_agent/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf


改动MPM配置文件



[root@oneproxy-vm zabbix]# cat /etc/zabbix/FromDualMySQLagent.conf
[default]

# Type of section:
# mysqld for a normal MySQL database
# ndbd for a MySQL cluster
Type = mysqld

# Debug levels are:
# 1 is logging only errors
# 2 is logging errors and warnings (this is the default)
# 3 logs some informations messages as well
# 4 logs everything (for debugging purposes only)

Debug = 2
LogFile = /var/log/zabbix/FromDualMySQLagent.log
# Directory where the Cache files should be written to:
CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache

# If you agent is not located in the same time zone as your server
# For US something like -6.0 to our MaaS Server
# For Asia something like +7.0 to our MaaS Server
# TimeShift = +0.0

# Information for MySQL connections:
Username = root
Password = 123456
MysqlHost = 127.0.0.1
MysqlPort = 3306

# Zabbix Server IP address
ZabbixServer = 192.168.8.3
</pre><pre name="code" class="html"># If section is disabled
Disabled = false


# Possible modules for databases are:
# process mysql myisam aria innodb pbxt ndb master slave drbd galera memcache
# Possible modules for servers are:
# mpm server
# Usual modules are
Modules = process mysql myisam innodb
[oneproxy-vm] # This MUST match Hostname in Zabbix!

Type = mysqld
Username = root
Password = 123456
MysqlHost = 127.0.0.1
MysqlPort = 3306
Modules = process mysql myisam innodb
PidFile = /data/mysql_3306/mysql.pid


当中default字段是默认的,oneproxy-vm字段必须与zabbix-server中配置的hosts名称相等。

其它的依据自己的本地mysql环境进行配置。


给予zabbix对pid文件的读权限和MPM日志的权限



chmod o+r /data/mysql_3306/mysql.pid
touch /var/log/zabbix/FromDualMySQLagent.log
chown -R zabbix:zabbix /var/log/zabbix


启动zabbix-agent就可以



service zabbix-agent start