第三章;发现,自动注册和web监控
报警实现:应该使用专用的邮箱服务实现,使用专用的账号和密码
:使用飞信机器人,使用脚本实现发信息
action动作:condition,operation(remote,command,send message)
item:数据项()-->mysql server保存在数据库中-->web gui
key:是server向agent上获取数据时所需要的标记,
//一个key可以生成多个item,
//用户参数,userParameter=<key[*]>,<command>
//key也可以接受参数
//key和item并非是一一对应的
trigger:激发动作,action,//trigger定义某个item的阈值,key
动作:condition条件,operation (remote command,send message)
完整的监控:添加主机(主机组)-->添加item(内置的简单图形)--->trigger(event)-->
action(发通知(通知信息中包括大量的宏),condition,operation(step))
Item:自己建立的,
trigger:定义一个合理的范围,超出阈值,就产生event(OK--->problem)
action:可以是发信息,或者远程命令,一旦恢复后,还需要problem-->OK
:通知信息大量使用宏,需要条件和操作
action:一个trigger未必就执行operation还要看条件,还需要满足condition才可以
:在action.Operation中定义steps,定义step duratiion//报警升级的实现
:在action.Recovery中没有steps
:trigger可以引起事件,但是必须满足action.condition才可以
Media type:email,External Script,Jabber,SMS, //最常用的就是前两个,外部脚本可以实现调用外部的应用发送信息
Meida:google_mail,our_mail等,媒介是具体的实体
//item和trigger是主机级别的,需要定义在主机或者木板上
//action:不是在主机级别因为,当多个主机监控同一个指标的时候,可以定义一个action让多个主机上的同一个指标,同事报警,::可以定义多个主机监控同一个指标时的操作
//action.condition可以定义 host.group,trigger,hosts等同时监控
信息的发送目标:zabbix用户,每个用户的系方式,自定义发送的目标
Graph:将同一类的item数据项,展示在同一个图形中;
screen:将多个graph,放在一个大屏幕中
map:通过图形定义各个节点间的拓扑关系,地图
Template:批量监控每一个主机
添加主机时,直接把主机套用模板即可,建议多做几个模板,每个模板只关注几个指标,然后
添加主机的时候,只要多关联几个指标就可以了
可以把一个主机关联多个模板,模板可以嵌套,模板和主机是同一个级别
也可以定义item,application,trigger,graph等
discovery:
发现的方式:
agent
agentless,ssh,ping//无代理方式
SNMP,
JMX:专用于监控java虚拟机的环境,tomcat默认并不支持jmx,需要为toomcat添加特定的类,官网下载,安装,重启 //假如只监控tomcat的连接数,正在打开的网页数,就不在需要JMX ,脚本即可
zabbix的网络发现功能可基于如下信息进行
IP range
根据服务(FTP,SSH,WEB,POP3,IMAP,TCP)
zabbix agent发来的信息,agent可以
SNMP代理实现
Discovery:过程阶段:discovery-->action
Discovery中的事件:
service up,service down
host up,host down
service discovered,service lost
host discovered,host lost
action:{condition,operation}添加主机,关联模板
sending notification:发送通知
adding/removing hosts:添加或者删除主机
adding hosts to a group:添加主机到组
Enabling /disabled hosts:激活或者失效一个组
removing hosts from a group
linking hosts to/unlinking from a template
remote scripts
网络发现中添加时会自动创建interface
1.the services detected //例如基于SNMP检测成功,则会创建SNMP借口
2.如果某服务同时响应了agent和snmp则,会创建两种接口
3.如果同一种发现机制(如agentd)返回了非唯一数据,第一个接口为默认,其他的为额外接口
4.即便是某主机开始时只有agent接口,后来又通过SNMP发现了它,同样会为其添加额外的SNMP借口
5.不同主机-返回相同的数据,则第一个主机将被添加,余下的主机会被当做第一个主机的额外借口
实验:自动发现,环境:zabbix_server,另外一台主机,新建立的主机,
//server为200,client为101:server指定为server,zabbix-agent启用
1.新建模板
test template
Test group //组名
//不在模板中定义,discovery,在其他地方定义
2.创建item--trigger--graph
//agentd的agent.conf上有:UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}' 这个记录,建议在server上使用agent-get命令测试效果
//zabbix_get -s 10.0.0.101-k "agent.ping" //是一个key,对方的一个key
创建3个item
//确保item的key能够使用
memory.usage[MemAvailable] /3 */1 * * * /usr/sbin/ntpdate -u 202.120.2.101 &> /dev/null
重启server端和proxy服务
两个问题:
1.Too many processes on Zabbix server
2.Server从proxy上获取不到数据 //agent上server指向proxy
3.报警机制的实现
4.Zabbix-node-agent实现
Proxy常见问题:
1.proxy的 Hostname和server的web里面配置的名称不一样。这样一定要注意了无论是proxy和server 还是agent和server Hostname都要相同的
附件:zabbix_proxy.conf文件详解
1.ProxyMode=0 //0位默认,主动,1位被动
2.Server=IP地址 #说明:此参数用于设置zabbix Server端IP地址。在主动模式下,二级代理将采集到的数据传送到此IP所在服务端。#但被模式下,此参数被忽略
3.#说明:system.hostname是ZABBIX内置的一个自动获取主机名的方法,为了方便配置,建议打开此参数而关闭Hostname参数#。
4. HostnameItem=system.hostname //system.hostname是ZABBIX内置的一个自动获取主机名的方法,为了方便配置,建议打开此参数而关 闭Hostname参数#。
5.LogFileSize=1 //当日志文件达到多少M时便轮转并自动覆盖
6. StartPollersUnreachable=1 //说明:用于设置诸如SNMP STRAPPER场景提交来的数据的接收进程数,若客户机SNMP TRAPPER技术较多,建议加大此参数值
7.//http://www.bkjia.com/xtzh/926118.html 地址
//server从proxy上接受不到信息的解决
注:在server上添加proxy后,server才能收到配置信息
//tail /var/log/zabbix/zabbix_proxy.log 这样才能收到 消息
然后会自动建立一条
Agent:
Server:为proxy
Serveractive:为proxy
Proxy:server为zabbix.server
/etc/zabbix/proxy/zabbix_proxy.conf
Server:是zabbix-server的ip
/etc/zabbix/proxy/zabbix_agent.conf
Server
Server.active //都是zabbix--server的ip地址
//需要说明的是,理论没有问题,只是虚拟机的问题