zbixx运维监控管理平台使用手册NEW.doc
xxxx运维监控管理平台操作手册V1.0xxxx(天津)科技有限公司变更记录 序号版本变更说明修改人/日期01V1.0新建张冠洲/2017年1月目录1.平台简介41.1概述41.2平台功能41.3优劣势42.安装部署52.1服务端环境准备52.2数据库准备52.3编译安装62.4配置文件及web前端文件修改62.5web前端安装配置62.6启动Server72.7在hosts上配置agent83.配置使用93.1添加 Hosts93.2添加 Items103.3添加 Triggers113.4添加 Actions113.5添加 Medias123.6添加 Users133.7添加 WEB Monitorings133.8添加 Graphs163.9添加 Screens173.10添加 Maps183.11添加 SNMP监控193.12添加自定义监控193.13添加 Templates193.14添加Reports(定制报表)203.15添加Macros213.16添加自动发现设备223.17添加Inventory223.18Export/Import XML223.19Maintenance(维护时间)231. 平台简介1.1 概述xxxx运维监控管理平台根据自身业务需求进行开发以满足平台监控业务需要。平台通过C/S模式采集数据,通过B/S模式在web端展示和配置。被监控端:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据Server端:通过收集SNMP和agent发送的数据,写入MySQL数据库,再通过php+apache在web前端展示。平台运行条件:Server:Server端需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windowsSNMP:支持各类常见的网络设备1.2 平台功能具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图绘制)支持自动发现网络设备和服务器支持分布式,能集中展示、管理分布式的监控点扩展性强,server提供通用接口,可以自己开发完善各类监控2. 安装部署2.1 服务端环境准备平台Server端需要运行在CentOS、RedHat Linux、Debain等Linux平台上,这里以RHEL AS5作为部署环境。Root用户安装必须的包,建议配置好yum,通过yum安装下列包,解决包的依赖关系。LAMP环境#yum install mysql-server httpd php其他需要用到的包:#yum install mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml解压#tar zxvf ethane-1.8.1.tar.gz增加用户和组#groupadd ethane#useradd g ethane m ethane2.2 数据库准备启动MySQL数据库:#service mysqld start修改MySQL root用户密码(默认密码为空)#mysqladmin uroot password root测试能否正常登陆数据库#mysql uroot proot创建平台数据库Mysql> create database ethane character set utf8;Mysql> grant all on ethane.* TO ethane'localhost' identified by 'ethanepass' Mysql> flush privileges;导入数据库sql脚本#cd ethane-1.8.1# cat ./create/schema/mysql.sql |mysql -uroot proot ethane # cat ./create/data/data.sql |mysql -uroot -proot ethane # cat ./create/data/images_mysql.sql |mysql -uroot -proot ethane 2.3 编译安装配置编译,prefix是安装后程序目录# ./configure -with-mysql -with-net-snmp -with-libcurl -enable-server -enable-agent -enable-proxy -prefix=/usr/local/ethane# ./configure -with-mysql=/usr/local/mysql/bin/mysql_config -with-net-snmp -with-libcurl -enable-server -enable-agent -enable-proxy -prefix=/usr/local/ethane/mysql编译安装# make# make install2.4 配置文件及web前端文件修改添加服务端口,添加后如下# grep ethane /etc/servicesethane-agent 10050/tcp# Ethane Agentethane-agent 10050/udp# Ethane Agentethane-trapper 10051/tcp# Ethane Trapperethane-trapper 10051/udp# Ethane Trapper添加配置文件# mkdir -p /etc/ethane# cp ./misc/conf/* /etc/ethane# chown -R ethane:ethane /etc/ethane修改Server配置文件基本不用修改,用默认配置即可,只需修改一项DBPassword=密码# vi /etc/ethane/ethane_server.conf修改Agentd配置文件,更改HOST NAME 为本机的hostname就好了#vi /etc/ethane/ethane_agentd.conf添加web前端php文件# cd frontends/# cp -rf php /var/www/html/# cd /var/www/html# mv php ethane# chown -R ethane:ethane ethane2.5 web前端安装配置修改php相关参数# vi /etc/php.ini 找到如下几项,改成下面的值,前面有;号的要删掉max_execution_time = 300max_input_time=300memory_limit = 128Mdate.timezone = Asia/Shanghaipost_max_size = 32Mmbstring.func_overload = 2重启apache#service httpd restart在本地浏览器上访问Serve地址开始web前端配置,http:/ServerIP/ethane按提示一步步next,其中Step 3 Check of pre-requisites 必须全部项目OK后才能继续配置,如有提示fail,去server上检查是否安装这个包或配置是否按上述更改。图 1Step 4 填入Server 登陆mysql的用户和密码Step 7 按提示下载配置文件到Server的/var/www/html/ethane/conf下,名字一定要是ethane.conf.php配置完成后,出现登陆界面,默认的用户为:admin,密码为:ethane2.6 启动Server安装完成后的server程序在/usr/local/ethane/sbin/目录下,可以直接启动#/usr/local/ethane/sbin/ethane_server为了便于启停Server,我们做一些小配置复制控制程序# cp ./misc/init.d/redhat/ethane_* /etc/init.d/修改配置目录,将如下两个文件中的BASEDIR=改为/usr/local/ethane, 下面两个配置中的bin改为sbin,ETHANE_AGENTD,ETHANE_SUCKERD # vi /etc/init.d/ethane_server_ctl# vi /etc/init.d/ethane_agentd_ctl加入开机启动# echo '/etc/init.d/ethane_server_ctl start &' >>/etc/rc.local# echo '/etc/init.d/ethane_agentd_ctl start &' >>/etc/rc.local创建快键方式# ln -s /etc/init.d/ethane_server_ctl /usr/bin/ethane_server_ctl# ln -s /etc/init.d/ethane_agentd_ctl /usr/bin/ethane_agentd_ctl启动Server和Agentd(可以通过start stop restart来操作)# ethane_agentd_ctl start# ethane_server_ctl start检查启动是否正常,查看进程是否起来,分server和agentd#ps ef | grep ethane如果进程没起来,可以查看对应的日志错误,默认在/tmp/ethane-*.log至此平台 Server端的安装已完成2.7 在hosts上配置agent平台需要在被监控的host上安装agent,把相应平台的agent包部署到各被监控端,按如下方式在被监控上运行agent。Linux、UX:Linux、UX上的agent是编译好了的,不用安装#useradd ethane #cd /usr/local/ethane#tar zxvf ethane_agents_1.8.linux2_6.i386.tar.gz取一份server上的ethane_agentd.conf到本地,然后按说明修改,一般我们只需修改如下5个参数:Server=Ethane Server IPHostname=本机名LogFile=本机agentd日志保存文件SourceIP=本机IPListenPort=10050修改完成后,运行agentd#/usr/local/ethane/sbin/ethane_agentd -c /usr/local/ethane/ethane_agentd.conf &#ps ef | grep ethane_agentd如果进程没起来,可查看agentd.log日志来排查问题。(注:启动时建议用全路径,否则可能会出错)加入开机运行# echo '/usr/local/ethane/sbin/ethane_agentd -c /usr/local/ethane/ethane_agentd.conf &' >> /etc/rc.localWindows:Windows下解压客户端包到c:,下载修改好的ethane_agentd.conf文件也放到c:,打开cmd命令行,执行C:>ethane_agentd install安装后会在平台服务里添加一个ethane_agentd服务,会自动开机运行如果需要将客户端和配置文件放在其他目录,请执行C:>DIR/ethane_agentd c DIR/ethane_agentd.conf install 启动agentd服务C:>ethane_agentd start或是通过管理->服务找到ethane_agentd来启动3. 配置使用通过本地浏览器访问来开始配置和使用平台。使用平台进行监控之前,要理解监控的流程。一次完整的监控流程可以简单描述为:Host Groups(设备组)->Hosts(设备)->Applications(监控项组)->Items(监控项)->Triggers(触发器)->Actions(告警动作)->Medias(告警方式)->User Groups(用户组)->Users(用户)3.1 添加 HostsHost是平台监控的基本载体,所有的监控项都是基于host的。通过Configuration->Hosts->Create Host来创建监控设备图 2按提示填入Name、Groups、IP ,其他选项默认即可,Link Templates 处选择一个模板,save即可成功添加设备。(注:如果host上没安装agent,添加后的状态会是unmonitor,会采集不到值,平台自带大量的设备监控模板,我们添加主机时通过link到这些模板,就可以快速添加主机的监控项和告警触发条件)。一类的hosts可以归属到同一个Host Group,便于分类管理同一类设备,在Configuration->Host Group->Create Host Group 可以添加设备组。3.2 添加 ItemsItem是监控项,是监控的基本元素,每一个监控项对应一个被监控端的采集值。在Configuration->Hosts界面,我们能看到每个host所包含的items总数,点击对应主机的items项,可以看到具体的每个item信息,这些items可以引用自templates,也可以自己创建。图 3通过点击具体item名字可以修改已有监控项的属性,点击Satus的链接可以禁用/启用这个监控项。(注:我们可以通过新建一个template,在template中禁用掉所有不需要用到的items,然后把同一类hosts link to这个template,就不用一台台主机去更改items)新增item可以通过点击右上角的create item来创建图 4 按提示逐项填入相关信息即可,其中key是平台已经自带的取值方法,Application类似于host groups,是item的组。(item key也可以自定义,后面会讲到如何自定义监控项)平台自带非常多的监控采集项及方法,基本能满足当前所有的监控功能,这些都包含在item的 item key中了。3.3 添加 TriggersTrigger是触发器,当Items采集值满足triggers的触发条件时,就会产生actions。每一个trigger必须对应一个item,但一个item可以对应多个trigger。同样,通过点击Configuration->Hosts->Triggers中某个trigger的名字,可以修改trigger的属性。(注意:引用自template的trigger触发值是不能单独修改的,必须在template中修改,或是复制一个同样的trigger再修改,然后禁用掉之前的)新增trigger可以通过点击右上角的create trigger来创建图 5Expression中选择对应的item、触发方式及触发值,Severity是告警级别,根据trigger的严重性来选择。平台提供多种trigger触发方式供选择,常用的我们可以选择last value </>/=/#/N(最近一次采集值),或是选择maximal value for period of time (一段时间内的最大值),等等。可以根据实际需要来设定触发方式。3.4 添加 ActionsAction是告警动作,当触发器条件被满足时,就会执行指定的action。通过Configuration->Actions->Create Action来创建Action图 6Event source:来源triggers,即所有的triggers条件满足时都会执行这个actionDiscovery:自动发现模块Auto registration:事件产生记录Escalations:告警是否升级,及升级时间Subject、Message:告警标题和内容 ,此处可引用平台的宏变量;例如 HOSTNAME:TRIGGER.KEY.last(0)表示最后一次采集值。Recovery Message:告警恢复信息,不勾选平台会用默认的,勾选后自定义Conditions:trigger产生的条件,条件可以多选Operation:选择media 及user3.5 添加 MediasMedia,即告警方式,平台可以提供四类Media:Email/SMS/Jabber/Script,通过Administrator->Media Type来修改或新增告警方式Email方式最常用的,填入相关的SMTP信息,即可通过邮件方式发送告警。图 7SMS方式要在server主机上接入短信modem。Jabber方式是一种linux下的即时通讯工具,通过Jabber发送即时消息。Script方式可以通过自己编写程序或脚本的方式发送告警信息。3.6 添加 Users在Administrator->Users 可以添加用户和用户组通过User Group可以限制用户的权限,ethane自带的用户组的权限限制基本能满足我们的要求。创建用户时可以根据用户的不同作用划分到不同的组,media中填入告警接受地址及告警接受时间等信息。图 83.7 添加 WEB MonitoringsWeb Monitoring是用来监控web程序的,可以监控到web程序的下载速度、返回码及响应时间,还支持把一组连续的web动作作为一个整体来监控。下面我们以监控登陆平台的web程序为例,来展示如何使用web monitoring。Configuration->web->Create Scenario 创建一个Scenario(注:必须选择host后才能创建scenario,平台的所有items都必须创建在hosts上)图 9Application:选择这个scenario所在的application组Name:scenario的名字Basic authentication:鉴权Update interval:监控频率,s为单位Agent:选择要使用的浏览器客户端,可能同样的web程序对不同的客户端展示的内容会不一样Status:默认为activeVariables:变量定义,这里定义的变量可在后续的steps中使用,这里我们定义了用户和密码的变量Steps:web 程序的各个步骤,选择add新增一个Login的step,来模拟用户登陆,传递用户和密码给index.php页面图 10URL:监控的web页面(注:必须是全路径带页面名)Post:传递给页面的参数,多个参数之间用&连接,此处可引用前面定义的变量Timeout:超时时间Required:页面中能匹配到字符,匹配不到即认为错误Status codes:页面返回码添加完step后,我们在Monitoring->web页面即能看到监控的状态和图示图 11创建完scenario后,平台 server会自动创建相关的items,所以我们只需为这些items添加triggers即可让web scenario出错时产生告警Configuration->hosts->点击scenario所在的host条目的trigger,直接create trigger,在select items的时候就可以看到平台自动创建的items(注:自动创建的items在host的items列表中直接是看不到的,需要在创建trigger时选择items时才能看到)图 12可以在items列表中看到,平台为每个step创建了3个item,Download Speed/Response Code/Response Time,为整个scenario创建了一个test.fail的item,可以分别为其创建trigger下例我们创建一个Login页面返回码的trigger,大于等于400即为错误图 13再创建一个整个scenario所有step运行是否成功的trigger,采集值为0表示整个scenario的所有step都执行成功了,第几步的step执行失败就返回数字几,且后续的step都不会继续执行下去。图 14这样,一个完整的web monitoring就配置完成了。Web monitoring还有更多强大的功能,未能一一研究了解,有待挖掘3.8 添加 Graphs平台的Graphs功能很强大,可以为每一个item绘制图,也可以把多个items绘制在一张图内。通过configuration->hosts选择要绘制图的host,点击graphs,create graphs即可创建图。图 15Graph type:图样式,有线状、柱状、饼状还可以自定义图大小,及Y轴最大最小值通过add items可以添加在同一个图中展示的多个items(注:注意每个item的颜色及取值范围,范围相差太大图会显示不全)配置好的graphs在monitoring->graphs中查看在monitoring->last data下能快速查看每个host的每个item的graph3.9 添加 ScreensScreen将多种信息放在一起展示,便于集中展示某个host的多个信息,或是比较多个hosts的同一种信息,这些信息可以为graphs、maps、server infos等等,几乎涵盖平台所有的监控信息。通过configuration->screen->creat screen来创建,创建时定义screen的行数和列数,点击对应单元格内的change,添加相应的信息图 16通过monitoring-screen,可以查看之前配置好的信息。3.10 添加 Maps这里可以添加关于主机的拓扑图:configration-maps,在右上角可以create maps或者import map这里我们点击crate maps 点save保存。图 17然后编辑保存好的maps图 18上面加号和减号可以增加主机 link说明主机的连接情况,可以进行自定义。图 193.11 添加 SNMP监控snmp的监控要在configration 中hosts中添加相关主机的模板和snmp版本,一般用snmp监控网络设备就可以了。平台对server的监控一般是用agent来做的,所以不提供snmp对server的监控,这一点和cacit有本质的区别,因为cacti主要是通过snmp对主机和网络设备进行监控的。图 203.12 添加自定义监控对于平台功能上无法实现的监控,可以通过自己编写程序或脚本来辅助完成,并将脚本的结果通过agent递交给server统一管理,一样可以绘制graph 报表等。3.13 添加 Templates如果有大量的同一类设备,需要监控的信息也大致类似,一个个去修改相关参数比较麻烦,我们可以通过创建一个template来简化操作。Configuration->Host Groups->Template->Create Template图 21创建template后,在configuration->host->template下找到刚创建的MyLinuxTemplate,修改相关的items、triggers、graphs等信息,使满足要求后link到相关的host即可。3.14 添加Reports(定制报表)平台中关于报表的功能有三项:Status of ethane:这是关于整个监控平台的图 22Avaliability report:整个平台可用的平台报表提供过滤功能。图 23Most busy triggers top 100:提供最常用的triggers 预览:Bar report :可定制报表可以报多个报表整合到一起。如下图是对test1 server的free memory和swap free每小时报表:图 243.15 添加MacrosMacros指宏变量,定义的宏变量可以在trigger、actions等多种场景中引用。Macros分平台自带全局宏的及自定义的宏。引用macros的例子可参考上述action中添加Hostname:trigger.key.last(0)的例子。平台还支持自定义macros,在添加host或是template时,我们可以在macros项中定义好后续要用到的宏变量,格式为:macroname=macrovalue自定义的宏变量及平台自带的宏变量都可以在场景中引用,在遇到引用的宏变量时,会先查找当前场景中定义的宏,接着查找当前host的自定义宏,接着查找link的template的宏,最后查找平台自带的全局宏。所以在自定义宏时注意宏引用的顺序。3.16 添加自动发现设备通过平台的相关设置,可以自动添加设备,可以更友好的维护和添加相关设备。3.17 添加InventoryInventory 用来管理设备存档信息的。在添加host时,勾选右侧的Use profile,我们即可填入该台设备的型号、编码、MAC地址等详细信息,勾选Use extended profile则可以填入更详细的信息。图 25填写的inventory信息在inventory->hosts下能看到.可以代替OCS一些功能。3.18 Export/Import XML平台提供将所有配置导出为标准XML格式的文件,同样,也支持导入标准格式的XML配置文件。通过configuration->Export/Import->Export,勾选要导出的host,Preview可以展示要导出的host的详细配置,选择export即可导出xml文件到本地。图 26Import可导入本地的XML文件,注意格式一定要符合标准要求,如果server上有同名的配置,会被覆盖掉。如果有大量的配置需要手动新增,譬如新增oralce监控,我们可以手动编写xml,一次导入所有的items和triggers,但要注意格式,可自己导出一个配置后参考。3.19 Maintenance(维护时间)这一点和Nagios的Schedule downtime for this host差不多,在Nagios中可以设置在downtime不需要告警,但是本平台设置的更加详细和可管理。图 27上图是Nagios的downtime设置,可以看出比较简单。图 28在Maintenance中可以添加一个维护的名字,在Maintenance type中可以设置no data collection选择该选项以后数据不在从agent端收集,也就是说不会产生tigger,这个和nagios downtime一样在该阶段都不会有告警信息,还有一个选项是with time data 收集相关数据,应该也不会产生告警信息(没有试验,验证)。在下面的Active since 和Active till 可以选择开始和结束时间,Description添加该维护时间的相关描述。下面的Maintenance是更加详细的时间设置,即维护周期时间类型,one time onle daily(每天) 每周,每月等开始日期时间长度等设置。图 29 选择维护的server或者 groups.