Zabbix简介
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统 的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。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)等系统之上。zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
Zabbix特点
安装与配置简单,学习成本低 支持多语言(包括中文) 免费开源 自动发现服务器与网络设备 分布式监视以及WEB集中管理功能 可以无agent监视 用户安全认证和柔软的授权方式 通过WEB界面设置或查看监视结果 支持手机短信、email等通知功能等等
Zabbix主要功能
CPU负荷 内存使用 磁盘使用 网络状况 端口监视 日志监视
安装fping
fping是加强版的ping工具,可以同时ping多个主机。
fping的官网是:
wget
tar -xvf /nfs/pkg/fping.tar.gz
cd fping-2.4b2_to/
./configure
make && make install
安装完毕后,一起就2个文件:
/usr/local/sbin/fping #执行文件/usr/local/man/man8/fping.8 #man文件
设置fping权限:
chown root:zabbix /usr/local/sbin/fping
chmod 710 /usr/local/sbin/fping
chmod ug+s /usr/local/sbin/fping
然后再安装traceroute:
yum install traceroute -y
Zabbix安装
①环境
1)关闭iptables
[root@k zabbix]# iptables -F [root@k zabbix]# /etc/init.d/iptables save
2)关闭selinux
编辑文件/etc/sysconfig/selinux将设置 SELINUX=enforcing修改为: SELINUX=disabled
3)安装相关依赖包
yum -y install gcc mysql-server httpd php php-mysql php-gd php-bcmath php-xml php-mbstring mysql-devel php-snmp net-snmp-devel net-snmp net-snmp-utils OpenIPMI-devel curl-devel
②下载解压 tar xvf zabbix-2.4.5.tar.gz -C /usr/local 增加zabbix用户和组 groupadd zabbix useradd zabbix -g zabbix -s /sbin/nologin ③配置zabbix数据库 启动MySQL数据库: service mysqld start修改MySQL root用户密码(默认密码为空)mysqladmin –u root –p password 123456进入数据库:mysql -u root -pmysql> create database zabbix default charset utf8; mysql> grant all on zabbix.* to zabbix@'localhost' identified by '123456'; mysql> grant all on zabbix.* to zabbix@'127.0.0.1' identified by '123456'; mysql> flush privileges; (刷新权限配置)
quit
导入表和数据:cd /usr/local/zabbix-2.4.5/database/mysqlmysql -u zabbix -p123456 zabbix< schema.sql (将zabbix中的mysql.sql文件重定向到zabbix数据库中)
mysql -u zabbix -p123456 zabbix < images.sql (有先后顺序)
mysql -u zabbix -p123456 zabbix < data.sql
④编译安装zabbix
cd /usr/local/zabbix-2.4.5;
./configure --sysconfdir=/etc/zabbix --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmi
make && make install
配置文件
vi /etc/zabbix/zabbix_server.conf 修改如下:
DBName=zabbix <---zabbix使用的数据库 DBUser=zabbix <---zabbix连接mysql所使用的用户名 DBPassword=123456 <----zabbix连接mysql所使用的密码 DBSocket=/var/lib/mysql/mysql.sock <---如果链接的是本机的数据库,必须确定socket路径正确
FpingLocation=/usr/local/sbin/fping <---修改默认的icmp工具为fping
vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.66.16 <----指向zabbix服务器的ip
ServerActive=192.168.66.16 <----指向zabbix服务器的ip
Hostname=192.168.66.16 <---本机(zabbix客户端)的hostname或者ip
添加web前端php文件
cd /usr/local/zabbix-2.4.5/frontends/
cp -rf php /var/www/html/zabbix
chown -R zabbix:zabbix /var/www/html/zabbix
web前端安装配置
vi /etc/php.ini 修改php相关参数 max_execution_time = 600 max_input_time = 600 date.timezone = Asia/Shanghai post_max_size = 32M memory_limit = 256M vi /etc/httpd/conf/httpd.conf DirectoryIndex index.php index.html # LoadModule foo_module modules/mod_foo.so LoadModule php5_module modules/libphp5.so
启动服务
/etc/init.d/httpd start /etc/init.d/mysqld start /usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_agentd start
配置Zabbix服务器端
在本地浏览器上访问Zabbis Serve地址开始web前端配置, 按提示一步步next,其中Step 3 Check of pre-requisites 必须全部项目OK后 才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。共需6步,如下图:
a) 进入安装界面点击Next
b) 确保所有的监测项都是OK,点击Next
c) 填写zabbix数据库的用户名、密码、地址等信息,点击Test connection,OK后点击Next
(上图中 Database name 为前面创建的数据库名,User为前面创建的连接MySQL的数据库用户zabbix,Password为前面创建的连接MySQL数据库所使用的密码,本实验所使用的密码为123456;Test connection必须OK 才能进行下一步)
d) 填写zabbix服务器的信息,主机名,server程序监听的的端口,主机IP地址等,如果server跟web在一台服务器上保持默认即可,点击Next
e) 确认前面几部填写的信息没有问题的话点击Next
f) 检查web程序的config文件,如果没问题会显示OK,直接点击finish即可完成安装(如果此处有问题一般是zabbix虚拟主机目录文件的权限问题,上面已经有设置的过程一般不会出现问题)
如果出现下图的错误,则按照其提示操作即可(点击
按钮下载配置文件,将下载后的文件拷贝到/var/www/html/zabbix/conf/下,改名为zabbix.conf.php,在修改文件的相关拥有者为zabbix{命令 chown zabbix.zabbix /var/www/html/zabbix/conf/zabbix.conf.php},在点击Retry按钮,变成上图所示后点击Finish即安装成功了)
如果因为手误,数据库密码或者用户名等的填写错了,后面会一直报错,我们可以手动的去编辑配置文件vim /var/www/html/zabbix/conf/zabbix.conf.php 手动定义相关的参数即可
通过root用户解压、编译及安装
tar -xvf /nfs/pkg/zabbix-2.0.3.tar.gz;cd zabbix-2.0.3./configure --prefix=/usr/local/zabbix/ --sysconfdir=/etc/zabbix/ --enable-agentmake make install
为了便于监控IO,安装上sysstat,执行如下命令:
yum install sysstat -y
sed -i s/10.71.xx.xx/$HOST_IP/g /etc/zabbix/zabbix_agentd.conf将配置文件/etc/zabbix/zabbix_agentd.conf中的Hostname= 10.71.xx.xx修改成现在主机的IP,例如241Hostname=$HOST_IP将DisableActive=0修改为#DisableActive=0将ServerPort=10051修改为#ServerPort=10051
添加计划任务,收集监控数据:
执行命令:crontab -e -u zabbix加入:# run zabbix data gathering for custom checks every min*/3 * * * * /usr/bin/sudo /etc/zabbix/scripts/zabbix_tomcat_cron.sh > /dev/null 2>&1* * * * * /etc/zabbix/scripts/zabbix_vmstat_cron.sh > /dev/null 2>&1* * * * * /etc/zabbix/scripts/zabbix_iostat_cron.sh > /dev/null 2>&1* * * * * /etc/zabbix/scripts/zabbix_tcpConStat_cron.sh > /dev/null 2>&1* * * * * /usr/bin/sudo /etc/zabbix/scripts/zabbix_fileSocket_cron.sh > /dev/null 2>&1* * * * * /etc/zabbix/scripts/zabbix_DbConnStat_cron.sh > /dev/null 2>&1
设置一些特殊脚本的权限:
执行如下命令:visudo修改Defaults requiretty为#Defaults requiretty并加入:Cmnd_Alias SU = /bin/su -Cmnd_Alias SUWWW = /bin/su - www xujing ALL=(root) NOPASSWD: SU,SUWWW,SERVICESCmnd_Alias FILESOCKET = /etc/zabbix/scripts/zabbix_fileSocket_cron.sh,/etc/zabbix/scripts/zabbix_tomcat_cron.sh,/etc/zabbix/scripts/file_socket.sh,/usr/bin/sudo,/bin/su,/bin/killzabbix ALL=(root) NOPASSWD: FILESOCKET
设置开机启动服务:
执行如下命令:cp /nfs/script/zabbix_agentd /etc/init.d/chmod +x /etc/init.d/zabbix_agentdchkconfig --add zabbix_agentdchkconfig zabbix_agentd on
启动zabbix_agentd:
执行如下命令:/etc/init.d/zabbix_agentd start
检查日志确认启动无异常:
tail -100 /tmp/zabbix_agentd.log220.web.lg-9-8.zwc.com<2013-04-21 01:26:10> ~/zabbix-2.0.3root># tail -100 /tmp/zabbix_agentd.log19506:20130421:012610.832 Starting Zabbix Agent [10.0.0.220]. Zabbix 2.0.3 (revision 30485).19507:20130421:012610.832 agent #0 started [collector]19509:20130421:012610.833 agent #1 started [listener]19510:20130421:012610.833 agent #2 started [listener]19511:20130421:012610.834 agent #3 started [listener]
Zabbix Proxy服务器安装配置
zabbix支持分布式监控,通过zabbix_proxy部署,将一集中区域的监控数据收集并转发到Zabbix Server。原理如图:
安装前准备
创建zabbix用户:
groupadd zabbix -g 504;useradd zabbix -u 504 -g zabbix
安装依赖软件包:
yum install -y net-snmp-devel curl-devel mysql-devel traceroute net-snmp-utils OpenIPMI-devel
创建运行时需要的相关目录,并配置好权限:
mkdir /var/log/zabbix;chown -R zabbix.zabbix /var/log/zabbix/mkdir /var/run/zabbix; chown -R zabbix.zabbix /var/run/zabbix/
另外还需要准备一个mysql数据库以存储zabbix_proxy收集的监控数据。
安装
编译安装fping
参考
编译安装zabbix_proxy
tar -zxvf zabbix-1.8.10.tar.gz;cd zabbix-1.8.10./configure --prefix=/usr/local/zabbix --enable-agent --with-mysql --with-libcurl --with-net-snmp --with-openipmimake make install
配置
启动脚本
常见问题
zabbix 图片乱码解决
1.上传本地windown系统的C:\WINDOWS\Fonts\simhei.ttf文件到zabbixweb目录的zabbix/fonts下.2.vi zabbix/include/defines.inc.php把所有的DejaVuSans替换成simhei
zabbix 模版
官方配置有很多的模版,参考http://www.zabbix.com/