zabbix 的單個Server節點能夠支持上萬臺設備,每秒能夠處理1.5萬次請求,理論上能夠支持5萬臺設備.php
zabbix 的使用能夠分爲三類用戶:入門用戶(熟悉Zabbix的安裝跟配置),中級用戶(熟悉LAMP和LNMP環境搭建,Mysql數據庫,Shell腳本,主要難點在於觸發器,數據庫調優和API的使用),高級用戶(熟悉PHP,C等一門腳本語言,具有二次開發能力,能修改源碼,對Zabbix 從代碼級別進行優化和擴展).html
第一種:yum安裝前端
zabbix-Server:java
1.安裝zabbix server : yum install -y zabbix zabbix-get zabbix-server zabbix-web-mysql zabbix-web zabbix-agentmysql
2.安裝mysql server : yum -y install mysql-serverlinux
3.配置mysql 配置文件:web
vim /etc/my.cnfsql
[mysqld]shell
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
三、同步時間
ntpdate -d cn.pool.ntp.org
四、建立用戶名跟用戶組
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
二、同步時間
ntpdate -d cn.pool.ntp.org
三、建立用戶名跟用戶組
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 #填寫Server的IP地址
ServerActive=192.168.33.220 #修改成Server的IP地址
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