Zabbix 监控过程详解

一、修改密码及中文版

作为一只英语不好的运维,这里悄悄改成了中文版,如果大家英语好的话看英文版即可,英语不好就改了吧,毕竟中文版比较适合初学者更快的学习~

image.png
image.png

更改完毕记得点击下方更新

二、创建主机及主机群组

  • 先定义一个主机群组:


    image.png
image.png
  • 然后就可以添加主机了:


    image.png
image.png
  • 设置完成后,点击添加。这个主机就出现在列表中了

三、监控项(items)

1. 首先创建三个应用集

image.png
image.png
image.png
  • 略过创建另外两个应用集
    image.png

2. 定义监控项:

image.png
image.png

任何一个被监控项,如果想要能够被监控,一定要在 zabbix-server 端定义了能够连接至 zabbix-agent 端,并且能够获取命令。或者在 agent 端定义了能够让 server 端获取命令。一般都是内建的命令,都对应的有其名字,被我们称之为key

下面监控的是cpu的每秒中断次数

in 每秒CPU的中断次数,包括时间中断

image.png

  • 关于key值,我们可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取:
[root@zabbix-server zabbix]# zabbix_get -s 192.168.19.130 -p 10050 -k "system.cpu.intr"
1101429
  • 在我们的agent端,也可以使用命令来查看intr的速率变化:
    image.png

    zabbix会收集历史数据(所有的数据都成为过去,O(∩_∩)O哈!),以及还会收集每小时的平均数据作为趋势数据,每小时才收集一次,所以trends(趋势)暂用的资源很小,
2.1 定义一个不带参数的监控项
image.png
image.png
  • 设置完以后,点击更新,会自动跳转至下图页面:


    image.png
  • 定义完成,我们回到所有主机,等待5秒,我们可以看到,我们node1节点后面的选项已经有变成绿色的了:如果不亮记得刷新


    image.png
  • 我们也可以回到我们的仪表盘,可以看到,我们的监控项有一个处于启用状态:


    image.png
image.png
  • 那么,我们的数据在哪里呢?可以点击最新数据,把我们的none1节点添加至主机,应用一下,就可以看到下面的状态了:

    image.png

  • 可以看到,我们还有一个图形页面,点进去则可以看图形的分布:


    image.png
  • 事实上,我们关注的指标有很多种,我们一一添加进来即可。

2.2 定义一个带参数的带参数的监控项

刚刚我们定义的监控项是很简单的,指定一个key即可,但是有些监控项是带有参数的,这样一来,我们的监控项就有更多的灵活性。接下来,我们来简单说明一个需要带参数的监控项:

image.png

图中的[]就是需要参数的意思,里面的值即为参数,带<>为不可省略的。我们就以这个例子来说明:
if表示是接口名;<mode>表示是哪种模式,包括但不限于:packets(包)、bytes(字节)、errors(错误)、dropped(丢包)(上述内容可以通过ifconfig查看)

image.png
image.png
image.png
image.png
  • 同样的,我们也可以通过命令行来查看:
[root@zabbix-server zabbix]# zabbix_get -s 192.168.19.130 -p 10050 -k "net.if.in[ens33,packets]"
36836
  • 我们来看看网页的显示情况:


    image.png
image.png

3. 快速定义类似指标

  • 如果我们想要定义一个类似的指标,我们可以直接选择克隆,然后简单的修改一点点参数即可。
  • 就以我们刚刚定义的net.if.in[ens33,packets]为例,如果我们想要在定义一个out的进行如下操作即可:
    image.png
image.png
image.png
  • 如果我们要以字节为单位也要定义的话,进行同样的操作:


    image.png
  • 如果有需要的话也可以把byte再克隆成out。就不一一演示了~

  • 可以看一下,我们现在已经定义的指标:


    image.png
  • 我们来到 检测中 ---> 最新数据,可以看到,我们定义的监控项都已经有值了:


    image.png

4. 删除监控项

  • 如果有一个监控项,我们用不上了,就可以删除掉。但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除,具体操作步骤如下:
  • 配置-->主机-->监控项-->选择一个不要的监控项


    image.png

四、触发器(trigger)

1. 简介

当我们的采集的值定义完了以后,就可以来定义触发器了。
我们触发器的定义是:界定某特定的 item 采集到的数据的非合理区间或非合理状态。通常为逻辑表达式。

一般,我们评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最后N次通常有两种定义方式:

  1. 最近N分钟所得结果的平均值
  2. 最近N次所得结果的平均值

注:能用数值保存的就不要使用字符串

2. 触发器表达式

基本的触发器表达式格式如下所示:

{<server>:<key>.<function>(<parameter>)}<operator><constant>
  • server:主机名称;
  • key:主机上关系的相应监控项的key;
  • function:评估采集到的数据是否在合理范围内时所使用的函数,目前触发器所支持的函数有avg(平均)、count(计数)、change(变化)、date(日期)、dayofweek(星期)、delta(增量)、diff、iregexp、last(最近)、max(最大值)、min(最小值)、nodata(无数据)、now(现在)、sum(总和)等
  • parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;

3. 定义一个触发器

我们可以查看一下rate of packets(in)的值,并以其为标准确定我们的非正常的值:

