zabbix 的单个Server节点可以支持上万台设备,每秒可以处理1.5万次请求,理论上可以支持5万台设备.

zabbix 的使用可以分为三类用户:入门用户(熟悉Zabbix的安装跟配置),中级用户(熟悉LAMP和LNMP环境搭建,Mysql数据库,Shell脚本,主要难点在于触发器,数据库调优和API的使用),高级用户(熟悉PHP,C等一门脚本语言,具备二次开发能力,能修改源码,对Zabbix 从代码级别进行优化和扩展).

第一种:yum安装

zabbix-Server:

1.安装zabbix server : yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agent

2.安装mysql server : yum -y install mysql-server

3.配置mysql 配置文件:

     vim /etc/my.cnf

     [mysqld]

     datadir=/data01/mysql

     socket=/data01/mysql/mysql.sock

     user=mysql

     

     symbolic-links=0

     character-set-server=utf8

     default-storage-engine=INNODB

     innodb_file_per_table=1

     max_connections=1024

    

     [mysqld_safe]

     log-error=/var/log/mysql/mysqld.log

     pid-file=/var/run/mysqld/mysqld.pid

4.启动服务

     chkconfig mysqld on

     service mysqld start

5.创建zabbix 数据库

     mysqladmin -uroot password admin

     mysql -uroot -padmin -e "create database zabbix character set utf8;"

     mysql -uroot -padmin -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"

     mysql -uroot -padmin -e "flush privileges;"

     注:此处数据库的字符集必须为utf8,不然中文显示web界面会出现乱码

6.导入zabbix-server 的数据库(创建zabbix 用户)

     mysql -uzabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-X.X.X/create/schema.sql;

     如果安装zabbix-proxy,下面的sql 不用导入

     mysql -uzabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-X.X.X/create/p_w_picpaths.sql;

     mysql -uzabbix -pzabbix zabbix < /usr/share/doc/zabbix-server-mysql-X.X.X/create/data.sql;

7.配置 zabbix_server.conf

     DBHost=localhost

     DBName=zabbix

     DBUser=zabbix

     DBPassword=zabbix

     

     StartPollers=5

     CacheSize=256M

     

     创建scripts 脚本路径:mkdir /etc/zabbix/alertscripts /etc/zabbix/externalscripts

8.启动zabbix-server 服务

     service zabbix-server start

     service httpd start

     添加开机启动

     chkconfig zabbix-server on

     chkconfig httpd on

9.防火墙,SELinux 和权限的设置

    1). vim /etc/sysconfig/iptables

     -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

     -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

     -A INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT

     -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT

     service iptables restart

    

     2).seLinux 设置

          chcon -R -t httpd_sys_content_rw_t /usr/share/zabbix/conf

          setsebool -P httpd_can_network_connect=true

          semanage port -a -t http_port_t -p tcp 10051

          或者关闭seLinux 

          setenforce 0 (立即生效)或者

          vim /etc/selinux/config   SELINUX=disabled(需要重启)

     3).php.ini 配置文件的设置

          vim /etc/php.ini

          配置完之后重启httpd

10.配置 web 界面

11.登录 默认账号 Admin , 密码 zabbix

zabbix-Agent:

1.安装zabbix agent : yum install -y zabbix zabbix-agent

2.vim /etc/sysconfig/iptables

     -A INPUT -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT

     -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT

     service iptables restart

3.配置 zabbix_agentd.conf

     Server=127.0.0.1,192.168.0.240  #被动模式,zabbix-server 的IP地址(可以发送给多台服务器)

     ServerActive=192.168.0.240:10051  #主动模式

     Hostname=Zabbix server

     设置开启启动

     chkconfig zabbix-agent on

     service zabbix-agent start

第二种:源码安装

zabbix-Server:

1、安装开发软件包

yum  -y groupinstall  "Development Tools"

2、安装所需的依赖包

yum -y install httpd php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate  php-bcmath

3、同步时间

     ntpdate -d  cn.pool.ntp.org

4、创建用户名跟用户组

     groupadd -g 201 zabbix

     useradd -g zabbix -u 201 -m zabbix

5.创建zabbix 数据库

     mysqladmin -uroot password admin

     mysql -uroot -padmin -e "create database zabbix character set utf8;"

     mysql -uroot -padmin -e "grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix';"

     mysql -uroot -padmin -e "flush privileges;"

     注:此处数据库的字符集必须为utf8,不然中文显示web界面会出现乱码

6.解压zabbix : tar zxf zabbix-2.2.2.tar.gz

7.导入zabbix-server 的数据库(创建zabbix 用户)

     mysql -uzabbix -pzabbix zabbix < ./zabbix-2.2.2/database/mysql/schema.sql;

     如果安装zabbix-proxy,下面的sql 不用导入

     mysql -uzabbix -pzabbix zabbix < ./zabbix-2.2.2/database/mysql/p_w_picpaths.sql;

     mysql -uzabbix -pzabbix zabbix < ./zabbix-2.2.2/database/mysql/data.sql;

8.编译安装zabbix 

      cd zabbix-2.2.2

     ./configure --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --enable-mbstring --with-net-snmp --with-libcurl --with-mysql --with-gd --enable-java

     make && make install

9.复制启动脚本,修改执行权限

     cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

     cp misc/init.d/tru64/zabbix_server /etc/init.d/

     chmod +x /etc/init.d/zabbix_*

