1、监控软件学习之zabbix篇监控软件学习之Zabbix篇Part1.Zabbix简介一、Zabbix简介Zabbix Zabbix 是一个提供 Web 管理界面的企业级的开源系统/网络监控分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网站:Zabbix 1.8官方文档:Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端
2、展示。Zabbix运行条件:Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windowsSNMP:支持各类常见的网络设备二、Zabbix功能 具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制) 支持自动发现网络设备和服务器 支持分布式,能集中展示、管理分布式的监控点 扩展性强,server提供通用接口,可以自己开发完善各类
3、监控三、优劣势优点: 开源,无软件成本投入 Server对设备性能要求低(实际测试环境:虚拟机Redhat EL AS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上) 支持设备多 支持分布式集中管理 开放式接口,扩展性强缺点: 全英文,界面不友好 无厂家支持,出现问题解决比较麻烦 需在被监控主机上安装agent安装前先配置好PHP,要求支持 php-gd、php-bcmath、php-xml、php-mysql、php-net-socket、php-mbstring,即 configure 参数中加上 with-gd enable-bcmath
4、enable-xml with-mysql enable-sockets enable-mbstring下面开始安装 Zabbix:下载并解压:tar zxvf zabbix-1.8.2.tar.gzcd zabbix-1.8.2* 创建 zabbix 用户组和用户:groupadd zabbixuseradd zabbix -g zabbix* 创建 mysql 数据库:create database zabbix character set utf8;* 创建 mysql 用户:grant all on zabbix.* to zabbixlocalhost identified by z
5、abbix;* 导入表和数据:mysql -uroot -p zabbix create/schema/mysql.sqlmysql -uroot -p zabbix create/data/data.sqlmysql -uroot -p zabbix create/data/images_mysql.sql* 配置编译:./configure -enable-server -enable-proxy -enable-agent -with-mysql=/usr/local/mysql/bin/mysql_config -with-net-snmp -with-libcurlmake & ma
6、ke install配置参数说明:enable-server 安装 Zabbix Serverenable-proxy 安装 Zabbix Proxyenable-agent 安装 Zabbix Agentwith-mysql 使用 mysql 做数据库服务器with-net-snmp 支持 SNMPwith-libcurl 支持 curl,用于 web 监控* 服务端口定义:编辑 /etc/services,在后面追加:zabbix-agent 10050/tcp #Zabbix Agentzabbix-agent 10050/udp #Zabbix Agentzabbix-trapper
7、10051/tcp #Zabbix Trapperzabbix-trapper 10051/udp #Zabbix Trapper* 复制配置文件:mkdir /etc/zabbixcp 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
8、/zabbix_server.conf 中的数据库用户名和密码:DBUser=zabbixDBPassword=zabbix* 安装启动脚本cp misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix-servercp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix-agentd添加可执行权限:chmod +x /etc/init.d/zabbix-serverchmod +x /etc/init.d/zabbix-agentd修改 zabbix-server 变量定义:BA
9、SEDIR= /usr/localZABBIX_SUCKERD=$BASEDIR/sbin/zabbix_server修改 zabbix-agentd 头部变量定义:BASEDIR= /usr/localZABBIX_AGENTD=$BASEDIR/sbin/zabbix_agentd * 添加到启动服务:chkconfig -add zabbix-server chkconfig -add zabbix-agentdchkconfig zabbix-server onchkconfig zabbix-agentd on如何让 Zabbix Server 和 Zabbix agentd 开机自
10、动运行,免得每次都要手动运行,步骤如下:1. 复制 zabbix 源程序 misc/init.d/redhat 下的启动脚本到 /etc/init.d 目录下cp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_server_ctl /etc/init.d/zabbix_servercp /zabbix/zabbix-1.6.6/misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd2. 修改启动脚本使其支持 redhat 的 chkconfig,分别在两个脚本的 #!/bin/
11、sh 后加入如下两行注释,注意要行前要加“#” 哦# chkconfig: - 95 95# description: Zabbix Server3. 修改启动脚本中 BASEDIR 和 ZABBIX_SUCKERD ,制定到 zabbix_server 和 zabbix_agentd 的安装位置,如:BASEDIR=/usr/local/sbinZABBIX_SUCKERD=$BASEDIR/zabbix_server4. 使用 chkconfig 将其加入 init 的启动服务chkconfig -add zabbix_serverchkconfig -add zabbix_agentdc
12、hkconfig -level 345 zabbix_server onchkconfig -level 345 zabbix_agentd on4. 使用 chkconfig -list 检查一下chkconfig -list | grep zabbix输出如下:zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:offzabbix_server 0:off 1:off 2:off 3:on 4:on 5:on 6:off* 启动 Zabbix Server:/etc/init.d/zabbix-server start* 启动 Zabbix A
13、gentd/etc/init.d/zabbix-agentd start* 复制 Web Interface 到 web 目录:cp -r frontends/php /data/wwwroot/Zabbix会使用到fping,可以使用yum install fping 安装,如果yum无此软件,可使用源码安装进入 fping 解压后的源代码目录./configuremake install修改/etc/zabbix/zabbix_server.confFpingLocation=/usr/local/sbin/fping* 开始安装 Zabbix Web Interface打开 http:/
14、192.168.9.23/zabbix/,看到提示: date() function.date: It is not safe to rely on the systems timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you m
15、ost likely misspelled the timezone identifier. We selected Asia/Chongqing for CST/8.0/no DST instead/data/wwwroot/ Timezone for PHP is not set. Please set date.timezone option in php.ini.修改 php.ini 中时区设置:date.timezone = Asia/Shanghai继续http:/192.168.9.23/zabbix/修改php.inipost_max_size = 32Mupload_max_
16、filesize = 16Mmax_execution_time = 600max_input_time = 600memory_limit = 256M默认编译没有加上bcmath,手动加上cd /usr/local/src/monitor/php-5.2.13/ext/bcmath/usr/local/php-5.2.13/bin/phpize./configure -with-php-config=/usr/local/php-5.2.13/bin/php-configmakemake install编辑php.ini extension_dir = /usr/local/php-5.2
17、.13/lib/php/extensions/no-debug-zts-20060613/在其下增加一行:extension = bcmath.socd /data/wwwroot/chmod 777 confRetry* 结束:安装完后直接访问:http:/192.168.9.23输入管理用户名:admin 默认口令 zabbix 登陆。进入Configuration -Hosts 选择 Zabbix Server 然后 Activate Select,Zabbix Server (本机)的监控激活。进入 Monitoring Dashboard,可以看到 Zabbix Server 的监控
18、结果!汉化:zabbix本身有中文版,不过不够好,可以使用以下汉化文件下载汉化文件:wget tar zxvf cn_zh.inc.php_.tar.gzmv /data/wwwroot/ /data/wwwroot/cp cn_zh.inc.php /data/wwwroot/在hosts上配置agentZabbix需要在被监控的host上安装agent,在zabbix官网上下载相应平台的agent包到各被监控端,按如下方式在被监控上运行agent。(注:官网上下载的agent包里没有运行agentd所必须的配置文件,可以从zabbix server上拷贝一份zabbix_agentd.co
19、nf,这个conf文件是所有平台都通用的)Linux、UX:Linux、UX上的agent是编译好了的,不用安装#cd /usr/local/zabbix#tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz取一份server上的zabbix_agnetd.conf到本地,然后按说明修改,一般我们只需修改如下3个参数:Hostname=本机名Server=Zabbix Server IPLogFile=本机agentd日志保存文件修改完成后,运行agentd#/usr/local/zabbix/sbin/zabbix-agentd c /usr/loc
20、al/zabbix/zabbix_agentd.conf ps ef|grep zabbix_agentd如果进程没起来,可查看agentd.log日志来排查问题。(注:启动时建议用全路径,否则可能会出错)加入开机运行#echo /usr/local/zabbix/sbin/zabbix-agentd c /usr/local/zabbix/zabbix_agentd.conf & /etc/rcWindows:Windows下解压客户端包到c:,下载修改好的zabbix_agentd.conf文件也放到c:,打开cmd命令行,执行C:zabbix_agentd install安装后会在系
21、统服务里添加一个zabbix_agentd服务,会自动开机运行如果需要将客户端和配置文件放在其他目录,请执行C:DIR/zabbix_agentd c DIR/zabbix_agentd.conf install启动agentd服务C:zabbix_agentd start或是通过管理-服务找到zabbix_agentd来启动Part3.配置使用通过本地浏览器访问http:/ServerIP/zabbix来开始配置和使用zabbix。使用zabbix进行监控之前,要理解zabbix监控的流程。一次完整的监控流程可以简单描述为:Host Groups(设备组)-Hosts(设备)-Applica
22、tions(监控项组)-Items(监控项)-Triggers(触发器)-Actions(告警动作)-Medias(告警方式)-User Groups(用户组)-Users(用户)一、添加HostsHost是Zabbix监控的基本载体,所有的监控项都是基于host的。通过Configuration-Hosts-Create Host来创建监控设备按提示填入Name、Groups、IP ,其他选项默认即可,Link Templates处选择一个模板,save即可成功添加设备。(注:如果host上没安装agent,添加后的状态会是unmonitor,会采集不到值,Zabbix自带大量的设备监控模板
23、,我们添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件。)一类的hosts可以归属到同一个Host Group,便于分类管理同一类设备,在Configuration-Host Group-Create Host Group可以添加设备组二、添加ItemsItem是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。在Configuration-Hosts界面,我们能看到每个host所包含的items总数,点击对应主机的items项,可以看到具体的每个item信息,这些items可以引用自templates,也可以自己创建。通过点击具体item名字可以修改已
24、有监控项的属性,点击Satus的链接可以禁用/启用这个监控项。(注:我们可以通过新建一个template,在template中禁用掉所有不需要用到的items,然后把同一类hosts link to这个template,就不用一台台主机去更改items)新增item可以通过点击右上角的create item来创建按提示逐项填入相关信息即可,其中key是zabbix已经自带的取值方法,Application类似于host groups,是item的组。(item key也可以自定义,后面会讲到如何自定义监控项)Zabbix自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包含在i
25、tem的item key中了,更多的type和key的解释请参考:三、添加TriggersTrigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions。每一个trigger必须对应一个item,但一个item可以对应多个trigger。同样,通过点击Configuration-Hosts-Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自template的trigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的)新增trigger可以通过点击右上角的c
26、reate trigger来创建Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。Zabbix提供多种trigger触发方式供选择,常用的我们可以选择last value /=/#/N(最近一次采集值),或是选择maximal value for period of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。更多的解释请参考:四、添加ActionsAction是告警动作,当触发器条件被满足时,就会执行指定的action。通过Configuration-Actions-Create Action
27、来创建ActionEvent source:来源,如果选择triggers,即所有的triggers条件满足时都会执行这个actionEscalations:告警是否升级,及升级时间Subject、Message:告警标题和内容,此处可引用zabbix的宏变量;例如HOSTNAME:TRIGGER.KEY.last(0)表示最后一次采集值,更多宏变量参考:Recovery Message:告警恢复信息,不勾选系统会用默认的,勾选后自定义Conditions:trigger产生的条件,条件可以多选Operation:选择media及user五、添加MediasMedia,即告警方式,Zabbix可以提供四类Media:Email/SMS/Jabber/Script,通过Administrator-Media Type来修改或新增告警方式Email方式最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。SMS方式要在server主机上接入短信modem。Jabber方式是一种linux下的即时通讯工具,通过Jabber发送即时消息。Script方式可以通过自己编写程序或脚本的方式发送告警信息。六、添加Users在Administ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1