说明: # wget http://softlayer-dal.dl./project/zabbix/ZABBIX%20Latest%20Stable/2.0.13/zabbix-2.0.13.tar.gz # yum -y install net-snmp-devel curl-devel # useradd -M -s /sbin/nologin zabbix //新建zabbix用户,无家目录,不可登陆 # tar zxvf zabbix-2.0.13.tar.gz # cd zabbix-2.0.3 # mysql -uroot -p > create database zabbix character set utf8; //新建zabbix数据库 > grant all on zabbix.* to zabbix@localhost identified by 'redhat'; //授权zabbxi使用zabbix这个数据库 # mysql -uzabbix -p'redhat' zabbix < database/mysql/schema.sql //zabbix的数据库表结构 # mysql -uzabbix -p'redhat' zabbix < database/mysql/images.sql //待查 # mysql -uzabbix -p'redhat' zabbix < database/mysql/data.sql //zabbix的数据库数据,将zabbix源码包中的数据导入到新建的zabbix数据库,这一步是zabbix2.0.13与旧版不同的地方,在版本2.0.13里数据库的结构和名字都变了,而且导入也要严格按照顺序来。 # ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl # make && make install --prefix指定zabbix安装目录,--enable-server 支持zabbix服务器,--enable-agent支持zabbix代理,--enable-proxy 支持zabbix代理服务器,--with-mysql 使用MySQL客户端库可以选择指定路径mysql_config,--with-net-snmp 使用net - snmp软件包,择性地指定路径NET - SNMP配置, --with-libcurl 使用curl包。 若./configure 出现hecking for mysql_config... configure: error: MySQL library not found,可以使用find / -name "mysql_config"来查看mysql_config位置,用--with-mysql指定; 若./configure出现错误configure: error: Invalid NET-SNMP directory - unable to find net-snmp-config,可以通过yum install net-snmp-devel来解决。 若已安装net-snmp-devel却报error while loading shared libraries: libnetsnmp.so.30" 错误的原因和解决办法,可以通过find / -name libnetsnmp.so.30,查看libnetsnmp.so.30位置,将libnetsnmp.so.30位置添加到/etc/ld.so.conf,/sbin/ldconfig后,再编译即可 # cat >> /etc/services <<eof zabbix-agent 10050/tcp #ZabbixAgent zabbix-agent 10050/udp #Zabbix Agent zabbix-trapper 10051/tcp #ZabbixTrapper zabbix-trapper 10051/udp #Zabbix Trapper eof # vim /usr/local/zabbix/etc/zabbix_server.conf //修改以下内容 DBName=zabbix DBUser=zabbix DBPassword=redhat //DBPassword 默认是被注释掉的,需要自己添加 DBSocket=/tmp/mysql.sock //我发现如果不加下面这2条,zabbix会一直报connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'。即使mysql账号、权限是正确的,/var/lib/mysql/mysql.sock存在也是一样会报错。 DBPort=3306 # cd /usr/local/zabbix/bin/ # for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done # cd /usr/local/zabbix/sbin/ # for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done # cp -r zabbix-2.0.3/frontends/php /www//zabbix # chown -R www:www /www//zabbix # cp zabbix-2.0.13/misc/init.d/fedora/core/zabbix_server /etc/init.d/ # cp zabbix-2.0.13/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ # chmod +x /etc/init.d/zabbix_* # 为脚本加上可执行权限 # vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix //分别修改/etc/init.d/zabbix_server、zabbix_agentd将其中的BASEDIR改为实际zabbix的安装位置,如我们这里的/usr/local/zabbix # /etc/init.d/zabbix_server start # /etc/init.d/zabbix_agentd start //启动服务 # chkconfig --add zabbix_server # chkconfig --add zabbix_agentd # chkconfig zabbix_server on # chkconfig zabbix_agentd on //开机自启动 # vim /usr/local/nginx/conf/vhosts/zabbix..conf //内容如下 server { listen 80; server_name zabbix.; root /home/www//zabbix; index index.html index.htm index.php; location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } access_log /var/log/nginx/zabbix..log; } # vim /usr/local/webserver/php/etc/php.ini //修改以下地方 date.timezone = Asia/Shanghai post_max_size = 32M max_execution_time = 300 max_input_time = 300 注:更改完之后需要重启php,启动重启之后最好使用ps -ef | grep php 查看下 # cd /opt/php-5.1.2/ext/gettext //进入到php源码包中,php源码包中包含有gettext # /usr/local/webserver/php/bin/phpize # ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-gettext # make && make install //成功会在/usr/local/webserver/php/lib/php/extensions产生gettext.so。确认php.ini文件中的extension_dir=/opt/php/lib/php/extensions是否存在,并在php.ini中添加extension=gettext.so # /etc/init.d/php-fpm reload //重载php,这里可以通过/usr/local/webserver/php/bin/php -m|grep gettext来查看是否添加了gettext模块 |
|