Zabbix3.0学习笔记

时间:2023-03-09 07:11:18
Zabbix3.0学习笔记

第1章 zabbix监控

1.1 为什么要监控

  在需要的时刻,提前提醒我们服务器出问题了

   当出问题之后,可以找到问题的根源

    网站/服务器 的可用性

1.1.1 网站可用性

  在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。

    1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒

1.2 监控什么东西

监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控

1.2.1 监控范畴

Zabbix3.0学习笔记

1.3 怎么来监控

1.3.1 远程管理服务器

如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM

1.3.2 监控硬件

查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。

使用ipmitool实现对服务器的命令行远程管理

yum -y install OpenIPMI ipmitool  #->IPMI在物理机可以成功,虚拟机不行

[root@KVM ~]# ipmitool sdr type Temperature
Temp | 01h | ns | 3.1 | Disabled
Temp | 02h | ns | 3.2 | Disabled
Temp | 05h | ns | 10.1 | Disabled
Temp | 06h | ns | 10.2 | Disabled
Ambient Temp | 0Eh | ok | 7.1 | 22 degrees C
Planar Temp | 0Fh | ns | 7.1 | Disabled
IOH THERMTRIP | 5Dh | ns | 7.1 | Disabled
CPU Temp Interf | 76h | ns | 7.1 | Disabled
Temp | 0Ah | ns | 8.1 | Disabled
Temp | 0Bh | ns | 8.1 | Disabled
Temp | 0Ch | ns | 8.1 | Disabled

1.3.3 查看cpu相关

  lscpu、uptime、top、htop vmstat mpstat

其中htop需要安装,安装依赖与epel源。

[znix@clsn ~]$lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Stepping: 4
CPU MHz: 2494.150
BogoMIPS: 4988.30
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 33792K
NUMA node0 CPU(s): 0

1.3.4 内存够不够可以用

  free

[znix@clsn ~]$free -h
total used free shared buffers cached
Mem: 996M 867M 128M 712K 145M 450M
-/+ buffers/cache: 271M 725M
Swap: 1.0G 0B 1.0G

1.3.5 磁盘剩多少写的快不快可以用

  df、dd、iotop

[znix@clsn ~]$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 24G 15G 62% /
tmpfs 499M 20K 499M 1% /dev/shm
/dev/vdb1 20G 4.4G 15G 24% /data

1.3.6 监控网络

  iftop nethogs

iftop   监控主机间流量  -i 指定监控网卡
nethogs 监控进程流量

1.4 监控工具总览

  mrtg 流量监控出图

  nagios 监控

  cacti  流量监控出图

  zabbix 监控+出图

1.5 zabbix介绍

  Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。

  使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。

  在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。

另外,Zabbix 包含 XMPP 等各种 Item 警示功能。

1.5.1 zabbix的组成

Zabbix3.0学习笔记

zabbix官网: https://www.zabbix.com

zabbix 主要由2部分构成 zabbix server和 zabbix agent

zabbix proxy是用来管理其他的agent,作为代理

1.5.2 zabbix监控范畴

  ²  硬件监控 :Zabbix IPMI Interface

  ²  系统监控 :Zabbix Agent Interface

  ²  Java 监控:ZabbixJMX Interface

  ²  网络设备监抟:Zabbix SNMP Interface

  ²  应用服务监控:Zabbix Agent UserParameter

  ²  MySQL 数据库监控:percona-monitoring-pldlgins

  ²  URL监控:Zabbix Web监控

第2章 安装zabbix

2.1 环境检查

[root@m01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) [root@m01 ~]# uname -r
3.10.0-693.el7.x86_64 [root@m01 ~]# getenforce
Disabled [root@m01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)

2.2 安装zabbix过程

2.2.1 安装方式选择

  编译安装 (服务较多,环境复杂)

  yum安装(干净环境)

  使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html

2.2.2 服务端快速安装脚本

#!/bin/bash
#clsn #设置解析 注意:网络条件较好时,可以不用自建yum源
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安装zabbix源、aliyun YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安装zabbix
yum install -y zabbix-server-mysql zabbix-web-mysql #安装启动 mariadb数据库
yum install -y mariadb-server
systemctl start mariadb.service #创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";' #导入数据
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix #配置zabbixserver连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf #添加时区
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf #解决中文乱码
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf #启动服务
systemctl start zabbix-server
systemctl start httpd #写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF #输出信息
echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"

2.2.3 客户端快速部署脚本

#!/bin/bash
#clsn #设置解析
echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安装zabbix客户端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service #写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start zabbix-agent.service
EOF

修改配置

#vi /etc/zabbix/zabbix_agentd.conf

  

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
#Server:被动模式,允许哪台服务器连接Agent。
Server=127.0.0.1,192.168.0.240 #被动模式,Zabbix-Server的IP地址 #ServerActive:主动模式,向哪台服务器传送数据。
ServerActive=192.168.0.240:10050 #主动模式 Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1
shell# chkconfig zabbix-agent on
shell# service zabbix-agent start
Starting Zabbix agent: [ OK ]

  

2.3 检测连通性

2.3.1 服务端安装zabbix-get检测工具

yum install zabbix-get

2.3.2 在服务端进行测试

注意:只能在服务端进行测试

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

测试结果

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

第3章 web界面操作

3.1 zabbix的web安装

3.1.1 使用浏览器访问

  http://10.0.0.61/zabbix/setup.php

Zabbix3.0学习笔记

在检测信息时,可查看具体的报错信息进行不同的解决

Zabbix3.0学习笔记

选择mysql数据库,输入密码即可

Zabbix3.0学习笔记

host与port不需要修改,name自定义

Zabbix3.0学习笔记

确认信息,正确点击下一步

Zabbix3.0学习笔记

安装完成、点击finsh

Zabbix3.0学习笔记

进入登陆界面  账号Admin密码zabbix   注意A大写

Zabbix3.0学习笔记

3.2 添加监控信息

3.2.1 修改监控管理机zabbix server

配置 >> 主机

Zabbix3.0学习笔记

主机名称: 要与主机名相同,这是zabbix server程序用的

可见名称: 显示在zabbix网页上的,给我们看的

Zabbix3.0学习笔记

修改后,要将下面的已启用要勾上

Zabbix3.0学习笔记

添加完成就有了管理机的监控主机

Zabbix3.0学习笔记

3.2.2 添加新的主机

配置 >> 主机 >> 创建主机

Zabbix3.0学习笔记

注意勾选以启用

Zabbix3.0学习笔记

然后添加模板,选择linux OS ,先点小添加,再点大添加。

Zabbix3.0学习笔记

添加完成,将会又两条监控主机信息

Zabbix3.0学习笔记

3.2.3 查看监控内容

检测中  >> 最新数据

在最新数据中需要筛选,

Zabbix3.0学习笔记

输入ip或者名字都能够搜索出来

Zabbix3.0学习笔记

在下面就会列出所有的监控项

Zabbix3.0学习笔记

3.2.4 查看图像

检测中 >> 图形

选择正确的主机。选择要查看的图形即可出图

Zabbix3.0学习笔记

第4章 自定义监控与监控报警

4.1 自定义监控

4.1.1 说明

zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

需求:服务器登陆人数不能超过三人,超过三人报警

4.1.2 预备知识

自定义key能被server和agent认可

# 正确的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"
Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 
# 没有登记的,自定义的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
ZBX_NOTSUPPORTED: Unsupported item key. 
# 写错的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"
ZBX_NOTSUPPORTED: Unsupported item key.

4.2 实现自定义监控

4.2.1 自定义语法

UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh

4.2.2 agent注册

