1. 前言
这里主要是总结了下Zabbix Server和MPM使用yum进行高速部署。其更加具体的东西,大家还是看官方文档吧。我们首先把环境搭起来!
2. 环境
3. Zabbix Server部署
3.1 yum环境配置
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
[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-getyum会自己主动的将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 配置页面
4. 配置Zabbix Agent和MPM
4.1 zabbix agent配置
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版本号没有相关文档,简直坑啊!)4.2.3 模板导入
4.2.4 创建监控host
4.2.5 MPM agent配置
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
[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环境进行配置。
chmod o+r /data/mysql_3306/mysql.pid
touch /var/log/zabbix/FromDualMySQLagent.log
chown -R zabbix:zabbix /var/log/zabbix
service zabbix-agent start