www.zabbix.com
http://www.zabbix.com/documentation/1.8/complete
http://www.zabbix.com/wiki/start


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)等配合使用。


软件需求:
Software     Version     Comments
Apache       1.3.12 or later
PHP       5.0 or later
PHP modules:php-gd   GD 2.0 or later   PHP GD module must support PNG p_w_picpaths.
PHP TrueType support         --with-ttf
PHP bc support          php-bcmath, --enable-bcmath
PHP XML support          php-xml or php5-dom, if provided as a separate package by the distributor
PHP session support         php-session, if provided as a separate package by the distributor
PHP socket support         php-net-socket, --enable-sockets. Required for user  script  support.
PHP multibyte support        php-mbstring, --enable-mbstring
MySQL php-mysql    3.22 or later    Required if MySQL is used as Zabbix back end database.


①环境
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


②下载解压
wget http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.11.tar.gz?download

tar zxvf zabbix-1.8.11.tar.gz


③配置zabbix数据库
useradd zabbix
cd zabbix-1.8.11
\cp -rf /usr/share/doc/mysql-server-5.0.77/my-medium.cnf /etc/my.cnf
mysql_install_db --user=mysql
/etc/init.d/mysqld start

进入数据库:
mysql -u root -p

create database zabbix character set utf8;
grant all on zabbix.* to zabbix@localhost identified by 'zabbixpwd';
quit

退出数据库
mysql -uzabbix -pzabbixpwd zabbix < create/schema/mysql.sql
mysql -uzabbix -pzabbixpwd zabbix < create/data/data.sql
mysql -uzabbix -pzabbixpwd zabbix < create/data/p_w_picpaths_mysql.sql


④编译安装zabbix
./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-openipmi && \
make && \
make install


⑤zabbix服务配置
* 服务端口定义:
编辑 /etc/services,在后面追加:
cat >> /etc/services << "EOF"
zabbix-agent 10050/tcp Zabbix Agent
zabbix-agent 10050/udp Zabbix Agent
zabbix-trapper 10051/tcp Zabbix Trapper
zabbix-trapper 10051/udp Zabbix Trapper
EOF


* 复制配置文件:
mkdir /etc/zabbix
cp misc/conf/zabbix_server.conf /etc/zabbix/
cp misc/conf/zabbix_proxy.conf /etc/zabbix/
cp misc/conf/zabbix_agent.conf /etc/zabbix/
cp misc/conf/zabbix_agentd.conf /etc/zabbix/


* 修改 zabbix server 配置文件 /etc/zabbix/zabbix_server.conf 中的数据库用户名和密码:
sed -i '95s/root/zabbix/' /etc/zabbix/zabbix_server.conf
sed -i '103a\DBPassword=zabbixpwd' /etc/zabbix/zabbix_server.conf


* 安装启动脚本
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/


* 修改 /etc/init.d/zabbix_server 变量定义:
sed -i '19s#opt#usr/local#' /etc/init.d/zabbix_server
sed -i '25s#bin#sbin#' /etc/init.d/zabbix_server


* 修改 /etc/init.d/zabbix_agentd 变量定义:
sed -i '19s#opt#usr/local#' /etc/init.d/zabbix_agentd
sed -i '25s#bin#sbin#' /etc/init.d/zabbix_agentd


* 启动 Zabbix Server:
/etc/init.d/zabbix_server start


* 启动 Zabbix Agentd
/etc/init.d/zabbix_agentd start


* 配置WEB,复制 Web Interface 到 web 目录:
cp -r frontends/php/* /var/www/html/
/etc/init.d/httpd start


⑥WEB配置zabbix
打开http://localhost/,看到提示:
Timezone for PHP is not set. Please set "date.timezone" option in php.ini.
按照提示,修改 php.ini 中时区设置:
date.timezone = Asia/Shanghai
service httpd restart

依次单击下一步,在环境检测时会看到几个fail,再次修改 php.ini,根据提示设置相应参数:
post_max_size = 32M
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
upload_max_filesize = 32M
       Current value  Required  Recommended    
PHP version      5.1.6     5.0    5.3.0    Ok
PHP memory limit     16M     128M    256M    Fail
PHP post max size     8M      16M    32M    Fail
PHP upload max filesize   2M      2M     16M    Ok
PHP max execution time    30      300    600    Fail
PHP max input time     60      300    600    Fail
PHP timezone      Asia/Shanghai              Ok
PHP databases support    MySQL                Ok
PHP BC math      yes                Ok
PHP MB string      yes                Ok
PHP Sockets      yes                Ok
PHP GD        2.0.28     2.0    2.0.34    Ok
GD PNG Support      yes                Ok
libxml module      2.6.26     2.6.15    2.7.6    Ok
ctype module      yes                Ok

解决后按提示继续安装即可。


⑦结束:
安装完后直接访问:
http://localhost/
默认用户名和密码是:
admin/zabbix









客户端安装配置:


①环境
yum -y install gcc


②下载解压
tar zxf zabbix-1.8.11.tar.gz


③配置zabbix用户
useradd zabbix
cd zabbix-1.8.11


④编译安装zabbix
./configure --prefix=/usr/local/zabbix --enable-agent && \
make && \
make install


⑤zabbix服务配置
* 服务端口定义:
编辑 /etc/services,在后面追加:
cat >> /etc/services << "EOF"
zabbix-agent 10050/tcp Zabbix Agent
zabbix-agent 10050/udp Zabbix Agent
EOF


* 复制配置文件:
mkdir /etc/zabbix
cp misc/conf/zabbix_agent.conf /etc/zabbix/
cp misc/conf/zabbix_agentd.conf /etc/zabbix/


* 修改配置文件:
vi /etc/zabbix/zabbix_agent.conf
Server=192.168.168.100

vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.168.100
Hostname=server30


* 安装启动脚本
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod a+x /etc/init.d/zabbix_agentd


* 修改 /etc/init.d/zabbix_agentd 变量定义:
BASEDIR=/usr/local/zabbix
FULLPATH=$BASEDIR/sbin/$BINARY_NAME

* 添加到启动服务:
chkconfig --add zabbix_agentd

* 启动 Zabbix Agentd
/etc/init.d/zabbix_agentd start



减少data1大小的办法,在vim /etc/my.cnf内修改

innodb_data_file_path = ibdata1:10M:autoextend:max:12800M
innodb_file_io_threads = 4
innodb_file_per_table = 0


忘记密码怎么办

更改密码为zabbix

mysql
mysql>update  users set passwd=md5("zabbix") where userid='1';
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1  Changed: 0  Warnings: 0


飞信下载连接及脚本

http://www.it-adv.net/


把飞信机器人和支持库都放在同一个目录/usr/local/fetion,复制部分支持库到/lib才能正常使用,运行./fetion不报错就行了

cp /usr/local/fetion/libACE-5.7.2.so /lib/

cp /usr/local/fetion/libACE_SSL-5.7.2.so /lib/

cp /usr/local/fetion/libcrypto.so.4 /lib/

cp /usr/local/fetion/libssl.so.4 /lib/


l 尝试发送测试飞信信息


cd /usr/local/fetion


./fetion --mobile=136116XXXXX --pwd=XXXXX --to=136116XXXXX --msg-utf8="我是小金金"

检查手机是否收到消息


#脚本位置

cd /home/zabbix/bin

#!/bin/bash
/usr/local/fetion/fetion --sid=946384807 --pwd=passwd --to="$1" --exit-on-verifycode=1 --msg-type=2 --msg-utf8="$2" >/dev/null 2>&1

或者



#!/bin/sh
#send sms by fetion
#$1, $2, $3 mean Recipient, Subject and Message
/usr/local/fetion/fetion --mobile=136116XXXXX --pwd=XXXXXX --to=$1 --msg-utf8="$2, $3" >/dev/null 2>&1



IO监控for Linux
UserParameter=vfs.partition.read[*],/usr/bin/iostat -d -k $(/bin/df | grep "$1$" | awk '{print $$1}'|awk -F\/ '{print $$3}')|sed -n '4p'|awk '{print $$3}'
UserParameter=vfs.partition.write[*],/usr/bin/iostat -d -k $(/bin/df | grep "$1$" | awk '{print $$1}'|awk -F\/ '{print $$3}')|sed -n '4p'|awk '{print $$4}'


vfs.partition.read[sda]                                      //IO key


IO监控for aix

UserParameter=vfs.partition.read[*],/usr/bin/iostat -d -m $1 | grep '^$1' | awk '{print $$5}'
UserParameter=vfs.partition.write[*],/usr/bin/iostat -d -m $1 | grep '^$1' | awk '{print $$6}'


vfs.partition.read[hdisk1]                                //IO key

#检测用户登陆

UserParameter=user.login[*],who|grep $1 &>/dev/null;echo $?

user.login[root]                                          //key

#检查mount
UserParameter=mount.nfs[*],cat /proc/mounts|grep $1 &>/dev/null;echo $?
mount.nfs[需要监控的目录]            //key

检查USB使用
UserParameter=usb.device.number,tree /proc/bus/usb/ | wc -l

Windows服务器网卡流量监控

windows的key的关键字可以使用网卡的ip地址来替代。例如:net.if.out[192.168.101.1,bytes]

ORACLE监控

sqlplus '/as sysdba'

CREATE USER "ZABBIX" IDENTIFIED BY "jinyan123";
GRANT "CONNECT" TO "ZABBIX";
grant select on v_$instance to zabbix;
grant select on v_$sysstat to zabbix;
grant select on v_$session to zabbix;
grant select on dba_free_space to zabbix;
grant select on dba_data_files to zabbix;
grant select on dba_tablespaces to zabbix;
grant select on v_$log to zabbix;
grant select on v_$archived_log to zabbix;
grant select on v_$loghist to zabbix;
grant select on v_$system_event to zabbix;
grant select on v_$event_name to zabbix;


UserParameter=oracle[*],/zabora/zabora \$1 \$2


#TCP/IP链接数

UserParameter=custom.tcp.conn[*],netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | grep $1 | awk '{print $$2}'



监视网卡流量的trigger

{Template_Linux:net.if.in[eth0,bytes].min(300)}>10000000


#memcached

UserParameter=memcache[*],printf 'stats\n' | nc 127.0.0.1 11211 | grep "STAT $1"|awk '{print $$3}'


#redis监控

cat redis_stats.sh

#!/bin/bash

/usr/local/bin/redis-cli -h IP地址 info >/tmp/redisstat


UserParameter=redis.stat[*],cat /tmp/redisstat | grep "$1:" | cut -d":" -f2

UserParameter=used_cpu_user_children,sed -n 78p /tmp/redisstat|awk -F':' '{print $2}'

UserParameter=used_cpu_sys_children,sed -n 77p /tmp/redisstat|awk -F':' '{print $2}'


#监控程序响应时间

curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" "http://localhost:8080/"


UserParameter=checktime,sh /etc/zabbix/checkweb.sh|awk -F ":" '{print $7}'


#监控文件大小

vfs.file.size[/opt/mysql_slow/localhost-slow.log]