image.png

图中我们可以看出,我们的最大值为7,最小值为4,平均值为4.59。这样的话,我们可以定义5以上的都是非正常的值。

  • 下面我们来定义一个触发器:


    image.png

    右上角创建触发器


    image.png

    生成完毕后,我们就点击页面下方的添加,即成功定义了一个触发器,同时页面自动跳转:
    image.png
  • 然后我们去看一下我们刚刚定义了触发器的那个监控项:


    image.png

我们可以看出,这个里面就有了一根线,就是我们刚刚定义的值,超过线的即为异常状态,看起来非常直观。
但是,现在即使超过了这根线,也仅仅会产生一个触发器事件而不会做其他任何事。因此,我们就需要去定义一个动作(action)。

五、定义动作(action)

1. 简介

我们需要去基于一个对应的事件为条件来指明该做什么事,一般就是执行远程命令或者发警报。

第一,我们要事先定义一个媒介,第二,还要定义这个媒介上用户接收消息的端点(当然,在用户上,我们也称之为用户的媒介)。

  • 我们可以去看一下系统内建的媒介类型:


    image.png

这些是大的媒介类型,里面还有更多的细分,我们以Email为例:

image.png

同样的,同一个类型我们也可以定义多个,还是以Email为例,我们可以定义一个腾讯的服务器,一个网易的服务器,一个阿里的服务器等等。

2. 定义一个媒介(media)

我们还是以Email为例。来简单的定义一个媒介:

image.png

  • 媒介定义好了,那么我们怎么才能够然后用户接收到邮件呢?比如让我们的Admin用户接收邮件
    进入 管理 ---> 用户 ---> Admin ---> 报警媒介
    我们来添加一条进来:
    image.png

    添加过后是这样的:
    image.png

    然后我们更新就可以了。
    一个用户可以添加多个接收的媒介类型。

3. 定义一个动作(action)

动作是在某些特定条件下触发的,比如,某个触发器被触发了,就会触发我们的动作。

  • 我们基于redis来定义一个动作。首先,我们在agent端使用yum安装一下redis
[root@zabbix-client ~]# yum -y install epel-release; yum -y install redis

修改一下配置文件:

[root@zabbix-client ~]# vim /etc/redis.conf
bind 0.0.0.0        #不做任何认证操作

修改完成以后,我们启动服务,并检查端口:

[root@zabbix-client ~]# systemctl start redis
[root@zabbix-client ~]# netstat -lntp|grep redis
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2434/redis-server 0 

接着,我们就可以去网站上来定义相关的操作了:

  • 创建一个redis应用集:
    image.png
3.1 定义监控项
image.png
image.png

该监控项已成功添加。

  • 我们可以去查看一下他的值:


    image.png
3.2 定义触发器

定义好了监控项以后,我们亦可来定义一个触发器,当服务有问题的时候,我们才能及时知道:

  • 配置 ---> 主机 ---> zabbix-client ---> 触发器(trigger)---> 创建触发器


    image.png
  • 该触发器已成功添加。我们去查看一下


    image.png
  • 我们来手动关闭redis服务来检测一下:

[root@zabbix-client ~]# systemctl stop redis
image.png
  • 可以看到,现在已经显示的是问题了。并且有持续的时间,当我们的服务被打开,会转为已解决状态:
[root@zabbix-client ~]# systemctl start redis
image.png
3.3 定义动作(action)
image.png

image.png

image.png

image.png
  • 我们可以看出,还需要在虚拟机上进行两项操作,一是修改sudo配置文件使zabbix用户能够临时拥有管理员权限;二是修改zabbix配置文件使其允许接收远程命令。我们进行如下操作:
[root@zabbix-client ~]# vim /etc/sudoers
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
zabbix  ALL=(ALL)       NOPASSWD:ALL     #添加此行

[root@zabbix-client ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1     #允许接收远程命令
LogRemoteCommands=1     #把接收的远程命令记入日志

[root@zabbix-client ~]# systemctl restart zabbix-agent
  • 我们已经添加了第一步需要做的事情,也就是重启服务,如果重启不成功怎么办呢?我们就需要来添加第二步:


    image.png

    image.png
  • 添加完成以后,我们可以看一下:


    image.png
  • 操作添加完了,如果服务自动恢复了,我们可以发送消息来提示:


    image.png
  • 添加完成会自动跳转至如下页面:


    image.png
  • 现在我们可以手动停止服务来进行测试:
[root@zabbix-client ~]# systemctl stop redis
  • 然后我们来到问题页面来查看,发现确实有问题,并且已经解决: 等一会


    image.png

    也可以去agent端查看端口是否开启:

[root@zabbix-client ~]# netstat -lntp|grep redis
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      2744/redis-server 0 

#查看邮件是否发送成功
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 zabbix@localhost.loc  Tue Mar 24 17:16  20/867   "Resolved: redis service down"
&

可以看出端口正常开启,我们的动作触发已经完成。
补充:我们也可以使用脚本来发送警报,我们的脚本存放路径在配置文件中可以找到,定义为:AlterScriptsPath=/usr/lib/zabbix/alertscripts

  • 然后我们将这个动作关闭掉为后面的邮件报警做准备。


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容