【一】、zabbix简介
zabbix是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级开元解决方案
zabbix由2部分构成,zabbix_server和可选组件zabbix_agent;
zabbix_server可以通过SNMP、zabbix_agent、ping、端口监视等方法提供对远程
服务器/网络状态的监视,收集数据等功能;
zabbix_server和zabbix_agent支持多种平台 Linux、BSD、Windows、MAC等
》项目(iterm):定义收集被监控的数据的项;如收集被监控机器的内存使用情况。
》集合(application):是一些项目的汇总,目录和文件的关系
》触发器(trigger):通过项目获得的数据来判断主机状态的定义
》图形(graph):通过项目来获得数据,以图形来展示
》模板(template):可以将项目、集合、触发器、图形汇总为一个模板,直接链接到一类主机来实现批量定义
》主机(host):被监控的对象、服务器、其他网络设备
》主机组(host group):一类的主机可以定义到一个主机组
》动作(action):触发器、自动发现或自动注册改变触发的动作
》自动发现(discovery):通过定义自动发现条件,配合动作批量添加主机
》自动注册(auto-registraion):agent想Server发送注册请求,server定义自动注册条件来批量添加主机
》低级自动发现(Low——discovery):简单定义一个类多个项,如:磁盘容量监控,监控磁盘所有的分区
》维护(maintenance):定义主机合适的维护状态
》拓扑图(map):可以主机直接的拓扑
》屏幕(screents):多种类型显示到一个screents里面
》IT服务(IT Service):有时一台主机宕掉可能不会影响到服务,IT服务可以定义容忍的限度
》仪表盘(dashboard):监视整体状态的显示
》总览(overview):显示所有机器的数据和触发器的状态
》web:定义场景监控的web服务器
》最新数据(last data):可查看主机项目获得的最新数据
》事件(Event):触发器状态改变的记录
【二】、安装zabbix_Server
环境描述:
平台:CentOS6.4+Apache+MySQL+PHP
Zabbix版本:2.0.6
Zabbix_server IP:172.17.0.8
Zabbix_agent IP: 172.17.0.7
1、安装lamp环境
Zabbix Server是通过web界面来管理的,并且Zabbix Server收集到的数据是保存在MySQL中的,下面通过yum安装
yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel
2、启动服务,设置MySQL的密码
service mysqld restart service httpd restart mysqladmin password redhat //设置MySQL的密码为redhat
3、创建zabbix运行所需的用户
groupadd zabbix
useradd zabbix -g zabbix
4、创建所需数据库和授权用户
mysql -uroot -predhat mysql>create database zabbix character set utf8; mysql>grant all on zabbix.* to zabbix@localhost identified by 'redhat'; mysql>flush privileges; mysql>quit
5、下载zabbix源码包编译安装
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz tar zxvf zabbix-2.0.6.tar.gz cd zabbix-2.0.6 ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl make && make install
6、导入zabbix定义的表结构和数据
cd /root/zabbix-2.0.6/database/mysql/ mysql -uzabbix -predhat zabbix < schema.sql mysql -uzabbix -predhat zabbix < images.sql mysql -uzabbix -predhat zabbix < data.sql
7、定义服务端口
vim /etc/services ##末尾添加以下内容 zabbix-agent 10050/tcp # Zabbix Agent zabbix-agent 10050/udp # Zabbix Agent zabbix-trapper 10051/udp # Zabbix Trapper zabbix-trapper 10051/tcp # Zabbix Trapper
8、修改zabbix_server配置文件
vim /usr/local/zabbix/etc/zabbix_server.conf LogFile=/tmp/zabbix_server.log //日志位置 PidFile=/tmp/zabbix_server.pid //PID所在位置 DBHost=localhost //本机名字 DBName=zabbix //数据库名字 DBUser=zabbix //数据库用户名 DBPassword=redhat //数据库密码
9、安装拷贝启动脚本,添加可执行的权限
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_server
10、修改启动脚本,启动zabbix_server
vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix //zabbix的安装位置 CONFILE=$BASEDIR/etc/zabbix_server.conf //定义zabbix配置文件位置,可以通过"find / -name zabbix_server.conf"来查看 #####搜素start这一项,修改启动选项#### # functions start() { if [ $RUNNING -eq 1 ] then echo "$0 $ARG: $BINARY_NAME (pid $PID) already running" else action $"Starting $BINARY_NAME: " $FULLPATH -c $CONFILE //这一行添加-c $CONFILE touch /var/lock/subsys/$BINARY_NAME fi } wq保存退出,重启zabbix_server服务
echo "/etc/init.d/zabbix_server start" >> /etc/rc.local
service zabbix_server restart
11、复制web代码到httpd配置的指定目录,默认是/var/www/html/
cp -rp frontends/php /var/www/html/zabbix chown -R apache:root /var/www/html/zabbix/
12、修改php配置文件
vim /etc/php.ini date.timezone = Asia/Chongqing //这里时间定义已重庆为主 post_max_size =16M max_execution_time =300 max_input_time =300
13、关闭Selinux开启防火墙端口
setenforce 0 //临时关闭 iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I INPUT -p tco --dport 3306 -j ACCEPT iptables -I INPUT -p tcp --dport 3306 -j ACCEPT iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT service iptables save 查看iptables [root@localhost create]# iptables -L -n --line Chain INPUT (policy ACCEPT) num target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:10050:10051 ### //zabbix端口为10050/10051 可以通过netstat -antp | grep zabbix 查看 ### ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) num target prot opt source destination
14、访问http://serverip/zabbix 通过web界面来安装zabbix
http://172.17.0.8/zabbix
#########zabbix安装完成后默认User:admin Password:zabbix#########
15、Web界面更改语言
###########这里是编译安装zabbix,如果嫌弃麻烦的话,此链接是跳转到yum安装zabbix的,相比下来yum还是比较简单的~!
CentOS 6.4 yum快速搭建Zabbix 2.2版本(中文)
URL:http://www.cnblogs.com/yangxiaofei/p/5434190.html
CentOS 6.4 yum快速搭建Zabbix 2.2版本(中文)
【三】、Linux安装zabbix_agent
Linux下安装zabbix_agent是在另一台被监控端安装的 IP:172.17.0.7
1、下载源码包
wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6.amd64.tar.gz mkdir /usr/local/zabbix tar zxvf zabbix_agents_2.0.6.linux2_6.amd64.tar.gz -C /usr/local/zabbix/ cd /usr/local/zabbix/
2、编辑配置文件
find / -name zabbix_agentd.conf cd conf/ vi zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log Server=172.17.0.8 //zabbix_server服务器IP ServerActive=172.17.0.8 //主动模式服务器IP Hostname=172.17.0.7 //设定主机名,本机IP
3、安装修改启动脚本
备注:这里的源码包里面是没有启动脚本的,在我们zabbix_server服务器端源码包是包含的有的,需要上传过来
zabbix_server: ##这里操作是在服务器端操作的 scp /root/zabbix-2.0.6/misc/init.d/fedora/core/zabbix_agentd 172.17.0.7:/etc/init.d ##提示输入zabbix_agent的root密码就可以了 vim /etc/init.d/zabbix_server BASEDIR=/usr/local/zabbix //zabbix的安装位置 CONFILE=$BASEDIR/etc/zabbix_agentd.conf //定义zabbix配置文件位置,可以通过"find / -name zabbix_agentd.conf"来查看 #####搜素start这一项,修改启动选项#### # functions start() { if [ $RUNNING -eq 1 ] then echo "$0 $ARG: $BINARY_NAME (pid $PID) already running" else action $"Starting $BINARY_NAME: " $FULLPATH -c $CONFILE //这一行添加-c $CONFILE touch /var/lock/subsys/$BINARY_NAME fi } wq保存退出重启zabbix_agentd服务 首先需要创建一个zabbix用户,不然会提示没有zabbix用户是启动不起来的 useradd zabbix service zabbix_agentd restart
【四】、Windows客户端安装zabbix_agent
1、下载客户端解压缩:
http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip
2、建立文件夹
我这里创建在了D盘下,根据你的Windows系统版本来把/bin下的版本文件Copy过去,再把conf下的配置文件拷贝到zabbix文件夹下,更名为zabbix_agent.conf
2、修改配置文件zabbix_agentd.conf
LogFil=C:zabbix_agentd.log Server=172.17.0.8 ServerActive=172.17.0.8 Hostname=Windows_2003_0.7 // Win的名字
3、安装zabbix_agentd服务
打开cmd
-c 指定配置文件的所在位置
-i 安装客户端
-s 启动客户端
-x 停止客户端
-d 卸载客户端
############以上第四节写的是zabbix_agent客户端的Win/Lin模式下安装#########
【四】、配置监控
1、配置--主机--创建主机
主机名称:这里是agent配置文件里面定义的Hostname,不然agent的主动模式收不到数据。
可见名称:这里就只是一个显示名称,自定义即可
组:将主机归类到那个组里面
代理接口:就是主机上安装的Agent
SNMP接口:通过SNMP来监控的
JMX接口:监控JAVA程序的接口
IPMI接口:通过IPMI接口来监控硬件
有代理节点监测:通过Proxy来监控
状态:致命是否可以立即监控该主机
2、定义模板
我们通常是将项目、触发器、图形等等定义在模板上,然后由模板链接到主机上,来实现监控
添加模板 配置---模板---创建模板
模板名称:自定义一个模板名称,可以通过该名字来引用模板。
可见名称:在模板中看到的名称;
组:定义模板属于哪个组里面;
新的组:如果没有合适的组可以新建一个组;
主机/模板:链接该模板的模板或者主机
其他|组:没有链接该模板的主机或者模板;可以通过<<添加进来
3、添加监控项
在主机中添加监控项和在模板中添加是一样的,这里是在模板中直接添加的
这里添加的监控项是内存使用情况
主机:如果在模板中定义就是模板名字,如果在主机中定义那就是主机的名字;
名称:定义该项目的名称;
类型:选择监控方式,这里是用的Agent代理模式;
键值:也就是key,通过key来获得agent的代理模式,SNMP为了以后引用可以自定义,agent内置了很多key,这里的vm.memory.size是内存相关的key,所有的key地址:https://www.zabbix.com/documentation/1.8/manual/config/items
数据类型:定义key返回的数据类型
单位:定义单位有2个用途:1;为了单位涣算,2;为了方便查看;
自定义倍数:将获得的数据乘以自定义的倍数来作为项的值;
数据更新间隔:设置多少时间更新一下子数据;
保留历史:保留过去多少时间的数据;
保留趋势:保留多少时间的趋势数据;
4、添加触发器
选择主机或者模板---添加触发器
5、添加图形
在模板上或者在主机上---添加图形
6、将模板链接到主机
点击主机名称----选择模板----添加
7、选择监测中---最新数据可以查看最新数据
备注:这里可能会出现乱码;作为中国人肯定是中文看起来比较方便了,可是咱们前提安装的时候不是已经修改过语言是中文了,为什么我这里还会出现乱码呢;原因分析:因为zabbix的前端没有中文语言的支持,说一下乱码的解决办法,只需将Windows下的中文字体上传到/var/www/html/zabbix/fonts上就可以了;操作如下
wget 'http://downloads.sourceforge.net/project/wqy/wqy-microhei/0.2.0-beta/wqy-microhei-0.2.0-beta.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwqy%2Ffiles%2Fwqy-microhei%2F0.2.0-beta%2F&ts=1365584502&use_mirror=jaist' -O wqy-microhei-0.2.0-beta.tar.gz tar zxvf wqy-microhei-0.2.0-beta.tar.gz scp wqy-microhei/wqy-microhei.ttc /var/www/html/zabbix/fonts/DejaVuSans.ttf
//应该还有其他办法,但是我喜欢简单,不搞了,可以正常显示了就ok 我下图是拿我的CPU监控为例子贴进来的。
这里我的CPU已经修改了触发器为大于5就会警告。看下面图:
【五:配置邮件报警】
1、安装邮件发送工具
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx -y
下载安装mailx
wget http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2 tar jxvf mailx-12.4.tar.bz2 cd mailx-12.4 make //这里会碰到make不成功 ~ 解决办法: wget http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch mv mailx-12.4-openssl_1.0.0_build_fix-1.patch mailx-12.4/ yum install patch -y patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch ##########OK这样子就可以继续make了########### make make install UCBINSTALL=/usr/bin/install ln -s /usr/local/bin/mailx /bin/mail ln -s /etc/nail.rc /etc/mail.rc whereis mailx mailx -V
2、配置zabbix服务端外部邮箱
vi /etc/nail.rc ##最后面添加## set from=xxx@163.com smtp=smtp.163.com set smtp-auth-user=xxx@163.com smtp-auth-password=123456 set smtp-auth=login
3、测试
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@163.com
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
4、配置zabbix服务器邮件报警
管理-示警媒介类型-创建媒体类型
5、配置zabbix用户邮件报警地址
6、创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:Sendmail
存档
7、添加zabbix服务端发送脚本
cd /usr/local/zabbix/share/zabbix/alertscripts vi sendmail.sh #!/bin/sh echo "$3" | mail -s "$2" $1 :wq! #保存退出 chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh #设置脚本所有者为zabbix用户 chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh #设置脚本执行权限
8、测试报警成功