zoukankan      html  css  js  c++  java
  • zabbix 安装

    zabbix使用一 zabbix server编译安装

     monitor  shang  3年前 (2012-11-21)  4023浏览  0评论

    说明:
    zabbix由2部分构成,zabbix server与可选组件zabbix agent。
    zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。
    zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。

    实现:
    1. 获取zabbix

    # wget http://softlayer-dal.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.13/zabbix-2.0.13.tar.gz

     
    2. yum安装zabbix需要依赖库

    # yum -y install net-snmp-devel curl-devel

     
    3. 新建zabbix用户、创建zabbix库及初始化、编译安装zabbix
    3.1 新建zabbix用户

    # useradd -M -s /sbin/nologin zabbix  //新建zabbix用户,无家目录,不可登陆

     
    3.2 创建zabbix库及初始化

    # tar zxvf zabbix-2.0.13.tar.gz
    # cd zabbix-2.0.3
    > 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里数据库的结构和名字都变了,而且导入也要严格按照顺序来。

     
    3.3 编译安装zabbix

    # ./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后,再编译即可

     
    4. 为zabbix server添加端口

    # 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

     
    5. 更改zabbix-server.conf配置文件中关于数据库部分。默认的配置文件在/usr/local/zabbix安装目录下

    # 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

     
    6. 给zabbix-2.0.3服务端程序做软链接

    # 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

     
    7. 拷贝zabbix前端到web目录下

    # cp -r zabbix-2.0.3/frontends/php /www/coolnull.com/zabbix
    # chown -R www:www /www/coolnull.com/zabbix

    8. 拷贝修改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

     
    9. 启动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    //开机自启动

     
    10. 在nginx中添加zabbix虚拟主机

    # vim /usr/local/nginx/conf/vhosts/zabbix.coolnull.com.conf //内容如下
    server
    {
            listen       80;
            server_name  zabbix.coolnull.com;
            root   /home/www/coolnull.com/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.coolnull.com.log;
    
    }

     
    11. 修改PHP配置文件php.ini内容

    # 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 查看下

    12. 浏览器打开zabbix.coolnull.com进行安装
    检测php组件,全部OK才可以点击next。
    z1
    有问题的可以按照上面的指示对应修改。这里最后一栏的PHP gettext肯定是No状态,因为php中没有默认没有安装gettext模块,所以需要动态编译下php添加gettext。

    13. php动态添加gettext模块

    # 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模块

     
    14. 连接zabbix数据库
    设置zabbix数据库账号、密码等就可以了
    z2

    15. 默认用户名:admin 密码:zabbix

  • 相关阅读:
    内容绘制到Bitmap上不成功警示
    一些c++面试题目
    Windows Socket 主要API功能
    面试问题(一)
    函数指针与指针函数
    机器学习和数据挖掘的网站
    vs2010打开vs2008程序出现错误
    MATLAB将矩阵使用.txt文件格式保存
    指针实现值交换
    堆与栈的区别
  • 原文地址:https://www.cnblogs.com/zhzhao/p/4596009.html
Copyright © 2011-2022 走看看