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 #填写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