[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf
UserParameter=login-user,who|wc -l
UserParameter=login-user2,who|wc -l
UserParameter=login-user3,who|wc -l

注意:key名字要唯一,多个key以行为分割

# 修改完成后重启服务

[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

在server端进行get测试

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"
3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"
3 [root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"
ZBX_NOTSUPPORTED: Unsupported item key.

4.2.3 在server端注册(web操作)

①   创建模板

配置 >> 模板 >> 创建模板

Zabbix3.0学习笔记

点击添加,即可创建出来模板

Zabbix3.0学习笔记

查看创建出来的模板。↑

②   创建应用集

应用集类似(目录/文件夹),其作用是给监控项分类。

点击 应用集 >> 创建应用集

Zabbix3.0学习笔记

自定义应用集的名称,然后点击添加

③   创建监控项

监控项 >> 创建监控项

Zabbix3.0学习笔记

键值 -- key,即前面出创建的login-user。

Zabbix3.0学习笔记

注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。

Zabbix3.0学习笔记

④   创建触发器

触发器的作用:当监控项获取到的值达到一定条件时就触发报警

(根据需求创建)

触发器 >> 创建触发器

创建触发器,自定义名称,该名称是报警时显示的名称。

表达式,点击右边的添加,选择表达式

严重性自定义。

Zabbix3.0学习笔记

表达式的定义 ↓ ,选择之前创建的监控项,

最新的T值为当前获取到的值。

Zabbix3.0学习笔记

添加完成,能够在触发器中看到添加的情况

Zabbix3.0学习笔记

⑤   创建图形

以图形的方式展示出来监控信息

图形 >> 创建图形

名称自定义,关联上监控项。

Zabbix3.0学习笔记

⑥   主机关联模板

配置 >> 主机

一个主机可以关联多个模板

Zabbix3.0学习笔记

4.2.4 查看监控的图形

Zabbix3.0学习笔记

4.3 监控报警

4.3.1编辑zabbix_server.conf文件

编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径。

#vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

4.3.2.上传python脚本

上传python脚本send_mail.py至此路径(/usr/lib/zabbix/alertscripts)下,脚本内容如下:

#!/bin/env python
#coding:utf-8
'''
发送txt文本邮件
'''
import smtplib
from email.mime.text import MIMEText
from sys import argv mailto_list=[]
mail_host="smtp.163.com:25" #设置服务器
mail_user="gxxxxx@163.com" #发件用户名(换成自己的)
mail_pass="ZHAxxxxxx" #口令(换成自己的)
#mail_postfix="163.com" #发件箱的后缀
debug_level=0 #是否开启debug def send_mail(to_list,sub,content):
me=mail_user
msg = MIMEText(content,_subtype='plain',_charset='utf-8')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
server = smtplib.SMTP()
server.set_debuglevel(debug_level)
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
try:
mailto_list=argv[1].split(';')
sub=argv[2]
content=argv[3]
except:
print "python send_mail.py 'user1@xx.com;user2@xx.com' sub content"
exit() if send_mail(mailto_list,sub,content):
print "发送成功"
else:
print "发送失败"

  

脚本上传之后,修改权限:

chmod +x send_mail.py

  

4.3.3.zabbix web端——创建媒体类型

管理——>报警媒介类型——>创建媒体类型 
Zabbix3.0学习笔记

Zabbix3.0学习笔记

4.3.4.zabbix web端——用户指定媒介

Zabbix3.0学习笔记

Zabbix3.0学习笔记

4.3.5.zabbix web端——创建动作

Zabbix3.0学习笔记

Zabbix3.0学习笔记

Zabbix3.0学习笔记

告警消息模板

接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}

  

Zabbix3.0学习笔记

恢复消息模板
接收人:{TRIGGER.STATUS}: {TRIGGER.NAME}
恢复主机:{HOST.NAME}
主机地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件代码:{EVENT.ID}

  

4.3.6.邮件测试

利用本机添加的日志监控进行测试,在日志中输入yyy则报警,输入111则问题解决。 
Zabbix3.0学习笔记 
Zabbix3.0学习笔记

4.4 监控可视化

4.4.1 聚合图形

最新数据 >> 图形

Zabbix3.0学习笔记

自定义名称

Zabbix3.0学习笔记

点击聚合图形的名称,进行更改,添加要显示的图形即可。

Zabbix3.0学习笔记

4.4.2 幻灯片

添加幻灯片

监测中 >> 复合图形 >> 幻灯片演示

Zabbix3.0学习笔记

创建幻灯片,名称自定,选择要显示的

Zabbix3.0学习笔记

幻灯片根据设定的时间自动播放

4.5 模板的共享

4.5.1 主机共享

在主机页打开,全选后点击导出

Zabbix3.0学习笔记

导入

Zabbix3.0学习笔记

4.5.2 模板共享

https://github.com/zhangyao8/zabbix-community-repos

Zabbix3.0学习笔记

第5章 监控全网服务器

5.1 需求说明

实际需求:

  公司已经有了100台服务器,现在需要使用zabbix全部监控起来。

5.2 规划方案

常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

  方法1:使用克隆的方式

    方法2:自动注册和自动发现

    方法3:调用zabbix api接口  curl 、python

    开发自己的运维平台兼容zabbix的通道

   服务监控,url监控等特殊监控:自定义监控

5.2.1 api接口使用(curl

    curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

    curl -i -X POST -H 'Content-Type:application/json' -d'
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "6a450a8fc3dce71fd310cfe338746578"
}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

5.3 具体实施规划

5.3.1 硬件、系统、网络监控

  所有集群节点(所有虚拟机)都监控上

  交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)

  snmp监控

5.3.2 应用服务监控

1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;

    方法1:监控873端口net.tcp.port[,873]
方法2:模拟推送拉取文件

2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;

    方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l

3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;

    方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key

4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;

    方法1:端口(通过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测

5. 监控URL地址来更精确的监控我们的网站运行正常;

    使用zabbix自带的监控Web监测 进行监控

6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

nginx,pptp
ntp 端口udp 123

7. 监控Nginx的7种连接状态。

    自定义监控

5.3.3 监控服务通用方法

  1. 监控端口 netstat ss lsof  ==》 wc -l

  2. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

  3. 模拟客户端的使用方式监控服务端

      web  ==》 curl

   mysql ==》 select insert

     memcache ==》 set再get

5.4 实施全网监控

安装客户端脚本,for centos6

#!/bin/bash

#设置解析
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts #安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm yum clean all
yum clean all
#安装zabbix客户端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
/etc/init.d/zabbix-agent start #写入开机自启动
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
/etc/init.d/zabbix-agent start
EOF

5.4.1 使用自动发现规则

添加自动发现规则

Zabbix3.0学习笔记

创建发现动作

Zabbix3.0学习笔记

查看自动发现的机器。

Zabbix3.0学习笔记

5.4.2 监控备份服务器

利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板

Zabbix3.0学习笔记

在服务端进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]"
1 # 1为端口在监听 0为端口未监听

将模板添加到主机

Zabbix3.0学习笔记

5.4.3 监控NFS服务器

创建nfs监控模板

使用 proc.num[<name>,<user>,<state>,<cmdline>]  键值,检测nfs进程的数量

Zabbix3.0学习笔记

在服务端进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]"
5 [root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,]
8

