环境说明

主机名角色IP地址zabbix.contoso.comzabbix server192.168.49.129zabbix-db.contoso.commysql server192.168.49.133

一、环境准备

以其中一台为例,两台都需要完成以下准备工作:

#关闭iptables[root@zabbix~]#iptables-L-nChainINPUT(policyACCEPT)targetprotoptsourcedestinationChainFORWARD(policyACCEPT)targetprotoptsourcedestinationChainOUTPUT(policyACCEPT)targetprotoptsourcedestination#禁用selinux[root@zabbix~]#getenforceDisabled#添加时间同步定时任务[root@zabbix~]#crontab-l0****/usr/sbin/ntpdate210.72.145.4464.147.116.229time.nist.gov#修改主机名[root@zabbix~]#hostnamezabbix.contoso.com#安装必要的依赖包yum-yinstallgccgcc-c++autoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrbkrb5-devellibidnlibidn-developensslopenssl-devel

二、编译安装zabbix

以下操作在zabbix server(zabbix.contoso.com)上完成:

mkdir-p/opt/toolscd/opt/tools/wgethttp://prdownloads.sourceforge.net/zabbix/zabbix-2.4.8.tar.gz?downloadtar-zxfzabbix-2.4.8.tar.gzcdzabbix-2.4.8./configure--prefix=/usr/local/zabbix--enable-server--enable-agent--with-net-snmp--with-mysql--with-libcurl

如果编译中出现下面的错误:

1)configure: error: MySQL library not found

解决方法:yum install mysql-devel -y

2)configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决方法:yum install net-snmp-devel -y

另外,编译成功的标志是,结尾出现下面的字样:

************************************************************Nowrun'makeinstall'****ThankyouforusingZabbix!**<http://www.zabbix.com>************************************************************

最后,使用make install进行安装:

make&&makeinstall

三、安装MySQL数据库

以下操作在MySQL server(zabbix-db.contoso.com)上进行:

1、安装MySQL 5.6.16

yum-yinstallmakegcc-c++cmakebison-develncurses-develmkdir-p/opt/toolscd/opt/tools/wgetwgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gztar-zxfmysql-5.6.16.tar.gzcdmysql-5.6.16cmake\>-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\>-DMYSQL_DATADIR=/usr/local/mysql/data\>-DSYSCONFDIR=/etc\>-DWITH_MYISAM_STORAGE_ENGINE=1\>-DWITH_INNOBASE_STORAGE_ENGINE=1\>-DWITH_MEMORY_STORAGE_ENGINE=1\>-DWITH_READLINE=1\>-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock\>-DMYSQL_TCP_PORT=3306\>-DENABLED_LOCAL_INFILE=1\>-DWITH_PARTITION_STORAGE_ENGINE=1\>-DEXTRA_CHARSETS=all\>-DDEFAULT_CHARSET=utf8\>-DDEFAULT_COLLATION=utf8_general_cimake&&makeinstall

2、初始化MySQL数据库

#创建用户并授权groupaddmysqluseradd-gmysqlmysqlchown-Rmysql:mysql/usr/local/mysql#运行初始化脚本进行初始化[root@zabbix-dbmysql-5.6.16]#/usr/local/mysql/scripts/mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data--user=mysql#数据库配置和启动脚本修改[root@zabbix-dbmysql-5.6.16]#mv/etc/my.cnf/etc/my.cnf.bak#如果不把/etc/my.cnf改名,后面启动编译安装的MySQL会出错[root@zabbix-dbmysql-5.6.16]#cp/usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld[root@zabbix-dbmysql-5.6.16]#chmod+x/etc/init.d/mysqld

3、启动MySQL服务

[root@zabbix-dbmysql-5.6.16]#/etc/init.d/mysqldstartStartingMySQL....SUCCESS![root@zabbix-dbmysql-5.6.16]#ps-ef|grepmysqlroot169251005:24pts/000:00:00/bin/sh/usr/local/mysql/bin/mysqld_safe--datadir=/usr/local/mysql/data--pid-file=/usr/local/mysql/data/zabbix-db.contoso.com.pidmysql1703316925405:24pts/000:00:01/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/zabbix-db.contoso.com.err--pid-file=/usr/local/mysql/data/zabbix-db.contoso.com.pidroot170641050005:25pts/000:00:00grepmysql[root@zabbix-dbmysql-5.6.16]#netstat-lnt|grep3306tcp00:::3306:::*LISTEN[root@zabbix-dbmysql-5.6.16]#lsof-i:3306COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEmysqld17033mysql10uIPv6600270t0TCP*:mysql(LISTEN)