10.拷贝zabbix 前端代码

     mkdir /var/www/html/zabbix

     cp -a  zabbix-2.2.2/frontends/php/* /var/www/html/zabbix/

     chown -R  apache.apache /var/www/html/zabbix/

11. 配置php文件,适应zabbix安装所需的参数

     vim /etc/php.ini

     date.timezone = Asia/Shanghai

     max_execution_time = 300

     max_input_time = 300

     post_max_size = 32M

     memory_limit = 128M

     mbstring.func_overload = 2

12. 配置apache文件,定义安装访问zabbix的虚拟主机

     vim /etc/httpd/conf/httpd.conf

    

     ServerName 127.0.0.1

     <VirtualHost *:80>

          DocumentRoot  "/var/www/html"

          ServerName 192.168.239.130

     </VirtualHost>

13. 配置zabbix server端的文件,定义数据库的IP、用户名、密码

     vim /etc/zabbix/zabbix_server.conf


     DBHost=127.0.0.1(192.168.32.83设置mysql用户的host值为%)

     DBName= zabbix

     DBUser=zabbixuser

     DBPassword=zabbixpass

     DBPort=3306

     StartPollers=30                        #开启多线程数,一般不要超过30

     StartTrappers=20                       #trapper线程数

     StartPingers=10                        #fping线程数

     StartDiscoverers=120            

     MaxHousekeeperDelete=5000       

     CacheSize=1024M                        #用来保存监控数据的缓存数,根据监控主机的数量适当调整

     StartDBSyncers=8                       #数据库同步时间

     HistoryCacheSize=1024M          

     TrendCacheSize=128M                    #总趋势缓存大小

     HistoryTextCacheSize=512M

     AlertScriptsPath=/etc/zabbix/alertscripts

     LogSlowQueries=1000

     Include=/etc/zabbix/zabbix_server.conf.d/

14. ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

15. 启动apache服务跟zabbix服务

      /etc/init.d/httpd start

      /etc/init.d/zabbix_server start

16. http://192.168.32.83/zabbix/setup.php


zabbix-Agent:

1、安装开发软件包

yum  -y groupinstall  "Development Tools"

yum -y install ntpdate

2、同步时间

     ntpdate -d  cn.pool.ntp.org

3、创建用户名跟用户组

     groupadd -g 201 zabbix

     useradd -g zabbix -u 201 -m zabbix

4.tar zxf zabbix zabbix-2.2.2.tar.gz

cd zabbix-2.2.2

./configure --sysconfdir=/etc/zabbix --enable-agent --enable-java

make install

5.复制启动脚本,修改执行权限

     cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

 chmod +x /etc/init.d/zabbix_*

6. 配置agent端配置文件

vim /etc/zabbix/zabbix_agentd.conf       #此处千万别写成了zabbix_agent.conf,否则配置了不生效


Server=192.168.33.220                 #填写ServerIP地址

ServerActive=192.168.33.220            #修改为ServerIP地址

Hostname=Centos-03                      #填写本机的HostName,注意Server端要能解析

UnsafeUserParameters=1                  #是否允许自定义的key,1为允许,0为不允许

Include= /etc/zabbix/zabbix_agentd.conf.d/#自定义的agentd配置文件(key)可以在这里面写;

7、启动zabbixagent

/etc/init.d/zabbix_agentd start



expect脚本 

     同步文件:

          #!/usr/bin/expect

          set passwd 1234567

          set host [lindex $argv 0]

          set file "/root/shell/expect/buildzabbix_agent.sh"

          spawn scp $file root@$host:/root/

          expect {

             "yes/no" {

                     send "yes\r"

                     expect "password:" {send "$passwd\r"}

             }

             "password:" {send "$passwd\r"}

          }

          expect eof

     执行脚本:

          #!/usr/bin/expect

          set timeout -1

          set passwd "1234567"

          set host [lindex $argv 0]

          spawn ssh root@$host

          expect {

             "yes/no" {

                     send "yes\r"

                     expect "password:" {send "$passwd\r"}

             }

             "password:" {send "$passwd\r"}

          }

          expect "root#"

          send "sh /root/buildzabbix_agent.sh\r"

          expect "root#"

          send "exit\r"



PS:Zabbix_Agent自动安装脚本

             yum -y groupinstall "Development Tools"

yum -y install ntpdate

ntpdate -d cn.pool.ntp.org

groupadd  -g 201 zabbix

useradd -g zabbix -u 201 -m zabbix

cd /usr/src

ftp -n<<!

open 192.168.32.101 1029

user install kjk7787czcb

pass

bin

get zabbix-2.2.2.tar.gz

get zabbix.conf

bye

exit

!

tar zxvf zabbix-2.2.2.tar.gz

cd zabbix-2.2.2

./configure -sysconfdir=/etc/zabbix -enable-agent

make && make install

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_agentd

hostname=`hostname`

cd /usr/src

sed -i "s/XX/$hostname/" zabbix.conf

cat zabbix.conf>>/etc/zabbix/zabbix_agentd.conf

sed -i "s/Server=127.0.0.1//" /etc/zabbix/zabbix_agentd.conf

sed -i "s/ServerActive=127.0.0.1//" /etc/zabbix/zabbix_agentd.conf

/etc/init.d/zabbix_agentd start