zabbix基础

Posted cncaptain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix基础相关的知识,希望对你有一定的参考价值。

zabbix组件:
zabbix-server
zabbix-database
zabbix-web
zabbix-agent
zabbix-proxy
zabbix逻辑组件:
主机组、主机
item(监控项)、appliction(应用)
graph(图形)
trigger(触发器)
event(事件)
action
notice
command
media
users(meida)
监控系统:
数据采集、数据存储、报警、数据可视化
zabbix:
database --> zabbix-server (zabbix_server.conf) --> zabbix-web(LAMP) --> http://zabbix-web-server/zabbix
zabbix-agent (zabbix-agent)

添加主机

agent: 161
nms: 162 (trap)

被监控端安装 snmp
# yum install net-snmp
# vim /etc/snmp/snmpd.conf
# service snmpd start

[[email protected]_8_32_centos etc]# zabbix_get -s 10.135.8.32 -k "system.uname"
Linux VM_8_32_centos 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64


历史数据:采样生成的数据
历史趋势数据:每小时的最大值、最小值、平均值、统计

As is: 不做任何处理
Delta(speed per second): (value - prev_value)/(time - prev_time)
10: 12000, 20: 13000
Delta(simple change):(value - prev_value)

Trigger:
名称中可以使用宏:
{HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.CONN}, {HOST.DNS}

Action有两类:
send message
command

添加host group, host, item, graph, trigger, action

总结:
一次监控的配置过程:host groups --> host --> appliction --> item --> trigger (一个item可以多个trigger) --> action (send message, command)

send message:
media type
zabbix user: 使用可用media type接收消息

由zabbix监控某关注的指标:
host group --> host --> item(存储于mysql)--> graph(zabbix-web)--> trigger(触发器)--> action(condition+operation)
application:把功能相近的一组item归类再一起统一进行管理组件;

Zabbix完整的监控配置流程大体上由如下步骤组成:
Host group --> Hosts --> Applications --> Items --> Triggers --> Events --> Actions --> User groups --> Users --> Medias

graph,screen

依赖关系:
Host --> Item --> Trigger --> Action --> Notice,Command

添加主机到zabbix server:
discovery,auto_registrion
low level discovery
模板:
template:
item,application,trigger,graph,action

主机组:
机器用途、系统版本、应用程序、地理位置 、业务单元

Item:
默认的Items有多种类型:
Zabbix-agent:
工作模式:passive,active
网卡流量相关:
net.if.in[if,<mode>]
if:接口,如eth0
mode:bytes,packets,errors,dropped
net.if.out[if,<mode>]
net.if.total[if,<mode>]
端口相关:
net.tcp.listen[port]
net.tcp.port[<ip>,port]
net.tcp.service[service,<ip>,<port>]
net.udp.listen[port]
进程相关:
kernel.maxfiles
kernel.maxproc

CPU相关:
system.cpu.intr
system.cpu.load[<cpu>,<mode>]
system.cpu.num[<type>]
system.cpu.switches
system.cpu.util[<cpu>,<type>,<mode>]
磁盘IO或文件系统相关:
vfs.dev.read[<device>,<type>,<mode>]
vfs.dev.write[<device>,<type>,<mode>]
vfs.fs.inode[fs.<mode>]

用户可自定义item:
关键:选取一个惟一的key:
命令:收集数据的命令或脚本

Trigger:
状态:
OK
PROBLEM:有事件发生;

zabbix server每次接收到items的新数据时,就会对Item的当前值进行判断,即与trigger的表达式进行比较

一个trigger只能属于一个item,但一个item可以有多个trigger;

Serverity:
Not classified:未知级别 ,灰色;
Information:一般信息,亮绿
Warning:警告信息,黄色
Average:一般古装,橙色
High:高级别故障,红色
Disater:致命故障,亮红;

Action:
触发条件一般为时间:
Trigger events: OK --> PROBLEM
Discovery events:zabbix的network discovery工作时发现主机
Auto registration events: 主动模式的agent注册时产生的事件;
Ineternal events: Item变成不再被支持,或Trigger变成未知状态;