4、添加MySQL路径到环境变量

echo'exportPATH=/usr/local/mysql/bin:$PATH'>>/etc/profilesource/etc/profile

5、向MySQL数据库中导入zabbix数据

1)设置MySQL中的root用户密码

mysqladmin-urootpassword"123456"#给mysql中的root用户设置密码

2)将zabbix安装文件中的mysql数据拷贝到MySQL server(zabbix-db.contoso.com)中

注:该步骤要在zabbix.contoso.com上完成

[root@zabbixzabbix-2.4.8]#cd/opt/tools/zabbix-2.4.8/database/mysql/[root@zabbixmysql]#lltotal2988-rw-r--r--110001000972946Apr2005:57data.sql-rw-r--r--1100010001978341Apr2005:51p_w_picpaths.sql-rw-r--r--110001000104816Apr2005:57schema.sql[root@zabbixmysql]#scpdata.sqlp_w_picpaths.sqlschema.sqlroot@192.168.49.133:/tmp/Theauthenticityofhost'192.168.49.133(192.168.49.133)'can'tbeestablished.RSAkeyfingerprintisf9:ce:14:5d:cd:bb:3c:b4:0d:0b:fc:21:3a:92:43:6b.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'192.168.49.133'(RSA)tothelistofknownhosts.root@192.168.49.133'spassword:data.sql100%950KB950.1KB/s00:00p_w_picpaths.sql100%1932KB1.9MB/s00:00schema.sql100%102KB102.4KB/s00:00

3)将zabbix相关的数据导入到MySQL数据库中

[root@zabbix-dbmysql-5.6.16]#mysql-uroot-p123456Warning:Usingapasswordonthecommandlineinterfacecanbeinsecure.WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis2Serverversion:5.6.16SourcedistributionCopyright(c)2000,2014,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||mysql||performance_schema||test|+--------------------+4rowsinset(0.04sec)mysql>createdatabasezabbix;QueryOK,1rowaffected(0.03sec)mysql>usezabbix;Databasechangedmysql>source/tmp/schema.sql;QueryOK,0rowsaffected(0.48sec)...mysql>source/tmp/p_w_picpaths.sql;QueryOK,1rowaffected(0.03sec)...mysql>source/tmp/data.sql;QueryOK,0rowsaffected(0.00sec)...mysql>showtables;+-----------------------+|Tables_in_zabbix|+-----------------------+|acknowledges||actions||alerts||application_template||applications||auditlog||auditlog_details||autoreg_host||conditions||config||dbversion||dchecks||dhosts||drules||dservices||escalations||events||expressions||functions||globalmacro||globalvars||graph_discovery||graph_theme||graphs||graphs_items||group_discovery||group_prototype||groups||history||history_log||history_str||history_text||history_uint||host_discovery||host_inventory||hostmacro||hosts||hosts_groups||hosts_templates||housekeeper||httpstep||httpstepitem||httptest||httptestitem||icon_map||icon_mapping||ids||p_w_picpaths||interface||interface_discovery||item_condition||item_discovery||items||items_applications||maintenances||maintenances_groups||maintenances_hosts||maintenances_windows||mappings||media||media_type||opcommand||opcommand_grp||opcommand_hst||opconditions||operations||opgroup||opmessage||opmessage_grp||opmessage_usr||optemplate||profiles||proxy_autoreg_host||proxy_dhistory||proxy_history||regexps||rights||screens||screens_items||scripts||service_alarms||services||services_links||services_times||sessions||slides||slideshows||sysmap_element_url||sysmap_url||sysmaps||sysmaps_elements||sysmaps_link_triggers||sysmaps_links||timeperiods||trends||trends_uint||trigger_depends||trigger_discovery||triggers||user_history||users||users_groups||usrgrp||valuemaps|+-----------------------+104rowsinset(0.08sec)mysql>GRANTALLONzabbix.*TO'zbxuser'@'192.168.49.%'IDENTIFIEDBY'zbx@123456';QueryOK,0rowsaffected(0.09sec)mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.02sec)mysql>quitBye

四、安装php和apache

