Zabbix1.8.9系统安装及配置说明


Zabbix 网络监测系统安装配置说明 -Version 1.1 信息系统部 2012-2-15 第一部分 Zabbix 简介 Zabbix 是一个提供 Web 管理界面的企业级的开源系统/网络监控分布式监控解决方 案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术 支持赢利。官方网站:http://www.zabbix.com。 Zabbix 通过 C/S 模式采集数据,通过 B/S 模式在 web 端展示和配置。被监控端:主机 通过安装 agent 方式采集数据,网络设备通过 SNMP 方式采集数据。Server 端:通过收集 SNMP 和 agent 发送的数据,写入 MySQL 数据库,再通过 php+apache 在 web 前端展示。 Zabbix 运行条件: Server:Zabbix Server 需运行在 LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件 要求低。Agent:目前已有的 agent 基本支持市面常见的 OS,包含 Linux、HPUX、Solaris、 Sun、windows。SNMP:支持各类常见的网络设备。 Zabbix 功能: 具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据 库性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制),支持自动发现 网络设备和服务器,支持分布式,能集中展示、管理分布式的监控点,扩展性强,server 提 供通用接口,可以自己开发完善各类监控 相关软件:159.226.100.94/zhaohuaming/zabbix 目录下 第二部分 Zabbix Server 安装布署 服务端环境 Zabbix Server 需运行在 LAMP(Linux+Apache+Mysql+PHP)环境下,这里 以 CENTOS 系统为例,分解图示说明安装过程。 一、系统预装环境准备 2.1.1、LAMP 环境: #yum -y install mysql-server httpd php 2.1.2 其他需要用到的包: #yum -y install mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml 2.1.3、Zabbix 安装包,并解压 下载最新的 Zabbix 安装包(官网:http://www.zabbix.com)到本地,解压 #tar zxvf zabbix-1.8.9.tar.gz -C /usr 2.1.4、增加 zabbix 用户和组 #groupadd zabbix #useradd –g zabbix –m zabbix 二、数据库准备 启动 MySQL 数据库: #service mysqld start 修改 MySQL root 用户密码(默认密码为空),实例这里配置密码为“syslas” :#mysqladmin –u root password “syslas(密码)” 测试能否正常登陆数据库 :#mysql –u root –p 创建 Zabbix 数据库:Mysql> create database zabbix character set utf8; 创建 Zabbix 用户:Mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; Mysql>quit; 导入数据库 sql 脚本: #cd zabbix-1.8.9 # mysql -u root -p zabbix < ./create/schema/mysql.sql # mysql -u root -p zabbix < ./create/data/data.sql # mysql -u root -p zabbix < ./create/data/images_mysql.sql 三、 编译安装:配置编译,prefix 安装后程序目录 # ./configure --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/zabbix-1.8.9 # make && make install ***************************** 编译安装:+ jabber #./configure --enable-server --with-mysql --with-net-snmp --with-jabber=/usr/local/ --with-libcurl --enable-proxy --enable-agent --prefix=/usr/zabbix-1.8.9 通过即时通讯软件(Jabber)实现的报警功能与邮件报警相近,配置复杂,不推荐。 四、配置文件及 web 前端服务配置文件的修改 2.4.1、在“/etc/services”文件结尾,添加服务端口,添加后效果如下: # grep zabbix /etc/services (vi + /etc/services) zabbix-agent 10050/tcp # Zabbix Agent zabbix-agent 10050/udp # Zabbix Agent zabbix-trapper 10051/tcp # Zabbix Trapper zabbix-trapper 10051/udp # Zabbix Trapper 2.4.2、添加配置文件“/etc/zabbix”,并修改相应配置 # mkdir -p /etc/zabbix # cp ./misc/conf/* /etc/zabbix # chown -R zabbix:zabbix /etc/zabbix 2.4.3、修改 Server 配置文件,基本不用修改,用默认配置即可,只需修改一项 DBPassword=密码[DBPassword=syslas] # vi /etc/zabbix/zabbix_server.conf (vi +/DBPassword /etc/zabbix/zabbix_server.conf) 2.4.4、修改 Agentd 配置文件,更改 HOST NAME 为本机的 hostname 就好了 #vi /etc/zabbix/zabbix_agentd.conf 2.4.5、在 httpd 服务中,添加 web 前端 php 文件 # cd /usr/zabbix-1.8.9/frontends/ # cp -rf php /var/www/html/ # cd /var/www/html/ # mv php zabbix # chown -R zabbix:zabbix zabbix 五、zabbix web 前端界面的安装配置 2.5.1、zabbix web 前端界面运行的准备,修改 php 相关参数,/etc/php.ini 找到如下几项, 改成下面的值,前面有“;”号的要删掉: max_execution_time = 300 max_input_time = 300 date.timezone = Asia/Shanghai post_max_size = 32M memory_limit = 128M (increased to 256MB and everything works fine) mbstring.func_overload = 2 重启 apache:#service httpd restart 2.5.2、Zabbis Server 地址开始 web 前端配置 在本地浏览器上访问 Zabbis Server 地址开始 web 前端配置,http://ServerIP/zabbix 按提 示一步步 next,其中 Step 3 Check of pre-requisites 必须全部项目 OK 后才能继续配置,如有 提示 fail,去 server 上检查是否安装这个包或配置是否按上述更改。 Step 4 填入 Zabbix Server 登陆 mysql 的用户和密码(前面安装配置的,root/syslas)。 Step 7 按提示下载配置文件到 Server 的/var/www/html/zabbix/conf 下,名字一定要是 zabbix.conf.php 配置完成后,出现登陆界面,默认的用户为:admin,密码为:zabbix。(如 果 提 示 ”configuration file fail”,按提示把配置文件下载回来,然后复制到 /var/www/html/zabbix/conf,点击“Retry”按钮,配置成功) 注意:zabbix 安装打开“前端配置”网页时,出现空白的解决方法,见“FAQ”部分。 六、启动 Server 安装完成后的 server 程序在/usr/local/zabbix/sbin/目录下,可以直接启动 #/usr/local/zabbix/sbin/zabbix_server 为了便于启停 Server,我们做一些小配置:复制控制程序 # cp ./misc/init.d/redhat/zabbix_* /etc/init.d/ 修改配置目录,将如下两个文件中的 BASEDIR=改为/usr/zabbix-1.8.9 ; 下面两个配置中的 bin 改为 sbin,ZABBIX_AGENTD,ZABBIX_SUCKERD; PIDFILE(PIDFILE=/tmp/zabbix_agentd.pid,与 agentd.conf 中的配置相同)。 # vi /etc/init.d/zabbix_server_ctl # vi /etc/init.d/zabbix_agentd_ctl 加入开机启动 # echo '/etc/init.d/httpd start &' >>/etc/rc # echo '/etc/init.d/mysqld start &' >>/etc/rc # echo '/etc/init.d/zabbix_server_ctl start &' >>/etc/rc # echo '/etc/init.d/zabbix_agentd_ctl start &' >>/etc/rc 创建快键方式 # ln -s /etc/init.d/zabbix_server_ctl /usr/bin/zabbix_server_ctl # ln -s /etc/init.d/zabbix_agentd_ctl /usr/bin/zabbix_agentd_ctl 启动 Server 和 Agentd(可以通过 start stop restart 来操作) # zabbix_agentd_ctl start # zabbix_server_ctl start 检查启动是否正常,查看进程是否起来,分 server 和 agentd #ps –ef |grep zabbix #netstat -ntl 查看服务端口号 如果进程没起来,可以查看对应的日志错误,默认在 /tmp/zabbix-*.log 至此 Zabbix Server 的安装已完成 七、zabbix 数据备份与还原 Backup:mysqldump zabbix > zabbix.dmp 或 mysqldump -u root -p --default-character-set=UTF8 --opt zabbix > zabbix.sql Recovery:mysql zabbix < zabbix.dmp 或 mysql -u root -p zabbix < zabbix.sql 八、Zabbix 数据库优化 zabbix 收集的信息非常多,导致运行一段时间后,做数据备份或者迁移的时候,非常的 慢,数据库占用空间也很大,可以先做一部分清理工作,主要涉及到下面的表: #mysql –u root –p zabbix Mysql>use zabbix; truncate table history; optimize table history; truncate table history_str; optimize table history_str; truncate table history_uint; optimize table history_uint; truncate table trends; optimize table trends; truncate table trends_uint; optimize table trends_uint; truncate table events; optimize table events; 九、自动跳转 添加 Var/www/index.html 文件自动跳转 http://124.16.154.69/zabbix: 十、修改 logo, 见 zabbix-logo.doc 第三部分 Zabbix agent 安装布署 Zabbix 需要在被监控的 host(服务器)上安装 agent,在 zabbix 官网上下载相应平台的 agent 包到各被监控端,按如下方式在被监控上运行 agent。(注:官网上下载的 agent 包里没 有运行 agentd 所必须的配置文件,可以从 zabbix server 上拷贝一份 zabbix_agentd.conf,这 个 conf 文件是所有平台都通用的) 一、Linux、UX 系统上的 agent 安装 Linux、UX 上的 agent 是编译好了的,直接解压即可。 3.1.1、zabbix 用户和组要创建:( #groupadd zabbix;#useradd –g zabbix –m zabbix) 3.1.2、解压 zabbix agent:#tar zxvf zabbix_agents_1.8.5.linux2_6.i386.tar.gz -C /usr。四个 文件分别解压到了/usr/bin 和/usr/sbin 中。 3.1.3、取一份 server 上的 zabbix_agnetd.conf 到本地,并修改: #scp root@Zabbix_Server_IP:/etc/zabbix/zabbix_agentd.conf . 然后按说明修改,一般我们只需修改如下 3 个参数: Hostname=本机名(或 IP) Server=Zabbix Server IP1, Zabbix Server IP2 //LogFile=本机 agentd 日志保存文件 修改完成后,运行 agentd # mkdir /etc/zabbix # cp zabbix_agentd.conf /etc/zabbix # zabbix_agentd start 3.1.4、查看 agentd 进程:#ps –ef|grep zabbix_agentd 如果进程没起来,可查看 agentd.log 日志来排查问题。(注:启动时建议用全路径,否 则可能会出错) 3.1.5、加入开机运行 # echo ' zabbix_agentd start ' >>/etc/rc 二、Windows 操作系统上的 agent 安装 Windows 下 解 压 客 户 端 包 ( zabbix_agents_1.8.9.win.zip ) 到 c: , 下 载 修 改 好 的 zabbix_agentd.conf 文件也放到 c:,打开 cmd 命令行,执行 C:> zabbix_agentd –i 安装后会在系统服务里添加一个 zabbix_agentd 服务,会自动开机运行 如果需要将客户端和配置文件放在其他目录,请执行 C:>DIR/zabbix_agentd –c DIR/zabbix_agentd.conf –install C:>DIR/zabbix_agentd –c c:\zabbix-agent\zabbix_agentd.conf –i 启动 agentd 服务 C:>zabbix_agentd –start [zabbix_agentd –s] C:>DIR/zabbix_agentd –c c:\zabbix-agent\zabbix_agentd.conf –s 或是通过管理->服务找到 zabbix_agentd 来启动 第四部分 Zabbix snmp 安装布署 zabbix1.8.9 下配置 SNMP 监控 CISCO 交换机 1.cisco 交换机上配置 SNMP Cat38(config)#snmp-server community public ro #设置 snmp 可读字段为 public Cat38 (config)#snmp-server enable traps 2. zabbix 上定义 Discovery 策略 a.定义 Discovery 策略 IP 搜索范围,agent 选择“SNMPv2 agent”,“community”为前面设 置的“public”,OID 设置为".1.3.6.1.2.1.1.1.0",注意这串数字前面有个“.”哦。你想知道这个 OID 是什么意思,你可以在 zabbix server 上使用如下命令: snmpwalk -v 2c -c public host .1.3.6.1.2.1.1.1.0,其实就是获取的设备信息。 yum -y install net-snmp-utils(安装 snmpwalk 和 snmpget:) [root@server bin]# snmpwalk -v 2c -c cisco 192.168.1.202 .1.3.6.1.2.1.1.1.0 SNMPv2-MIB::sysDescr.0 = STRING: Cisco Internetwork Operating System Software IOS (tm) C2950 Software (C2950-I6Q4L2-M), Version 12.1(22)EA1, RELEASE SOFTWARE (fc1) Copyright (c) 1986-2004 by cisco Systems, Inc. Compiled Mon 12-Jul-04 08:18 by Madison b.Add,Save 后如下图 3.Discovery 策略生效后,在 Monitoring-Discovery 下能看到所发现的 cisco 设备,如下 图所示: 当然,此时上图中的 monitored host 应该都是空白的。上图是我已经把发现的 cisco 设 备关联好了的。 4.发现这么多 cisco 设备,型号也有很多种,2918、2950、2960、3500、4500 等,真是 数量多、型号杂。要把他们一个个添加到 host 列表中去想想都麻烦。不过我们在 Configuration-Action 中定义策略让它们自动关联到 cisco 设备模板并添加到 host 列表中去。 以 2960 为例,我们需要将每个 2950 设备关联到 Template_Cisco_2960,并添加 host。 首先新建一条 Action 策略 Auto Discovery. Cisco 2960 Device,Event source 选择 Discovery,然后,Action conditions 添加如下三条: Service type = "SNMPv2 agent" Discovery status = "Up" Received value like "2960" #根据 Discovery 得到的值,满足这三个条件则执行下面的 操作。 最后,Action operations 添加如下两条: Add to group "Cisco switcher" #添加主机到 Cisco switcher 组中 Link to template "Template_Cisco_2960" #关联主机到 2960 模板 5.应用这个 Action 策略后,服务器就会自动把发现的设备关联和添加到相应的组中。 6.现在就可以根据你自己的需求修改每个模板,在模板里面添加 Items、Applications、 Triggers、Graphs。 添加 Items 主要涉及到 OID、Key,可是我怎么知道某个 Items 它的 OID、Key 是多少? 这里给大家推荐一个软件 Getif,一个可以查看设备 SNMP 信息的软件,功能相当强大。下 面是下载地址:http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMP/getif/getif-2.3.1.zip 软件运行时的界面: 在 MBrowser 页面你能查到 snmp 设备上所有的对象(比如 cpu util)的 OID、Key,以 及它的值,下图中看到的.1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 对应的是 5 秒钟 cpu 利用率,Key 为 enterprises.9.9.109.1.1.1.1.3.1。在 zabbix 服务器上可以使用 snmpget 命令来获取 OID 的值 snmpget -v 2c -c public 192.168.1.* .1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 7. 最后放一张交换机的 cpu 利用率、内存占用的图。 How to Collect CPU Utilization on Cisco IOS Devices Using SNMP http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a0080094a94.sht ml snmpwalk -v 2c -c public 10.0.100.71 .1.3.6.1.2.1.1.1.0,其实就是获取的设备信息。 cpu 利用率: 5 秒钟 cpu 利用率:snmpwalk -v 2c -c public 10.0.100.71 .1.3.6.1.4.1.9.9.109.1.1.1.1.3 1 分钟 cpu 利用率:snmpwalk -v 2c -c public 10.0.100.71 .1.3.6.1.4.1.9.9.109.1.1.1.1.4 5 分钟 cpu 利用率:snmpwalk -v 2c -c public 10.0.100.71 .1.3.6.1.4.1.9.9.109.1.1.1.1.5 第五部分 Zabbix 监控相关配置使用 通过本地浏览器访问 http://ServerIP/zabbix 来开始配置和使用 zabbix。 使用 zabbix 进行监控之前,要理解 zabbix 监控的流程。 一次完整的监控流程可以简单描述为: Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项) ->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组) ->Users(用户) 一、添加 Hosts Host 是 Zabbix 监控的基本载体,所有的监控项都是基于 host 的。 通过 Configuration->Hosts->Create Host 来创建监控设备 按提示填入 Name、Groups、IP ,其他选项默认即可,Link Templates 处选择一个模板, save 即可成功添加设备。(注:如果 host 上没安装 agent,添加后的状态会是 unmonitor,会 采集不到值,Zabbix 自带大量的设备监控模板,我们添加主机时通过 link 到这些模板,就 可以快速添加主机的监控项和告警触发条件。) 一类的 hosts 可 以 归 属 到 同 一 个 Host Group ,便于分类管理同一类设备,在 Configuration->Host Group->Create Host Group 可以添加设备组 二、添加 Items Item 是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。 在 Configuration->Hosts 界面,我们能看到每个 host 所包含的 items 总数,点击对应主 机的 items 项,可以看到具体的每个 item 信息,这些 items 可以引用自 templates,也可以自 己创建。 通过点击具体 item 名字可以修改已有监控项的属性,点击 Satus 的链接可以禁用/启用 这个监控项。(注:我们可以通过新建一个 template,在 template 中禁用掉所有不需要用到 的 items,然后把同一类 hosts link to 这个 template,就不用一台台主机去更改 items) 新增 item 可以通过点击右上角的 create item 来创建 按提示逐项填入相关信息即可,其中 key 是 zabbix 已经自带的取值方法,Application 类似于 host groups,是 item 的组。(item key 也可以自定义,后面会讲到如何自定义监控项) Zabbix 自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包 含在 item 的 item key 中了,更多的 type 和 key 的解释请参考: http://www.zabbix.com/documentation/1.8/manual/config/items 三、添加 Triggers Trigger 是触发器,当 Items 采集值满足 triggers 的触发条件时,就会产生 actions。 每一个 trigger 必须对应一个 item,但一个 item 可以对应多个 trigger。 同样,通过点击 Configuration->Hosts->Triggers 中某个 trigger 的名字,可以修改 trigger 的属性。(注意:引用自 template 的 trigger 触发值是不能单独修改的,必须在 template 中修 改,或是复制一个同样的 trigger 再修改,然后禁用掉之前的) 新增 trigger 可以通过点击右上角的 create trigger 来创建 Expression 中选择对应的 item、触发方式及触发值,Severity 是告警级别,根据 trigger 的严重性来选择。 Zabbix 提供多种 trigger 触发方式供选择,常用的我们可以选择 last value /=/#/N(最 近一次采集值),或是选择 maximal value for period of time (一段时间内的最大值),等等。可以 根据实际需要来设定触发方式。更多的解释请参考: http://www.zabbix.com/documentation/1.8/manual/config/triggers 四、添加 Actions Action 是告警动作,当触发器条件被满足时,就会执行指定的 action。 通过 Configuration->Actions->Create Action 来创建 Action Event source:来源,如果选择 triggers,即所有的 triggers 条件满足时都会执行这个 action Escalations:告警是否升级,及升级时间 Subject 、 Message : 告 警 标 题 和 内 容 , 此 处 可 引 用 zabbix 的 宏 变 量 ; 例 如 {{HOSTNAME}:{TRIGGER.KEY}.last(0)} 表示最后一次采集值,更多宏变量参考 : http://www.zabbix.com/documentation/1.8/manual/config/macros Recovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义 Conditions:trigger 产生的条件,条件可以多选 Operation:选择 media 及 user 实例: Subject :{TRIGGER.STATUS}: {TRIGGER.NAME} Message :Server Name: {HOSTNAME} Trigger: {TRIGGER.NAME} Trigger status: {TRIGGER.STATUS} Trigger severity: {TRIGGER.SEVERITY} Trigger URL: {TRIGGER.URL} Item values: 1. {ITEM.NAME} ({HOSTNAME}:{TRIGGER.KEY}): {ITEM.VALUE} 五、添加 Medias Media,即告警方式,Zabbix 可以提供四类 Media:Email/SMS/Jabber/Script,通过 Administrator->Media Type 来修改或新增告警方式 Email 方式最常用的,填入相关的 SMTP 信息,即可通过邮件方式发送告警。 SMS 方式要在 server 主机上接入短信 modem。 Jabber 方式是一种 linux 下的即时通讯工具,通过 Jabber 发送即时消息。(jabberes.org) Script 方式可以通过自己编写程序或脚本的方式发送告警信息。 Zabbix 配置邮件报警的配置过程见,附件一。 六、添加 Users 在 Administrator->Users 可以添加用户和用户组 通过 User Group 可以限制用户的权限,zabbix 自带的用户组的权限限制基本能满足我 们的要求。 创建用户时可以根据用户的不同作用划分到不同的组,media 中填入告警接受地址及告 警接受时间等信息。 七、添加 WEB Monitorings Web Monitoring 是用来监控 web 程序的,可以监控到 web 程序的下载速度、返回码及 响应时间,还支持把一组连续的 web 动作作为一个整体来监控。 下面我们以监控登陆 zabbix 的 web 程序为例,来展示如何使用 web monitoring。 Configuration->web->Create Scenario 创建一个 Scenario(注:必须选择 host 后才能创建 scenario,zabbix 的所有 items 都必须创建在 hosts 上) Application:选择这个 scenario 所在的 application 组 Name:scenario 的名字 Basic authentication:鉴权 Update interval:监控频率,s 为单位 Agent:选择要使用的浏览器客户端,可能同样的 web 程序对不同的客户端展示的内容 会不一样 Status:默认为 active Variables:变量定义,这里定义的变量可在后续的 steps 中使用,这里我们定义了用户 和密码的变量 Steps:web 程序的各个步骤,选择 add 新增一个 Login 的 step,来模拟用户登陆,传递 用户和密码给 index.php 页面 URL:监控的 web 页面(注:必须是全路径带页面名) Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量 Timeout:超时时间 Required:页面中能匹配到字符,匹配不到即认为错误 Status codes:页面返回码 添加完 step 后,我们在 Monitoring->web 页面即能看到监控的状态和图示 创建完 scenario 后,zabbix server 会自动创建相关的 items,所以我们只需为这些 items 添加 triggers 即可让 web scenario 出错时产生告警 Configuration->hosts->点击 scenario 所在的 host 条目的 trigger,直接 create trigger,在 select items 的时候就可以看到系统自动创建的 items(注:自动创建的 items 在 host 的 items 列表中直接是看不到的,需要在创建 trigger 时选择 items 时才能看到) 可以在 items 列表中看到,系统为每个 step 创建了 3 个 item,Download Speed/Response Code/Response Time,为整个 scenario 创建了一个 test.fail 的 item,可以分别为其创建 trigger 下例我们创建一个 Login 页面返回码的 trigger,大于等于 400 即为错误 再创建一个整个 scenario 所有 step 运行是否成功的 trigger,采集值为 0 表示整个 scenario 的所有 step 都执行成功了,第几步的 step 执行失败就返回数字几,且后续的 step 都不会继 续执行下去。 这样,一个完整的 web monitoring 就配置完成了。 Web monitoring 还有更多强大的功能,未能一一研究了解,有待挖掘 八、添加 Graphs Zabbix 的 Graphs 功能很强大,可以为每一个 item 绘制图表,也可以把多个 items 绘制 在一张图表内。 通过 configuration->hosts 选择要绘制图表的 host,点击 graphs,create graphs 即可创建 图表。 Graph type:图表样式,有线状、柱状、饼状 还可以自定义图表大小,及 Y 轴最大最小值 通过 add items 可以添加在同一个图表中展示的多个 items(注:注意每个 item 的颜色 及取值范围,范围相差太大图表会显示不全) 配置好的 graphs 在 monitoring->graphs 中查看 在 monitoring->last data 下能快速查看每个 host 的每个 item 的 graph 九、添加 Screens Screen 将多种信息放在一起展示,便于集中展示某个 host 的多个信息,或是比较多个 hosts 的同一种信息,这些信息可以为 graphs、maps、server infos 等等,几乎涵盖 zabbix 所有 的监控信息。 通过 configuration->screen->creat screen 来创建,创建时定义 screen 的行数和列数,点击 对应单元格内的 change,添加相应的信息 通过 monitoring-screen,可以查看之前配置好的信息。 十、添加 MySQL 监控 Zabbix 自带有 MySQL 的监控模板,可以做一些简单的监控。 1、更改 agentd 配置 Agent 的配置文件上默认就有通过 mysqladmin 工具取 MySQL 数据库监控信息的配置, 我们只需更改需 MySQL 所在 host 上的 agentd.conf 文件,将文件最后的所有关于 mysql 的 UserParameter 前的#号去掉,更改登陆 mysql 的用户和密码即可。 例如:修改后其中一条监控数据库状态如下: UserParameter=mysql.ping,mysqladmin -uroot –proot ping|grep alive|wc –l 修改后重启 host 上的 agentd,使配置文件生效。 2、添加 items web 端编辑 mysql 所在的 host,使之 link 到 template_APP_MySQL 模板,然后在 host 的 items 里就能看到刚才定义的这些 MySQL 的监控项了,修改相应的 trigger 值即可。 这个 zabbix 自带的 mysql 监控功能比较弱,只是通过 mysqladmin 工具去查询 mysql 的 一些状态而已。 我们可以自己编写或是找一些功能更强的 mysql 监控脚本,加到 zabbix 监控里,后面 会讲到如何自己添加监控。 另外更详细的方法可参考 zabbix wiki 上的 mysql 监控方法,这个监控的就非常详 细 :http://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including _replication 十一、添加 Oracle 监控 Oracle 监控也参考 zabbix wiki 上如下的方法(调用 zabora 工具): http://www.zabbix.com/wiki/howto/monitor/db/orcale/oracle 1、 下载 oracle 监控程序 zabora 到 oracle 所在的主机上,修改所在 host 的 agentd.conf, 添加监控项,按如下格式: UserParameter=oracle.name,DIR/zabora pattern sid 监控 oracle 数据库状态: UserParameter=oracle.checkactive,/usr/local/zabora checkactive OracleSID 监控 oralce 数据库连接用户总数 UserParameter=oracle.usercount,/usr/local/zabora usercount OracleSID 更多 zabora 的监控项参考如下: zabora version: 1.5 usage: zabora checkactive [SID] -- Check Intance is active and open. zabora usercount [SID] -- Count of users connected to Oracle. zabora activeusercount [SID] -- Count of active users. zabora dbsize [SID] -- Size of user data (without temp). zabora dbfilesize [SID] -- Size of all datafiles. zabora version [SID] -- Oracle version (Banner). zabora dsksortratio [SID] -- Disk sorts ratio. zabora rcachehit [SID] -- Read Cache hit ratio. zabora uptime [SID] -- Instance Uptime (seconds). zabora commits [SID] -- User Commits. zabora rollbacks [SID] -- User Rollbacks. zabora deadlocks [SID] -- Deadlocks. zabora redowrites [SID] -- Redo Writes. zabora tblscans [SID] -- Table scans (long tables). zabora tblrowsscans [SID] -- Table scan rows gotten. zabora indexffs [SID] -- Index fast full scans (full). zabora hparsratio [SID] -- Hard parse ratio. zabora netsent [SID] -- Bytes sent via SQL*Net to client. zabora netresv [SID] -- Bytes received via SQL*Net from client. zabora netroundtrips [SID] -- SQL*Net roundtrips to/from client. zabora logonscurrent [SID] -- Logons current. zabora lastarclog [SID] -- Last archived log sequence. zabora lastapplarclog [SID] -- Last applied archive log (at standby).Next items requires [timed_statistics = true]. zabora freebufwaits [SID] -- free buffer waits. zabora bufbusywaits [SID] -- buffer busy waits. zabora logswcompletion [SID] -- log file switch completion. zabora logfilesync [SID] -- log file sync. zabora logprllwrite [SID] -- log file parallel write. zabora enqueue [SID] -- enqueue waits. zabora dbseqread [SID] -- db file sequential read waits. zabora dbscattread [SID] -- db file scattered read. zabora dbsnglwrite [SID] -- db file single write. zabora dbprllwrite [SID] -- db file parallel write. zabora directread [SID] -- direct path read. zabora directwrite [SID] -- direct path write. zabora latchfree [SID] -- latch free. zabora zaboraver -- Version of this script. 保存配置,重启 agentd 2、 在 zabbix web 页面上创建对应的 items 和 triggers 创建监控 oracle 数据库状态的 item,item key 不要 select,直接在 key 栏输入在 agent 上的 UserParameter name 例如监控数据库状态的:oracle.checkactive 创建 trigger,选择之前创建的 item,最后一次采集值不为 0,即为状态有问题。 (注:不确定每个 zabora 方法的返回值时,可直接在 agent 上运行获取结果) 十二、添加自定义监控 对于 zabbix 功能上无法实现的监控,我们可以通过自己编写程序或脚本来辅助完成, 并将脚本的结果通过 agent 递交给 zabbix server 统一管理,一样可以绘制 graph 报表等。 具体的方法请参考上述 oracle 监控。 UserParameters 的定义方法,请参考: http://www.zabbix.com/documentation/1.8/manual/config/user_parameters 十三、添加 Templates 如果有大量的同一类设备,需要监控的信息也大致类似,一个个去修改相关参数比较麻 烦,我们可以通过创建一个 template 来简化操作。 Configuration->Host Groups->Template->Create Template 创建 template 后,在 configuration->host->template 下找到刚创建的 MyLinuxTemplate, 修改相关的 items、triggers、graphs 等信息,使满足要求后 link 到相关的 host 即可。 十四、添加 Macros Macros 指宏变量,定义的宏变量可以在 trigger、actions 等多种场景中引用。 Macros 分系统自带全局宏的及自定义的宏。 系统自带的全局 macros 列表及解释参考: http://www.zabbix.com/documentation/1.8/manual/config/macros 引用 macros 的例子可参考上述 action 中添加{{Hostname}:{trigger.key}.last(0)}的例子。 Zabbix 还支持自定义 macros,在添加 host 或是 template 时,我们可以在 macros 项中定 义好后续要用到的宏变量,格式为: {macroname}=macrovalue 自定义的宏变量及系统自带的宏变量都可以在 zabbix 场景中引用,zabbix 在遇到引用 的宏变量时,会先查找当前场景中定义的宏,接着查找当前 host 的自定义宏,接着查找 link 的 template 的宏,最后查找 zabbix 系统自带的全局宏。所以在自定义宏时注意宏引用的顺 序。 十五、添加 Inventory Inventory 用来管理设备存档信息的。 在添加 host 时,勾选右侧的 Use profile,我们即可填入该台设备的型号、编码、MAC 地址等详细信息,勾选 Use extended profile 则可以填入更详细的信息。 填写的 inventory 信息在 inventory->hosts 下能看到. 十六、Export/Import XML Zabbix 提供将所有配置导出为标准 XML 格式的文件,同样,也支持导入标准格式的 XML 配置文件。 通过 configuration->Export/Import->Export,勾选要导出的 host,Preview 可以展示要导出 的 host 的详细配置,选择 export 即可导出 xml 文件到本地。 Import 可导入本地的 XML 文件,注意格式一定要符合标准要求,如果 server 上有同名 的配置,会被覆盖掉。 如果有大量的配置需要手动新增,譬如新增 oralce 监控,我们可以手动编写 xml,一次 导入所有的 items 和 triggers,但要注意格式,可自己导出一个配置后参考。 第六部分 FAQ 1、 Export/Import XML 文件时报 http 500 错误 答:安装 php-xml 包后,重启 apache 即可 2、 WEB 前端安装 Step 3 PHP MB Strings Overload 检查 fail 答:修改 php.ini 中的 mbstring.func_overload = 2,重启 apache 3、 无法修改 trigger 的阀值 答:添加 host 时如果 link 了 template,那 items 和 triggers 都是引用自 template,而不是 实际属于这个 host 的,所以如果要修改 trigger 阀值,需要修改 template 中的阀值,修改后 所有 link 到这个 template 的 trigger 都会改变。如果只想修改某台 host 的 trigger,可以复制 一个 trigger,修改新复制过来的阀值,再禁用掉之前的即可。 4、 运行 agentd 时进程总起不来,查看 agetd.log 又无报错 答:全路径运行后正常 5、图形中的汉字显示为方框(乱码)问题 答:添加好图形后,图形是的有些汉字是方框。明显是字体原因。 方法:查看 zabbix 相关信息,其字体文件放置在 web 目录:zabbix/fonts/DejaVuSans.ttf, 因此我们可以替换掉此字体文件。 先备份: # mv /var/www/html/zabbix/fonts/DejaVuSans.ttf /opt/DejaVuSans.ttf.bak 然后复制 uming.ttf(最好用 msyh.ttf,从 win7 或网上下载)字体文件,uming.ttfd 的文 件路径为:/usr/share/fonts/chinese/TrueType, 中文不乱码但日期乱码。 # cp /usr/local/src/msyh.ttf /var/www/html/zabbix/fonts/DejaVuSans.ttf 然后重新启动 zabbix_server 程序,打开图形显示正常了。 6、“zabbix_server (no pid file) not running” 答:如下两个配置文件中的 PIDFILE(PIDFILE=/tmp/zabbix_agentd.pid,与 agentd.conf 中的配置相同),没有对应。 # vi /etc/init.d/zabbix_server_ctl # vi /etc/init.d/zabbix_agentd_ctl 7、zabbix 安装打开网页时,空白解决方法 答:使用浏览器打开地址: http://[Server-IP]/zabbix 可能会出现白屏幕,查看/var/log/httpd/error_log 文件,发现如下错误:“Call to undefined function bcscale() in /var/www/html/zabbix/include/defines.inc.php on line 802” 是 php 缺少一个数学库: $ yum install php-bcmath(或没安装好) 8、错误:/usr/local/sbin/zabbix_server: error while loading shared libraries: libiksemel.so.3: cannot open shared object file: No such file or directory 解决:export LD_LIBRARY_PATH=/usr/local/lib ----------------------------------------------------------- 或:ln -s /usr/local/lib/libiksemel.so.3 /usr/lib/libiksemel.so.3 或编译是:--with-jabber=/usr 9、No background Images in Maps 答:This can be found under "Administration->General" chose the Filter "Images" and type "Background". 10、zabbix currently does not natively support multihomed hosts,不支持多穴主机。 11、http://www.zabbix.com/forum/index.php 附件一: Zabbix 配置邮件报警 一、安装配置 msmtp 1、解压:# tar xvf msmtp-1.4.22.tar.bz2 2、编译安装: # cd msmtp-1.4.22 # ./configure --prefix=/usr/local/msmtp # make && make install 3、配置 msmtprc 文件: # mkdir /usr/local/msmtp/etc # vi /usr/local/msmtp/etc/msmtprc 主要配置参数为: account default host smtp.163.com #你的发送邮件服务器 port 25 from xman@163.com #要从哪个邮箱发出 auth login #这里如果使用 on 的话会报 "msmtp: cannot use a secure authentication method"错误 tls off user xman@163.com #邮箱用户名 password xmanufo #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为 600 属性 logfile /var/log/mmlog 以 las_netmonitor@163.com(我的 163 邮箱)邮箱为实例,配置文档 account default host smtp.163.com port 25 from las_netmonitor@163.com auth login tls off user las_netmonitor@163.com password sys1las logfile /var/log/maillog 发现:163 的邮箱行,smtp.las.ac.cn 邮箱测试不行,可能是邮箱验证的关系。 4、测试一下:/usr/local/msmtp/bin/msmtp las_netmonitor@163.com (测试邮件地址), 输入内容后按 ctrl+D 发出。 # /usr/local/msmtp/bin/msmtp las_netmonitor@163.com 二、配置 MUTT 在实际测试中发现直接使用 msmtp 命令发出去的邮件会看不到发件人和主题,只能看到 邮件内容,所以我使用 mutt 挂接在 msmtp 上,mutt 默认会安装,如果没有安装请: # yum install mutt (1)修改 mutt 的配置文件/etc/Muttrc,不是/etc/muttrc ,M 要大写,在结尾添加如 下内容: 1.set sendmail="/usr/local/msmtp/bin/msmtp" 2.set use_from=yes 3.set realname = las_netmonitor@163.com #发件人邮箱地址 4.set editor="vi" 5.保存退出 (2)测试:echo "邮件报警测试" | mutt -s "测试" las_netmonitor@163.com #收件 人地址(到 smtp.las.ac.cn 邮件服务器有延迟>5M,等)。 三、创建 zabbix 用于发送邮件的脚本 脚本放在什么位置随便,但是要保证 zabbix 能找到!(测试目录为:/usr/bin/alarm) (1)vim /usr/bin/alarm,并写入如下内容: #!/bin/bash echo "$3" | mutt -s "$2" $1 # $3 表示邮件内容、$2 表示邮件标题、$1 表示收件 人 (2)chmod a+x /usr/bin/alarm 四、zabbix 配置 (1)创建 meida types 1.登录到 zabbix,进入“Administration" >>”Media types",点击右上角“Create Media Type"。Description 填"mail-baojing"或其它名称,Type 选择"Script",Script 填” alarm”。 2.点击 save 保存 (2) zabbix 用户配置 登录到 zabbix,进入"Adimistration" >> "Users",在之前选定要发送消息的组里的 Members 栏位里选择一个用户,例如选择 Admin 用户。 在用户信息修改界面最下方的”Media"处点击"Add"按钮。 Type 选择"mail-baojing",Send to 填入收件人地址,点击 Add 添加。 点击"Save"保存配置。 报警级别配置: "Media"处点击"Edit"按钮。"NIWAHD"绿色为 ON,黑色为 OFF。 (3)创建 actions 1.登录到 zabbix,进入"Configation" >> "Actions",点击右上角"Create Actions"。 输入 Name“action-baojing”,其它都默认点击右侧“Action Operations"下的"New"按钮, "Operation Type"选择"Send message","Send Message to"选择一个或多个要发送消息的 用户组,”Send only to"选择我们之前新增的 mail-baojing。 2.点击 save 保存 至此配置完成,测试! 不光是 zabbix,nagios 等监控平台的邮件报警都可以这样配置。当然转到 139,189 邮箱 的话可以收到短信的,会更加及时的收到报警。 五、FAQ: 1、注:如收到测试发邮件没有问题,在 zabbix 不能触发,请检查 在 zabbix_server.conf 配置文件中有配置选项 AlertScriptsPath,如 AlertScriptsPath=/usr/bin/ zabbix 的 web 界面中只写脚本名称,不要加路径 2、测试用户 user type 选择 zabbix super admin 如果是 Zabbix User 是无法收到邮 件的
还剩37页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

z_post

贡献于2014-04-14

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf