监控的对象 硬件 软件 业务

监控的系统的基本功能

采集存储 可视化 告警

采集经由的信到

ssh/telent 传统的网络连接方式,执行命令采集方式

SNMP 接口

IPMI接口

JMX接口

agent :zabbix提供的监控接口

要实现数据存储

SQL 关系型数据库

NOSQL 非关系型数据库

rrd 也算非关系型数据库

......

要实现可视化可以使用

各个监控系统都带有自身提供的可视化接口

也有专业的可视化工具grafana

告警

是一个监控系统具有的基本功能,它是一个内建的组件,一般的告警是允许用户调用外部脚本来实现的,从而就给了用户最大的自由和灵活度

zabbix的组件有

zabbix server

server采集到的数据保存到 zabbix database(也就是mysql或相关的衍生版)

zabbix web gui 我们称为web接口,web接口其实就是运行在amp之上的一个基于PHP研发的用户界面,这个用户界面除了实现监控之外,也是我们配置的唯一入口。

zabbix proxy 分布式监控时可以用到

zabbix agent 部署在每一个server之上,负责本地数据收集的一个组件

任何一个监控对象都应该对应于一个设备,而任何设备无论是路由器还是交换机,甚至是我们的server都被称为主机(host)

在zabbix中任何一个被监控的主机,都应该附着在一台主机上,一个监控设备要想纳入到监控系统中去,我们必须在zabbix中去添加这个主机才可以,主机可以通过地域,功能等进行分组。因此我们可以定义一个监控模板,应用到组上,组内所有的主机都自动拥有了这种监控配置。

主机一旦被添加到监控系统以后,接下来就可以定义主机之上的每一个监控的指标数据源,指标数据源是什么?例如CPU的内核空间的占用比例,用户空间使用比例,所有你产生时间序列的数据源,我们就叫指标数据源,而每一个指标数据源在zabbix中,如果要纳入到监控体系中来,它就被称为一个监控项item

item监控项有一些相近的监控项,比如CPU,内核占用比例,用户空间占用比例,空闲比例等等都是CPU比例。内存也有内存监控项。我们可以把监控项相近的方式来进行分组,而监控项的分组叫application应用也叫监控项的组(不是应用程序,是应用),

定义好监控项组,基于事件源就是能产生事件的事件源位置源源不断的周期性的获取到数据指标,

这个数据指标要定义一个阈值,合理区间和非合理区间的分界点叫临界点,而且一个指标项的阈值可以有多个不同的区间,分别代表不同的事件的严重等级,而阈值相比较来讲在zabbix中是靠一个表达式来定义的,这个表达式我们通常称为trigger触发器表达式。所谓的触发器就是对应的某一个指标数据,它的数据项是否在合理区间当中,一般的我们定义的表达式是一个逻辑表达式,例如一个CPU大于60%,表达式满足条件了是true,代表有问题,表达式不满足代表OK没有问题。

当trigger触发器条件满足了变成true,它会生成触发器事件叫trigger event

action 动作:动作是指有事件触发,一旦产生事件我们就可以触发某个事件,动作有条件

conditions 满足这个条件,加s是条件不止一个

operations 就触发这个操作,加s是动作不止一个

操作是1.打一个脚本尝试恢复问题,如果不能恢复,第二发送告警这叫operation

监控流程的配置过程

host group --host -application --item --trigger -action(conndition,operation)

主机组内添加主机,

在主机上定义application,

在applica上添加item监控项,

在监控项上添加trigger,

trigger可能触发trigger event 被action拿来应用,而action是conndition和operation组成的

poller 轮循器,周期性的操作

不同的采集信道poller还不一样

*******************************************************************************************************************

搭建zabbix

192.168.63.141 zabbix服务器 httpd PHP

192.168.63.131 mysql服务器

192.168.63.132 被监控端

192.168.63.140 被监控端

192.168.63.141 zabbix服务器

https://www.zabbix.com/download

安装zabbix相关的rpm包,这个包的作用是生成一个zabbix的指示文件repolist

修改成清华仓库的的镜像,

rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

注:网络不好下载不下来,可以直接使用下面的

[root@contes7 ~]# vim /etc/yum.repos.d/zabbix.repo

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

gpgcheck=1

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/

gpgcheck=0

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/

gpgcheck=0

测试

yum repolist

zabbix的环境

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

yum install httpd php -y

192.168.63.131 mysql服务器

准备mysql环境

安装mysql数据库

maiadb2.sh

iptables -F &> /dev/null #清除防火墙

sed -i -r 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config #更改/etc/selinux/config里面的SELINUX=disabled,关闭selinux

yum install -y libaio &> /dev/null #安装libaio包

getent passwd mysql || echo `useradd -r -d /data/mysqldb -s /sbin/nologin mysql` #查看在/etc/passwd文件里面有没有mysql用户,如果没有创建mysql用户

ls -l /usr/local/mariadb-10.2.15-linux-x86_64 &> /dev/null || echo `tar xvf /root/mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/ &> /dev/null`

#查看/usr/local/目录下有没有解压完成的包,如果没有解压二进制包

cd /usr/local #切换到/usr/local/目录

ln -s mariadb-10.2.15-linux-x86_64/ mysql #设置软链接

chown -R root:root mysql/ #设置mysql目录下的所有文件的属主和属组是root

echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh #在/etc/profile.d/mysql.sh文件下加入/usr/local/mysql/bin的PATHA变量

chmod +x /etc/profile.d/mysql.sh #给/etc/profile.d/mysql.sh文件加执行权限

cd #切换到家目录

source /etc/profile.d/mysql.sh #执行/etc/profile.d/mysql.sh脚本

mkdir /data/mysqldb -p #在data目录创建mysqldb目录

chown mysql.mysql /data/mysqldb #设置/data/mysqldb目录的的属主和属组是mysql用户

cd /usr/local/mysql #切换到/usr/local/mysql目录

scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql #在/data/mysqldb下生成数据库

cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf -a #覆盖系统自带的配置文件

sed -i '/\[mysqld\]/a\datadir = /data/mysqldb' /etc/my.cnf &> /dev/null #在配置文件里面的[mysqld]下面添加一行datadir = /data/mysqldb

cp support-files/mysql.server /etc/init.d/mysqld -a #拷贝启动文件到/etc/init.d/mysqld

chkconfig --add mysqld

systemctl start mysql.service #启动mysql

创建初始化数据库,并授权

打开mysql

create database zabbix character set utf8 collate utf8_bin; 创建zabbix数据库

创建一个有连接权限的账号zabbix,授权zabbix用户只能本地访问,密码是zbxpass

grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zbxpass';

授权127.0.0.1的用户访问

grant all privileges on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zbxpass';

授权远程用户访问

grant all privileges on zabbix.* to 'zabbix'@'192.168.63.%' identified by 'zbxpass';

zabbix 监控_第1张图片

192.168.63.141 zabbix服务器

导入初始模式和数据

查看create.sql.gz脚本的位置

rpm -ql zabbix-server-mysql

将create.sql.gz脚本导入到数据库,并且让生成到zabbix库中去

zcat /usr/share/doc/zabbix-server-mysql-3.4.11/create.sql.gz | mysql -uzabbix -h 192.168.63.131 -p zabbix

clip_image004

查看

mysql -uzabbix -h192.168.63.131 -pzbxpass

zabbix 监控_第2张图片

切换到zabbix数据库

MariaDB [(none)]> use zabbix;

查看数据库的表

show tables;

配置zabbix的配置文件

vim /etc/zabbix/zabbix_server.conf

数据库的名字

DBName=zabbix

数据库的地址

DBHost=192.168.63.131

数据库的用户名

DBUser=zabbix

数据库的密码

DBPassword=zbxpass

启动服务

systemctl start zabbix-server

查看端口

clip_image008

配置web界面

vim /etc/httpd/conf.d/zabbix.conf

更改时区为shanghai

clip_image010

启动http服务

systemctl start httpd

查看端口

clip_image012

浏览器访问

http://192.168.63.141/zabbix/setup.php

web首次打开zabbix的界面

单机下一步

zabbix 监控_第3张图片

检查依赖关系并并下一步

zabbix 监控_第4张图片

选择连接数据库的类型

zabbix 监控_第5张图片

可以不定义,使用默认的

zabbix 监控_第6张图片

zabbix 监控_第7张图片

zabbix 监控_第8张图片

登录界面

用户名是Admin

密码 zabbix

zabbix 监控_第9张图片

zabbix的界面

zabbix 监控_第10张图片

修改为中文

1.选择Administrator

clip_image030

2.选择User

clip_image032

3.单机Admin

clip_image034

4.选择Language,选择中文,在单机update更新

zabbix 监控_第11张图片

我们也可以更改主题

zabbix 监控_第12张图片

把目标监控主机加入到zabbix server监控的主机

添加主机的界面

clip_image040

192.168.63.132 被监控端

vim /etc/yum.repos.d/zabbix.repo

[zabbix]

name=Zabbix Official Repository - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/

gpgcheck=0

[zabbix-non-supported]

name=Zabbix Official Repository non-supported - $basearch

baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/

gpgcheck=0

获取yum源数据

yum repolist

被动监控

zabbix server主动到客户端去拉取数据

主动监控

当前zabbix主动到zabbix server去报告自己应该监控的数据

安装zabbix

yum install zabbix-agent zabbix-sender -y

zabbix的配置文件

被动监控的配置

vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.63.141

注意:zabbix server的地址,如果有主机名,就写主机名,要能解析

clip_image042

ServerActive=192.168.63.141

Hostname=Hostname=zhouyafei.com #标识当前主机的主机名

zabbix 监控_第13张图片

启动服务

systemctl start zabbix-agent

查看端口

clip_image046

在zabbix的web端添加被监控的主机

1.添加主机

clip_image048

2.添加 host 主机

clip_image050

zabbix 监控_第14张图片

zabbix 监控_第15张图片

zabbix 监控_第16张图片

定义Applications 应用,也就是监控项的组

clip_image058

clip_image060

zabbix 监控_第17张图片

创建完成Applications 应用

clip_image064

定义items 监控项,监控入站的报文

zabbix 监控_第18张图片

单机Create item

clip_image068

clip_image070

单机net.if.in[if,]

clip_image072

clip_image074

clip_image076

clip_image078

单机Preprocessing 预处理

zabbix 监控_第19张图片

单数据采集的时候要做什么预处理

clip_image082

zabbix 监控_第20张图片

当前的采集量减去前一次采集量的除于时长=速率

zabbix 监控_第21张图片

单机item返回

zabbix 监控_第22张图片

Units数据项单位叫packets/second或者pps

clip_image090

clip_image092

clip_image094

clip_image096

clip_image098

clip_image100

定义完成

zabbix 监控_第23张图片

查看

clip_image104

查看数据采集图

clip_image106

zabbix 监控_第24张图片

单机 Graph

clip_image110

zabbix 监控_第25张图片

如果我们要添加报文数据项和上一次定义相差不大的字节数bytes项,我们可以克隆

入站的字节数

clip_image114

clip_image116

zabbix 监控_第26张图片

更改标识和内建的命令

clip_image120

Units数据项单位叫Bps

clip_image122

完成

clip_image124

例如还有出站的字节数

clip_image126

clip_image128

出站的内建命令net.if.out[ens33,bytes]

clip_image130

Units数据项单位叫Bps

clip_image131

clip_image133

例如出站的报文数

clip_image135

clip_image137

clip_image139

zabbix 监控_第27张图片

查看数据采集图

zabbix 监控_第28张图片

zabbix 监控_第29张图片

定义Triggers

用来描述item之上数据的合理区间和非合理区间的分界线,而且同一个item上的分界线还可以有多种

例如:红色警报,蓝色警报

一个item上可以有多个triggers,而triggers会生成triggers event

triggers是一个boolean expression表达式

true :条件满足定义非合理区间,它代表了这个item出现了问题,所以是PROBLEM状态

false:表示OK的状态

定义触发器时常用的函数

avg 平均值

count 计数

change 变化量

date 日期

dayofweek 周几

delta 速率 当前的结果减上一次的结果除去时间

diff 比较

iregexp 正则表达式模式,不区分大小写,模式匹配

last 最后几次或一次

max 最近一段时间中的,或者多少次中的最大值

min 最小值

nodata 没有值

now 此刻

sum 求和

单机triggers

zabbix 监控_第30张图片

我们加入入站报文 每秒100个,就是受到×××了

clip_image149

创建

clip_image151

clip_image153

clip_image155

zabbix 监控_第31张图片

clip_image159

几次大于值,可以是多次

clip_image161

值是多少,并确定

zabbix 监控_第32张图片

查看

clip_image165

zabbix 监控_第33张图片

clip_image169

依赖关系

一个主机之上的所有应用都应该依赖主机,

一个主机的状态都一个依赖于和zabbix server之间的网络设备

查看数据采集图

zabbix 监控_第34张图片

zabbix 监控_第35张图片

zabbix 监控_第36张图片

Triggers也可以克隆

zabbix 监控_第37张图片

clip_image179

clip_image181

clip_image183

zabbix 监控_第38张图片

clip_image187

zabbix 监控_第39张图片

zabbix 监控_第40张图片

当触发器发生告警会生成触发事件

定义Actions ,actions不属于单个主机,它可以构建跨主机的actions,条件可以来自多个事件源

zabbix 监控_第41张图片

clip_image195

创建actions

clip_image197

定义action:所谓的action就是有event driven事件驱动的

而action只要有两部分组成

conditions

operations :而operations有两个

从OK到PROBLEM称为operations 出现问题

从PROBLEM回到OK称为recovery operations 解决问题

ackownlegement operations 报告问题

remote command 远程命令

send message 发警报

remote command 远程命令

执行的过程

1.在远程主机执行命令

2.在本机通过ssh执行命令

send message 发警报

发警报要通过media媒介,一旦发警报就把警报扔到这个媒介上,对方要在媒介上有一个合适的收信息的端点才能收到警报

1.定义媒介

2.定义收件的人

3.zabbix发警报才能扔到这个媒介上

********************************************************************************************************8888

监控一个192.168.63.132主机上的服务在不在线

例如nginx服务

1.添加itmes

zabbix 监控_第42张图片

2.创建itme

clip_image201

zabbix 监控_第43张图片

clip_image205

zabbix 监控_第44张图片

查看

clip_image209

3.定义triggers

clip_image211

创建triggers

clip_image213

clip_image215

clip_image217

zabbix 监控_第45张图片

zabbix 监控_第46张图片

zabbix 监控_第47张图片

clip_image225

查看显示up

zabbix 监控_第48张图片

现在停止监控端的nginx服务80端口

再次查看显示down

clip_image229

在启动nginx服务

clip_image231

4.定义actions,如果发现nginx服务出现异常,就告警

clip_image233

clip_image235

clip_image237

clip_image239

clip_image241

clip_image243

zabbix 监控_第49张图片

clip_image247

clip_image249

clip_image251

在被监控主机 zabbix agent 的zabbix进程是没有权限重新启动nginx服务的要在主机上做sudo

192.168.63.132

vim /etc/sudoers

zabbix能在任何用户执行任何命令,并且不需要密码 注意:很危险

clip_image253

在zabbix agentd 的配置文件里面有一行默认禁止远程执行命令的

vim /etc/zabbix/zabbix_agentd.conf

clip_image255

启动zabbix-agent服务

systemctl restart zabbix-agent

clip_image257

单击里面的add

zabbix 监控_第50张图片

clip_image261

先不定义邮件

zabbix 监控_第51张图片

clip_image265

停止监控端的nginx服务

systemctl stop nginx

查看状态,显示为down

zabbix 监控_第52张图片

再次查看,发现nginx服务已经启动

zabbix 监控_第53张图片

配置邮件,如果nginx服务重启就发服务

定义媒介类型

定义一个本地邮件

clip_image271

zabbix 监控_第54张图片

clip_image275

定义好媒介以后,能收到这个媒介的人,就必须拥有这个媒介上的端点

这个本地邮件,只能在本地间传邮件,要确保收邮件的账号

clip_image277

zabbix 监控_第55张图片

zabbix 监控_第56张图片

clip_image283

发警报

zabbix 监控_第57张图片

zabbix 监控_第58张图片

zabbix 监控_第59张图片

zabbix 监控_第60张图片

添加第二条命令

clip_image293

clip_image295

clip_image297

clip_image299

clip_image301

clip_image303

clip_image305

clip_image307

发送给谁

clip_image309

zabbix 监控_第61张图片

clip_image313

clip_image315

zabbix 监控_第62张图片

zabbix 监控_第63张图片

clip_image321

模拟重新启动nginx服务,依然找不到80端口

在被监控的主机

192.168.63.132

vim /etc/nginx/nginx.conf

把端口改成8080

clip_image323

选择停止nginx服务

systemctl stop nginx

查看

显示nginx服务已经down

zabbix 监控_第64张图片

查看邮件

zabbix 监控_第65张图片

再修复nginx,查看

zabbix 监控_第66张图片

查看邮件

zabbix 监控_第67张图片

脚本报警

clip_image333

zabbix 3.0之后调用脚本时,将3个变量定义为内部宏,以后直接引用这3个宏,就能够向脚本彻底参数了

{ALERT.SENDTO} 定义收件人

{ALERT.SUBJECT} 告警信息的标题

{ALERT.MESSAGE} 告警信息的正文

将这三个参数发给脚本,脚本才能够发送消息

Python报警脚本示例

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

from email.header import Header

from email.utils import parseaddr, formataddr

import sys

def formatAddr(s):

name, addr = parseaddr(s)

return formataddr((Header(name, 'utf-8').encode(), addr))

def send_mail(to_list,subject,content):

mail_host = 'smtp.exmail.qq.com' #可用的发送邮件服务器地址

mail_user = '[email protected]' #可用的发送邮箱地址

mail_pass = 'YOUR_PASSWORD' #可用的密码

#以上内容根据你的实际情况进行修改

msg = MIMEText(content,'','utf-8')

msg['Subject'] = Header(subject, 'utf-8').encode()

msg['From'] = formatAddr('zabbix监控 <%s>' % mail_user).encode()

msg['to'] = to_list

try:

s = smtplib.SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(mail_user,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

将脚本保存到这个路径,并给执行权限

/usr/lib/zabbix/alertscripts/

图形界面展示接口

我们可以将多个指标放在张图上进行展示

定义入站流量图

zabbix 监控_第68张图片

clip_image337

zabbix 监控_第69张图片

zabbix 监控_第70张图片

zabbix 监控_第71张图片

定义出站流图

clip_image345

clip_image347

zabbix 监控_第72张图片

定义的两张图一起显示

clip_image351

zabbix 监控_第73张图片

clip_image355

插入图片

clip_image357

clip_image359

clip_image361

选择图片

clip_image363

zabbix 监控_第74张图片

zabbix 监控_第75张图片

zabbix 监控_第76张图片

选择第二张图

zabbix 监控_第77张图片

zabbix 监控_第78张图片

zabbix 监控_第79张图片

zabbix 监控_第80张图片

如果显示的图片太多,一个屏幕显示不完。我们介意切屏,5秒一切换

clip_image379

每隔5秒一切换

clip_image381

zabbix 监控_第81张图片

假设有多个屏幕

zabbix 监控_第82张图片

zabbix 监控_第83张图片

zabbix的宏,其实就是变量,我们也可以理解为文本类型的变量,所有这里定义为预设的文本替换模式

为什么要用到宏?

例如当我们监控了一个80端口,有很多的服务依赖于这个端口,当我们更改了这个80 端口以后,其他服务也要随之更改,这样非常麻烦,我们可以使用内建的变量,只要调用变量就可以了。

在个时候就用到了内置的变量,才能使得我们的配置非常的灵活。这个时候预设的文本替换模式也叫做宏,就能发挥上用场

而在zabbix中宏有三种级别

全局级别:对所有主机,所有模板都有效

模板级别:对匹配了,调用了次模板的主机都有效,模板是可以被多个主机所占用的

主机级别:仅对当前一个主机有效

如果在三个模式都定义了相同的宏,但是值不同,范围越小级别越高

内建宏的调用 例:{EVENT.DATE} 花括号跟上宏名

zabbix支持两类宏

内建宏:{EVENT.DATE} 花括号跟上宏名

自定义宏:{$EVENT.DATE} 花括号跟上$加宏名

命名方式:大写字母,数字和下划线组成,并且不能以数字开头

内建宏的文档,建议用goolge浏览器查看,有翻译

https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

定义全局模式的宏

clip_image389

clip_image391

clip_image393

使用宏

zabbix 监控_第84张图片

zabbix 监控_第85张图片

clip_image399

zabbix 监控_第86张图片

我们查看nginx是up的

zabbix 监控_第87张图片

我们 现在把我们自定义的宏的值改为8080,它的监听端口就会变成8080

clip_image405

再次查看

zabbix 监控_第88张图片

定义主机宏,我们不想用全局的宏,想用主机的宏

zabbix 监控_第89张图片

zabbix 监控_第90张图片

再次查看,变成up

zabbix 监控_第91张图片

模板

模板是一个简化主机配置的一个重要功能

查看内建的模板

zabbix 监控_第92张图片

模板还可以嵌套另一个模板,重要可以拿到其他模板的配置,还可以在定义自己的配置

所谓的模板就是,可以套在主机上的快速配置主机预设的配置监控配置的集合

而zabbix内建了许多配置模板

如果我们想监控我们的linux服务器,我们可以可以链接至已有的模板上

clip_image417

zabbix 监控_第93张图片

zabbix 监控_第94张图片

clip_image423

clip_image425

我们也可以自定义模板

clip_image427

zabbix 监控_第95张图片

也可以定义模板宏

zabbix 监控_第96张图片

也可以定义itmes或其他

clip_image433

注意,模板只有被链接至在主机上才会被监控

定义完模板也可以分享给别人的zabbix中

zabbix 监控_第97张图片

zabbix 监控_第98张图片

导入模板

clip_image439

clip_image441

zabbix模板我们一般不用自己定义,因为在互联网上已经有一些现成的模板

https://share.zabbix.com/

例如redis

clip_image443

导入模板

clip_image445

clip_image447

zabbix 监控_第99张图片

zabbix 监控_第100张图片

zabbix 监控_第101张图片

也可以下载其他的redis模板

zabbix 监控_第102张图片

自定义key

在zabbix agent端的配置文件通过userparameter指令定义key

在被监控端也就是zabbix agent端

vim /etc/zabbix/zabbix_agentd.d/test.conf

监控内存空间

UserParameter=memory.used,/usr/bin/free |usr/bin/awk '/^Mem/{print $3}'

UserParameter=memory.shm,/usr/bin/free |usr/bin/awk '/^Mem/{print $5}'

clip_image457

这个key就可以针对这个agent来执行了,哪个agent服务器有这个key,就支持这个服务的监控

重启agent服务

systemctl start zabbix-agent

在服务器端测试

yum install zabbix-get -y 安装测试工具

zabbix_get -s 192.168.63.132 -p 10050 -k "memory.used"

指定agent端的ip端口还有key

clip_image459

zabbix_get -s 192.168.63.132 -p 10050 -k "memory.shm"

clip_image461

查看内存状态

cat /proc/meminfo

所有一个key,获取不同的信息的所有量

UserParameter=memory.usage[*],/usr/bin/awk '/^$1/{print $$2}' /proc/meminfo

* 代表可以传递参数给后面的命令$1 $2 $3 ,个命令本身就支持$1 $2等等,我们未来避免冲突,我们可以写成$$1 ,$$2

重新启动服务

systemctl restart zabbix-agent

在服务器端测试

zabbix_get -s 192.168.63.132 -p 10050 -k "memory.usage[MemFree]"

中括号里面传递的参数

clip_image463

zabbix_get -s 192.168.63.132 -p 10050 -k "memory.usage[Shmem]"

clip_image465

我们可以把这个key配置在我们的监控主机

clip_image467

clip_image469

zabbix 监控_第103张图片

zabbix 监控_第104张图片

克隆

zabbix 监控_第105张图片

zabbix 监控_第106张图片

zabbix 监控_第107张图片

单位乘以1024

clip_image481

zabbix 监控_第108张图片

查看

zabbix 监控_第109张图片

使用redis的模板监控redis服务

agent端 192.168.63.132

将下载的userparameter_redis.conf 文件拷贝到agent端的/etc/zabbix/zabbix_agentd.d/ 目录下

安装redis服务

yum install redis -y

vim /etc/redis.conf

监听本机所有的可用端口

bind 0.0.0.0

clip_image487

启动服务

systemctl start redis

启动agent服务

在zabbix的web已经将3.4_redis_templates.xml模板上传到zabbix上

将agent端纳入监控

zabbix 监控_第110张图片

clip_image491

zabbix 监控_第111张图片

zabbix 监控_第112张图片

clip_image497

zabbix 监控_第113张图片

zabbix 自带一个监控mysql数据库的模板

clip_image501

网络发现:让zabbix定期监控一个网段,如果发现一个未监控的主机,