zabbix需要lnmp或lamp环境,在这里不介绍了,其他文章有介绍lnmp的搭建,直接进入zabbix服务端和agent端的安装。

一、下载及编译安装。

    cd /usr/local/src/

    wgethttp://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.9/zabbix-2.2.9.tar.gz

    tar -zxvf zabbix-2.2.9.tar.gz

    cd zabbix-2.2.9

    ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

    make && make install

    安装完毕,注意:http://www.ttlsa.com/zabbix/install-zabbix-on-linux-5-ttlsa/ ,ttlsa大神帖子说zabbix对php的编译参数有特殊要求,我是直接按照他的php参数编译安装的php,下面是php编译参数。

“./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64”


二、配置zabbix服务端

    2.1、创建zabbix用户

            useradd -s /sbin/nologin zabbix


    2.2、添加zabbix服务端口

            vim /etc/services

             zabbix-agent    10050/tcp    # Zabbix Agent

             zabbix-agent    10050/udp    # Zabbix Agent

             zabbix-trapper  10051/tcp    # Zabbix Trapper

             zabbix-trapper  10051/udp    # Zabbix Trapper

         保存退出!


    2.3、数据库授权及导入zabbix数据库

             create database zabbix default charset utf8;

             use zabbix;

             source /usr/local/src/zabbix-2.2.9/database/mysql/schema.sql

             source /usr/local/src/zabbix-2.2.9/database/mysql/p_w_picpaths.sql

             source /usr/local/src/zabbix-2.2.9/database/mysql/data.sql

             grant all on zabbix.* to 'zabbix数据库用户'@'允许zabbix登录的IP' identified by 'zabbix用户密码'

             

    2.4、监控端配置文件

             vim /usr/local/zabbix-2.2.2/etc/zabbix_server.conf

             更改配置文件

                 ListenPort=10051

                 LogFile=/tmp/zabbix_server.log

                 DBHost=数据库的host名字

                 DBName=数据库名

                 DBUser=zabbix连接数据库的用户

                 DBPassword=数据库的连接密码

                 DBPort=数据库的端口

                 ListenIP=你的zabbix_server监听的IP地址

         注意:这里的配置一定要写正确,否则后面会出很多问题。


    2.5、拷贝zabbix的sysv启动脚本并配置开机启动

                 cp /usr/local/src/zabbix-2.2.9/misc/init.d/fedora/core/zabbix_server /etc/init.d/

                 chmod +x /etc/init.d/zabbix_server

                 chkconfig --add zabbix_server

                 chkconfig --level 35 zabbix_server on

                 service zabbix_server start


    2.6、至此,zabbix的监控端就配置好了,下面来验证启动是否正常。

[root@Redis ~] ps -ef |grep zabbix_server

命令输出:

[root@Redis ~]# ps -ef |grep zabbix

zabbix   12808     1  0 11:20 ?        00:00:00 /usr/local/sbin/zabbix_server


[root@Redis ~] netstat -tlup |grep zabbix

命令输出:

[root@Redis ~]# netstat -tlunp |grep zabbix

tcp        0      0 这里应该是配置文件中设置的listenIP:10051         0.0.0.0:*                   LISTEN      12808/zabbix_server


有上面的输出则表示zabbix已经正常启动并等带客户端的连接了。