[root@zabbixmysql]#yum-yinstallphpphp-develcurlcurl-develnet-snmpnet-snmp-develperl-DBIphp-mysqlphp-mbstringphp-gdphp-xmlphp-bcmathhttpd

五、配置zabbix server

1、创建zabbix用户

[root@zabbixmysql]#useraddzabbix[root@zabbixmysql]#idzabbixuid=500(zabbix)gid=500(zabbix)groups=500(zabbix)

2、编辑zabbix server配置文件

[root@zabbixmysql]#cp/usr/local/zabbix/etc/zabbix_server.conf/usr/local/zabbix/etc/zabbix_server.conf.bak[root@zabbixmysql]#vi/usr/local/zabbix/etc/zabbix_server.conf[root@zabbixmysql]#diff/usr/local/zabbix/etc/zabbix_server.conf.bak/usr/local/zabbix/etc/zabbix_server.conf68c68<#DBHost=localhost--->DBHost=192.168.49.133#修改数据库主机(可以是IP或主机名),前提是数据库和zabbix不在同一台server上92c92<#DBUser=--->DBUser=zbxuser#修改默认的数据库授权用户94c94<DBUser=root--->#DBUser=root102c102<#DBPassword=--->DBPassword=zbx@123456#填写数据库用户的密码109a110>DBSocket=/var/lib/mysql/mysql.sock#指定mysql的socket文件位置117c118<#DBPort=3306--->DBPort=3306#修改MySQL端口号

3、拷贝zabbix前端web目录到apache目录

[root@zabbixmysql]#cp-r/opt/tools/zabbix-2.4.8/frontends/php/var/www/html/[root@zabbixmysql]#mv/var/www/html/php/var/www/html/zabbix[root@zabbixmysql]#chown-Rapache:apache/var/www/html/

4、生成并修改zabbix server启动脚本

#从zabbix安装文件的目录中拷贝脚本到/etc/init.d/下[root@zabbixmysql]#cp-r/opt/tools/zabbix-2.4.8/misc/init.d/fedora/core/*/etc/init.d/#因为脚本中的zabbix根目录是/usr/local,所以需要修改为/usr/local/zabbix[root@zabbixmysql]#sed-i's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g'/etc/init.d/zabbix_server[root@zabbixmysql]#sed-i's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g'/etc/init.d/zabbix_agentd

5、启动zabbix server并检查状态

[root@zabbixmysql]#/etc/init.d/zabbix_serverstartStartingzabbix_server:[OK][root@zabbixmysql]#ps-ef|grepzabbixzabbix172741007:52?00:00:00/usr/local/zabbix/sbin/zabbix_serverzabbix1727517274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:configurationsyncer[waiting60secforprocesses]zabbix1727617274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:dbwatchdog[syncedalertsconfigin0.040259sec,idle60sec]zabbix1727717274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:poller#1[got0valuesin0.000003sec,idle5sec]zabbix1727817274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:poller#2[got0valuesin0.000006sec,idle5sec]zabbix1727917274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:poller#3[got0valuesin0.000005sec,idle5sec]zabbix1728017274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:poller#4[got0valuesin0.000003sec,idle5sec]zabbix1728117274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:poller#5[got0valuesin0.000002sec,idle5sec]zabbix1728217274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:unreachablepoller#1[got0valuesin0.000003sec,idle5sec]zabbix1728317274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:trapper#1[processeddatain0.000000sec,waitingforconnection]zabbix1728417274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:trapper#2[processeddatain0.000000sec,waitingforconnection]zabbix1728517274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:trapper#3[processeddatain0.000000sec,waitingforconnection]zabbix1728617274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:trapper#4[processeddatain0.000000sec,waitingforconnection]zabbix1728717274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:trapper#5[processeddatain0.000000sec,waitingforconnection]zabbix1728817274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:icmppinger#1[got0valuesin0.000008sec,idle5sec]zabbix1728917274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:alerter[sentalerts:0success,0failin0.001585sec,idle30sec]zabbix1729017274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:housekeeper[startupidlefor30minutes]zabbix1729117274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:timer#1[processed0triggers,0eventsin0.000000sec,0maintenancesin0.000000sec,idle30sec]zabbix1729217274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:httppoller#1[got0valuesin0.001478sec,idle5sec]zabbix1729317274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:discoverer#1[processed0rulesin0.000770sec,idle60sec]zabbix1729417274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:historysyncer#1[synced0itemsin0.000003sec,idle5sec]zabbix1729517274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:historysyncer#2[synced0itemsin0.000002sec,idle5sec]zabbix1729617274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:historysyncer#3[synced0itemsin0.000001sec,idle5sec]zabbix1729717274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:historysyncer#4[synced0itemsin0.000003sec,idle5sec]zabbix1729817274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:escalator[processed0escalationsin0.001206sec,idle3sec]zabbix1729917274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:proxypoller#1[exchangeddatawith0proxiesin0.000006sec,idle5sec]zabbix1730017274007:52?00:00:00/usr/local/zabbix/sbin/zabbix_server:self-monitoring[processeddatain0.000007sec,idle1sec]root173021069007:52pts/000:00:00grepzabbix[root@zabbixmysql]#netstat-lnt|grep10051tcp000.0.0.0:100510.0.0.0:*LISTEN[root@zabbixmysql]#lsof-i:10051COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEzabbix_se17274zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17275zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17276zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17277zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17278zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17279zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17280zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17281zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17282zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17283zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17284zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17285zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17286zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17287zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17288zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17289zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17290zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17291zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17292zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17293zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17294zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17295zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17296zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17297zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17298zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17299zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)zabbix_se17300zabbix4uIPv4337700t0TCP*:zabbix-trapper(LISTEN)