Operations的功能:
动作:
send message
Remote command

配置send message:
(1)定义好Media;
(2)定义好用户;
(3)配置要发送的信息;


回顾:zabbix
host group--> host--> appliction-->item-->trigger(OK-->PROBLEM,trigger event)-->Action(Condition+Operation(Send Message,Remote Commadn)

Send Message:
Media:
Email、SMS、Jabber、Script、EZ Texting
给出具体 实现;
User groups --> User(Media)

示例中:node2.magedu.com --> Traffic --> Inbound traffic,Outbound traffic-->trigger(inbound)


Zabbix常用术语:
item key
Escalation 报警升级
Template
web Scennario

Zabbix服务器进程:
housekeeper,alter,discoverer,httppoller,Poller,pinger,db_config_syncer,timer,escaltor

Item key:
命名要求:只能使用 字母、数字、"_"、"-"、"."
接受参数:system.cpu.load[<cpu>,<mode>],net.if.inbound[if,<mode>]

注意:每个key背后都应该有一个命令或脚本来负责实现数据收集,此命令或脚本可调用传递给key的参数,
调用方式为$1,$2,...
再zabbix中定义item时调用某key,还需额外定义数据采集频率,历史数据的保存时长等

Trigger:
触发器表达式:{<Server>:<key>.<function>(<parameter>)}<operator><constant>
示例:{VM_8_32_centos:net.if.in[eth0,bytes].last(#1)}>5K

<function>:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采集到的数据、当前时间或者其他因素;
avg,count,change,date,dayofweek,dayofmonth,delta,diff,iregexp,regexp,last,max,nodata,now,prev,str,strlen,sum

regexp:检查最后一次采样的数据是否能够被 指定的模式所匹配;1表示匹配,0表示不匹配
last(0)相当于last(#1)
now:返回自Unix元年至此刻经历的秒数
prev:倒数第二个采样值;
str:从最后一次的采样中查找此处指定的子串;
strlen:

<operator>:
>,<=,#(不等于)
/,*,-,+
&,|

触发器间有依赖关系

Action:
message
condition
event:
trigger
discovery:
Service Up,Service Down,Host up,Host down,Service Discovered,Service Lost,Host Discovered,Host Lost
auto_registration
lld

operation
send message
Media Type
Email,SMS,Jabber,Script,EZ Texting
User
remote command
(1)给zabbix定义sudo规则 :
zabbix ALL=(ALL) ALL
(2) 不支持active(主动模式)的agent;
(3)不支持代理模式;
(4)命令 长度不得超过255个字符;
(5)可以使用宏;
(6)zabbix-server仅执行命令,而不关心命令是否执行成功;
前提:zabbix-agent要配置为支持执行远程命令
/etc/zabbix/zabbix_agentd.conf文件中 EnableRemoteCommands=0改为1
EnableRemoteCommands=1
注意:
(1)如果用到以其它用户身份执行命令的话,那么命令本身要以sudo方式运行;
sudo /etc/rc.d/init.d/httpd restart
(2)在各agent上的sudoers文件,要注释如下行
~]# visudo
#Defaults requiretty 表示不需要控制终端(不需要从终端登录就可以执行命令)


Script:Alert Script
放置于特定目录中:AlertScriptsPath=/usr/lib/zabbix/alertscripts
/etc/zabbix/zabbix_server.conf 配置文件中的参数;
脚本中可使用$1,$2,$3来调用action中的 邮件的收件人,Default Subject,Default Message;

注意:新放入此目录中的脚本,只有重启zabbix-server方能被使用;
































































































































































































































以上是关于zabbix基础的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix--Zabbix监控入门基础

Zabbix 3.0 基础介绍 [一]

Security基础:部署Zabbix监控平台配置及使用Zabbix监控系统自定义Zabbix监控项目实现Zabbix报警功能

zabbix基础之安装

LAMP架构之zabbix监控:zabbix基础操作

Zabbix 3.0 基础介绍 [一]