三、配置web访问

    3.1、拷贝web文件到nginx的虚拟目录下

        mkdir /usr/local/nginx/html/zabbix

        cp /usr/local/src/zabbix-2.2.9/frontends/php/* /usr/local/nginx/html/zabbix/

     

    3.2、修改php.ini配置

        vim /etc/php.ini

        查找到下面的几行配置并修改其值

        max_execution_time = 300

        max_input_time = 300

        memory_limit = 128M

        post_max_size = 16M

        date.timezone = Asia/Shanghai

        mbstring.func_overload = 2

    注意:这里的配置一定要写正确,否则在web安装的时候会check不通过。如果发现这里的值配置全部正确,web安装还是无法通过的话,请考虑系统还有别的php.ini文件,或者你更改的值是说明中的值。


    3.3、修改nginx的配置文件

        vim /usr/local/nginx/etc/nginx.conf

        

server {

        listen       80;

        server_name  10.0.182.117;


        location / {

            root   html;

            index  index.html index.php index.htm;

        }


        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }


        location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }


    }

现在,可以访问zabbix的web页面进行安装了。

    http://10.0.182.117/zabbix

    


四、安装配置监控端

    4.1、编译安装监控端          

        cd /usr/local/src/

        wgethttp://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.9/zabbix-2.2.9.tar.gz

        tar -zxvf zabbix-2.2.9.tar.gz

        cd zabbix-2.2.9

        ./configure --prefix=/usr/local/zabbix --enable-agent

        make && make install

    

    4.2、编辑agent配置文件

        vim /usr/local/zabbix/etc/zabbix_agentd.conf

        LogFile=/tmp/zabbix_agentd.log

        Server=123.57.146.77

        Hostname=Zabbix server

        其中的Hostname的名字要和zabbix  web页面中的hostname一样,否则不能监控。server的IP地址是服务端的IP地址,也就是服务端配置文件中的ListenIP的地址。


    4.3、拷贝sysv的启动脚本并设置开机启动

        cp /usr/local/src/zabbix-2.2.9/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

        chmod +x /etc/init.d/zabbix_agentd

        chkconfig --add zabbix_agentd

        chkconfig --level 35 zabbix_agentd on

        service zabbix_agentd start


    4.4、至此,zabbix的监控端就配置好了,下面来验证启动是否正常。

[root@Redis ~] ps -ef |grep zabbix_agentd

命令输出:

zabbix   12873     1  0 11:21 ?        00:00:00 /usr/local/sbin/zabbix_agentd

zabbix   12875 12873  0 11:21 ?        00:00:04 /usr/local/sbin/zabbix_agentd: collector [idle 1 sec]

zabbix   12876 12873  0 11:21 ?        00:00:00 /usr/local/sbin/zabbix_agentd: listener #1 [waiting for connection]

zabbix   12877 12873  0 11:21 ?        00:00:00 /usr/local/sbin/zabbix_agentd: listener #2 [waiting for connection]

zabbix   12878 12873  0 11:21 ?        00:00:00 /usr/local/sbin/zabbix_agentd: listener #3 [waiting for connection]


[root@Redis ~] netstat -tlup |grep zabbix_agentd

命令输出:

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      12873/zabbix_agentd

有上面的输出则表示agent已经启动。



五、安装遇到的问题及解决办法汇总


    1、启动zabbix_server之后用ps命令可以看到进程,netstat看不到监听状态。启动也不报错

        解决方法:server的配置文件中DBHost字段没有配置,这时候查看/tmp/zabbix_server.log会看到一大堆的连接数据库拒绝的错误。


    2、zabbix没有中文

        解决方法:编辑配置文件“/usr/local/nginx/html/zabbix/include/locales.inc.php”将其中的function getLocales()函数中的属性“'zh_CN' => array('name' => _('Chinese (zh_CN)'),        'display' => false),”将false改为true即可。


    3、web安装的时候php.ini中的所有配置都正确,还是提示不通过。

        解决方法:查找系统中是否有多个php.ini文件,将多余的php.ini配置文件都改过来,如果还是不行,可能是你改错了,在php.ini中搜索的时候要看清楚,前面带分号的不要改,搜索max_input_time就会发现有两处匹配,所以改的时候一定要看清楚,我就是在这里折腾了半天。。。


    4、在数据库中更改了zabbix连接的用户密码导致连接数据库失败

        解决方法:在数据库中更改完密码之后一定要更改“/usr/local/nginx/html/zabbix/conf/zabbix.conf.php”配置文件中的DBPassword的密码才行。


    5、zabbix  web页面中添加的主机的可用性状态显示“received empty response from zabbix agent at.......”

        解决方法:agent配置文件中的Server填写的IP不对,一定要填写zabbix_server的监听IP。确认配置文件没问题后,还有一个原因,在创建主机的时候,IP地址填写的不正确,要填写agent的IP地址。更改即可。


-------------------------------------------------------------------------------------------



我在安装的时候只碰到了这些问题。如果按照我的文档配置,出现别的问题,还请大家及时交流。谢谢~