zabbix 搭建

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/images.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/images.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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章