将模板绑定到主机

Zabbix3.0学习笔记

5.4.4 监控MySQL服务器

将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。

Zabbix3.0学习笔记

使用系统自带模板  net.tcp.port[<ip>,port] 利用自带的监控端口键值进行监控

Zabbix3.0学习笔记

添加新的mysql监控项端口

Zabbix3.0学习笔记

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]"
1 #检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

将模板关联到主机

Zabbix3.0学习笔记

5.4.5 监控web服务器

创建监控模板 监控 nginx服务与 80 端口

    proc.num[<name>,<user>,<state>,<cmdline>]   进程数。返回整数
net.tcp.port[<ip>,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

Zabbix3.0学习笔记

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"
2 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"
1

将模板关联到主机

Zabbix3.0学习笔记

5.4.6 监控URL地址

创建监测页面

echo ok >> /application/nginx/html/www/check.html

测试监控面页

[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done
ok
ok
ok

创建web监测模板

创建应用集

Zabbix3.0学习笔记

创建Web场景

Zabbix3.0学习笔记

创建图形

Zabbix3.0学习笔记

将模板关联到主机

Zabbix3.0学习笔记

监测结果

Zabbix3.0学习笔记

5.4.7 监控反向代理服务器

创建自定义key

[root@lb01 ~]# cat  /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf
UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

在服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.5  -p 10050 -k "keep-ip"
1 [root@m01 ~]# zabbix_get -s 172.16.1.6 -p 10050 -k "keep-ip"
0

在web界面添加模板

Zabbix3.0学习笔记

将模板关联到主机

Zabbix3.0学习笔记

5.4.8 监控Nginx的7种连接状态

nginx服务器显示status
……
location /status {
stub_status on;
access_log off;
}
……
[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done
Active connections: 1
server accepts handled requests
73 73 69
Reading: 0 Writing: 1 Waiting: 0 Active connections: 1
server accepts handled requests
134 134 127
Reading: 0 Writing: 1 Waiting: 0 Active connections: 1
server accepts handled requests
7 7 7
Reading: 0 Writing: 1 Waiting: 0

在nginx服务器上添加key

cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'
UserParameter=nginx_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}'
UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}'
UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}'
UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}'
UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}'
UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}'
UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}'
EOF

服务端测试

[root@m01 ~]# zabbix_get -s 172.16.1.7  -p 10050 -k "nginx_waiting"
0 [root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting"
0 [root@m01 ~]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_waiting"
0

在zabbix-web上添加

Zabbix3.0学习笔记

监控项

Zabbix3.0学习笔记

添加图形

Zabbix3.0学习笔记

将模板关联到主机

Zabbix3.0学习笔记

查看添加的图形

Zabbix3.0学习笔记

Zabbix3.0学习笔记

第6章 自动发现与自动注册

6.1 自动注册与自动注册

6.1.1 简介

自动发现:

zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。

自动注册:

zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)

6.1.2 两种模式

被动模式:默认  agent被server抓取数据 (都是在agent的立场上说)
主动模式:agent主动将数据发到server端 (都是在agent的立场上说)

     注意: 两种模式都是在agent上进行配置

     zabbix 的使用要在hosts文件中预先做好主机名的解析

6.2 自动发现--被动模式

 第一个里程碑:完成之前的安装

zabbix Server安装完毕

第二个里程碑:配置agent客户端

zabbix agent安装完毕,注意配置Server=172.16.1.61

第三个里程碑:在web界面上进行配置

    web界面:配置 >> 自动发现 >> Local network
使用自带的自动发现规则(进行修改)即可

Zabbix3.0学习笔记

    在ip范围内输入ip,注意格式;
延迟在实际的生产环境中要大一些,实验环境可以小一些

Zabbix3.0学习笔记

创建发现动作

    配置 >> 动作 >> Auto discovery. Linux servers.

Zabbix3.0学习笔记

①  配置动作

Zabbix3.0学习笔记

②  在条件中添加条件,让添加更准确

Zabbix3.0学习笔记

③  在操作中添加

a)  添加主机与启用主机

Zabbix3.0学习笔记

    然后等待者客户端自动上门就好