6、启动httpd服务

[root@zabbixmysql]#/etc/init.d/httpdstartStartinghttpd:httpd:apr_sockaddr_info_get()failedforzabbix.contoso.comhttpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using127.0.0.1forServerName[OK]

7、设置开机启动

#zabbix-db上设置开机启动mysql[root@zabbix-dbmysql-5.6.16]#chkconfig--addmysqld[root@zabbix-dbmysql-5.6.16]#chkconfigmysqldon[root@zabbix-dbmysql-5.6.16]#chkconfig--list|grepmysqldmysqld0:off1:off2:on3:on4:on5:on6:off#zabbixserver上设置开机启动zabbix_server和httpd服务[root@zabbixmysql]#chkconfig--addzabbix_server[root@zabbixmysql]#chkconfigzabbix_serveron[root@zabbixmysql]#chkconfig--list|grepzabbixzabbix_server0:off1:off2:on3:on4:on5:on6:off[root@zabbixmysql]#chkconfighttpdon[root@zabbixmysql]#chkconfig--list|grephttpdhttpd0:off1:off2:on3:on4:on5:on6:off

六、在浏览器中进行图形界面配置zabbix

打开浏览器,输入http://zabbix_server_ip/zabbix,如果上面的步骤无误就会出现上面的画面。

这里是必要安装条件检查,上面有一些php的参数默认是不正确的,需要进行调整,至于调整的值都有显示。修改的方法如下:

[root@zabbixmysql]#cp/etc/php.ini/etc/php.ini.bak$(date+%F)[root@zabbixmysql]#vi/etc/php.ini[root@zabbixmysql]#diff/etc/php.ini.bak2016-10-06/etc/php.ini440c440<max_execution_time=30--->max_execution_time=300449c449<max_input_time=60--->max_input_time=300729c729<post_max_size=8M--->post_max_size=16M946a947>date.timezone=Asia/Shanghai

注意,php.ini修改完成后,上面的错误刷新之后仍然存在,需要重启httpd和zabbix server服务。

[root@zabbix-dbmysql-5.6.16]#/etc/init.d/mysqldrestartShuttingdownMySQL....SUCCESS!StartingMySQL.....SUCCESS![root@zabbix-dbmysql-5.6.16]#[root@zabbixmysql]#/etc/init.d/httpdrestartStoppinghttpd:[OK]Startinghttpd:httpd:apr_sockaddr_info_get()failedforzabbix.contoso.comhttpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using127.0.0.forServerName[OK]

再次进行必要条件检查,可以看到目前所有的条件都已经满足,全部都是OK就可以进行下一步了。

配置数据库连接,根据需要输入数据库的相关信息,然后点击下面的按钮进行连接测试,如果测试通过,再进行下一步。

这一步是zabbix server的详细信息,可以根据实际情况进行修改,但是注意端口一定要正确。

配置结束,给出安装前的配置总结,确认就开始安装了。

安装的过程会比较快,这是安装完成的画面。

好的,成功出现登录界面,默认的登录账号为admin,密码zabbix。