vieyahn2017 / iBlog

44 stars 0 forks source link

6.11 zabbix使用指南 #155

Closed vieyahn2017 closed 4 years ago

vieyahn2017 commented 6 years ago

zabbix使用指南

vieyahn2017 commented 4 years ago

简介

zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 zabbix由2部分构成,zabbix server与可选组件zabbix agent。 zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

使用指南 zabbix server需要使用一个单一服务器作为主机,可以通过zabbix proxy连接Agent,也可以直接连接Agent。zabbix proxy在维护海量主机时,可以起到分流负载减少zabbix server压力的作用。由于主机数量并不十分庞大,暂不使用proxy。zabbix server的安装相对比较麻烦,依赖很多开源包,编译相对麻烦,有需要单独开贴说明下;公司内也有很多案例可以提供参考。

添加主机监控 添加主机步骤如下:

1、在主机部署 zabbix-agent-2.2.9-1.1.x86_64.rpm,高版本依赖的库有缺失,suse11版本安装会报错

2、编辑/etc/zabbix/zabbix-agentd.conf

Server=10.171.47.7

ServerActive=10.171.47.7

Hostname=10.137.206.65 #在zabbix server注册的主机名称,添加主机的时候要输入,建议是填写主机IP

3、添加开机启动项:chkconfig --level 35 zabbix-agentd on

4、启动服务开始监控 rczabbix-agentd start

zabbix server的监控体系采取的类似于面向对象的方法,服务本体提供一系列应用集,项目,触发器(类似于告警),图形(采集绘图)等等;再通过模板的方式将其组合,一个模板就是包含多个触发器和图形的类,模板还可以包含其他模板,类似于派生模板。我们定义一个Template_SNE_linux模板,然后添加Linux主机监控,添加ssh监控和其他定制选项,zabbix就会按照我们的自定义方式去监控。

在zabbix server上添加主机,可以直接创建方式,也可以从已有的主机上选择克隆复制。

1、在服务器上选择组态-》主机

2、采用克隆方式,点击10.137.109.154主机名称

点击最下方的克隆按钮,然后重新修改主机名称(和Agent上配置的名称必须一致),代理的IP地址;有需要也可以修改群组,群组类似一个ideploy的主机组,便于批量管理和操作

模板界面也可以添加和删除已经加载的模板,由于是克隆已经自动复制了原有的模板,点击添加完成

重新查看主机状态,主机的可用性状态亮起说明对接成功,如果有问题可以查看Agent的日志,日志路径为/var/log/zabbix/zabbix-agentd.log

主机监控 zabbix主机监控的项目非常丰富,和I2000非常相似,可以自动上报告警和发邮件。不得不吐槽下I2000,服务器监控也是I2000的能力,不但使用麻烦,功能也少无法定制修改。

仪表盘界面,所有控件可以拖动,左边是所有主机信息统计

点击图形选项,拖动和点击上面的滑动块可以随意放大和移动需要观测的时间

vieyahn2017 commented 4 years ago

Zabbix常用操作方法

原创小白正在飞 最后发布于2018-09-14 16:42:01 阅读数 2165 收藏 展开 常用操作方法及问题如下,对应标题查找相应序号解决方法

批量部署zabbxi_agentd客户端 手动添加监控和触发器 手动关闭告警方式 添加url地址监控或者关闭url监控 图形不显示或者数据缺失 ———————————————— 版权声明:本文为CSDN博主「小白正在飞」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/ukgikgb/java/article/details/82705199

vieyahn2017 commented 4 years ago

Zabbix常用操作方法

https://blog.csdn.net/ukgikgb/java/article/details/82705199

原创小白正在飞 最后发布于2018-09-14 16:42:01 阅读数 2165 收藏 展开 常用操作方法及问题如下,对应标题查找相应序号解决方法

批量部署zabbxi_agentd客户端 手动添加监控和触发器 手动关闭告警方式 添加url地址监控或者关闭url监控 图形不显示或者数据缺失 待更新  ---------------------------------------------------------------------------------------1--------------------------------------------

部署脚本如下,通过ansible或者saltstack分发到客户端执行,即可启动客户端,如失败查看相应日志

日志文件在/tmp/目录

!/bin/bash

source /etc/profile

 

groupadd zabbix -g 201

useradd -g zabbix -u 201 -m zabbix

mkdir /usr/local/zabbix

tar xf /home/cloud-user/zabbix_agents_3.2.0.linux2_6_23.amd64.tar.gz  -C /usr/local/zabbix

chown -R zabbix.zabbix /usr/local/zabbix

 

IPPADDR=ifconfig |grep -oP '(?<=inet )[\d\.]+'|grep -v 127.0.0.1

cat > /usr/local/zabbix/conf/zabbix_agentd.conf  <<EOF

LogFile=/tmp/zabbix_agentd.log

Server=10.119.171.56(此处对应修改)

ServerActive=10.119.171.56(此处对应修改)

Hostname=$IPPADDR

HostMetadataItem=system.uname

Include=/usr/local/zabbix/conf/zabbix_agentd/*.conf

EOF

ln -sf /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf

mkdir /usr/local/zabbix/scripts

 

configure autostart

if [ grep /usr/local/zabbix/sbin/zabbix_agentd /etc/rc.local|wc -l -eq 0 ];then

echo '/usr/local/zabbix/sbin/zabbix_agentd' >> /etc/rc.local

fi

chmod +x /etc/rc.d/rc.local

 

start zabbix_agentd

/usr/local/zabbix/sbin/zabbix_agentd

sleep 3

---------------------------------------------------------------------------------------1--------------------------------------------

---------------------------------------------------------------------------------------2--------------------------------------------

手动添加监控主机,确保zabbix_agentd已正常运行,图示以添加(192.168.140.16)为例

server端添加监控机器

绑定监控模板

操作完成后等待数据通信即可看到添加成功,如失败查看相应日志,检查配置

添加自定义监控和触发器 被监控端添加自定义parameter,此处以java进程为例

cat /usr/local/zabbix/conf/zabbix_agentd/userparameter_java.conf        

UserParameter=java_process,ps -ef|grep java |grep -v grep|wc -l

然后面板添加相应键值

 

创建触发器

这样触发器即创建成功,会监控java进程是否挂掉

---------------------------------------------------------------------------------------2--------------------------------------------

---------------------------------------------------------------------------------------3--------------------------------------------

短信网关访问地址

URL 是监控应用状态的,不需要可关闭

URL_Other 是监控其余各主机基础监控

---------------------------------------------------------------------------------------3--------------------------------------------

---------------------------------------------------------------------------------------4--------------------------------------------

添加url监控需要在各代理主机添加路径(/usr/local/zabbix/scripts/web.txt),zabbix server会自动添加进http_status应用集

 

---------------------------------------------------------------------------------------4--------------------------------------------

---------------------------------------------------------------------------------------5--------------------------------------------

图形不显示或缺失请检查crontab 任务是否执行

执行的过期数据清理的存储计划

1 2 /7 * echo $(date "+%Y-%m-%d %H:%M:%S") >>/tmp/crontab.log && /usr/local/mysql/bin/mysql -uzabbix -pzabbix zabbix -e "CALL partition_maintenance_all('zabbix');" 2>&1 >/dev/null  >>/tmp/crontab.log

vieyahn2017 commented 4 years ago

zabbix触发器支持的函数列表

日期:2017-01-20 16:55浏览:98评论:0 将zabbix官方文档翻译为中文,以方便查阅。错误之处敬请指正。附上英文原文,以便于对比参考。

函数

描述

参数

备注

abschange

The amount of absolute difference between last and previous values.

最后的值和之前的值的差的绝对值

Supported value types: float, int, str, text, log

For example:

(previous value;last value=abschange)

1;5=4

3;1=2

0;-2.5=2.5

For strings returns:

0 - values are equal

1 - values differ

支持的类型:

float, int, str, text, log

对于数值:

(之前的值,最后的值=函数返回值)

1,5=4

3,1=2

0,-2.5=2.5

对于字符串:

0:值相等

1:值不相等

avg (sec|#num,)

Average value of an item within the defined evaluation period.

在给定的时间范围内的平均值

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

time_shift (optional) - evaluation point is moved the number of seconds back in time

sec or #num - 在给定的时间周期内的或者最后的取值

time_shift (可选)- 评估的时间向后偏移若干秒

Supported value types: float, int

Examples:

⇒ avg(#5) → average value for the five latest values

⇒ avg(1h) → average value for an hour

⇒ avg(1h,1d) → average value for an hour one day ago.

The time_shift parameter is supported since Zabbix 1.8.2. It is useful when there is a need to compare the current average value with the average value time_shift seconds back.

支持的类型:float, int

示例:

⇒ avg(#5) → 最后五个值的平均值

⇒ avg(1h) → 一小时的平均值

⇒ avg(1h,1d) → 一天前的一个小时的平均值

time_shift 从zabbix1.8.2版本开始支持。这个参数在需要对比当前的平均值和time_shift秒之前的平均值进行对比时非常有用。

band (sec|#num,mask,)

Value of “bitwise AND” of an item value and mask.

指标值和mask的位与值

sec (ignored) or #num - the Nth most recent value

mask (mandatory) - 64-bit unsigned integer (0 - 18446744073709551615)

time_shift (optional) - see avg()

sec (被忽略) or #num - N个最新的值

mask (必选) - 64位的无符号数(0 - 18446744073709551615)

time_shift (可选) - 参考avg()

Supported value types: int

支持的类型:int

Take note that #num works differently here than with many other functions (see last()).

num和其他的函数的作用不一样。

Although the comparison is done in a bitwise manner, all the values must be supplied and are returned in decimal. For example, checking for the 3rd bit is done by comparing to 4, not 100.

所有的值以10进制的方式提供;

Examples:

⇒ band(,12)=8 or band(,12)=4 → 3rd or 4th bit set, but not both at the same time

⇒ band(,20)=16 → 3rd bit not set and 5th bit set.

示例:

⇒ band(,12)=8 or band(,12)=4 → 第三位或者第四位被设置,但是不是同时被设置

⇒ band(,20)=16 → 第三位没有被设置,第五位被设置

This function is supported since Zabbix 2.2.0.

从Zabbix2.2.0开始支持此函数。

change

The amount of difference between last and previous values.

当前值与之前值的差

Supported value types: float, int, str, text, log

For example:

(previous value;last value=change)

1;5=+4

3;1=-2

0;-2.5=-2.5

For strings returns:

0 - values are equal

1 - values differ

count (sec|#num,,,)

Number of values within the defined evaluation period.

在评估周期内值的数量

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

pattern (optional) - required pattern (integer items - exact match; float items - match within 0.000001)

operator (optional)

sec or #num - 评估周期,一秒为单位或者最后的采集次数

pattern (可选) - 需要模式(整数指标-完全匹配;浮点数指标-0.000001的误差)

operator (可选) - 操作方式

Supported operators:

eq - equal

ne - not equal

gt - greater

ge - greater or equal

lt - less

le - less or equal

like - matches if contains pattern (case-sensitive)

band - bitwise AND (supported since Zabbix 2.2.0).

Note that:

eq (default), ne, gt, ge, lt, le,band are supported for integer items

eq (default), ne, gt, ge, lt, le are supported for float items

like (default), eq, ne are supported for string, text and log items

支持的操作方式:

eq - 相等

ne - 不相等

gt - 大于

ge - 大于等于

lt - 小于

le - 小于等于

like - 包含pattern时满足要求(大小写敏感)band - 位与(Zabbix 2.2.0版本开始支持).

备注:

eq (默认), ne, gt, ge, lt, le,band 支持整形指标

eq (default), ne, gt, ge, lt, le are 支持浮点型指标

like (default), eq, ne 支持 string, text and log 类型的指标

time_shift (optional) - 参考 avg()

Supported value types: float, int, str, text, log

支持的指标类型: float, int, str, text, log

With band as third parameter, the second parameter can be specified as two numbers, separated by '/': number_to_compare_with/mask. count() calculates “bitwise AND” from the value and the mask and compares the result to number_to_compare_with. If the result of “bitwise AND” is equal to number_to_compare_with, the value is counted.

If number_to_compare_with and mask are equal, only the mask need be specified (without '/').

当使用'band'作为第三个参数时,第二个参数可以采用被'/'分割开的两个整数 number_to_compare_with/mask。count()函数将指标值和mask进行位与运算,将结果和umber_to_compare_with进行对比。

如果number_to_compare_with 和mask 相等,可以只设置mask值(不需要'/')。

Examples:

⇒ count(10m) → number of values for last 10 minutes

⇒ count(10m,12) → number of values for last 10 minutes that equal '12'

⇒ count(10m,12,"gt") → number of values for last 10 minutes that are over '12'

⇒ count(#10,12,"gt") → number of values within last 10 values that are over '12'

⇒ count(10m,12,"gt",1d) → number of values for preceding 10 minutes up to 24 hours ago that were over '12'

⇒ count(10m,6/7,"band") → number of values for last 10 minutes having '110' (in binary) in the 3 least significant bits.

⇒ count(10m,,,1d) → number of values for preceding 10 minutes up to 24 hours ago

示例:

⇒ count(10m) → 最后10分钟指标值的数量

⇒ count(10m,12) → 最后10分钟中等于12的指标值的数量

⇒ count(10m,12,"gt") → 最后10分钟中大于12的指标值的数量

⇒ count(#10,12,"gt") → 最后10个指标值中大于12的指标值的数量

⇒ count(10m,12,"gt",1d) → 一天(24h)之前最后10分钟中大于12的指标值的数量

⇒ count(10m,6/7,"band") → 最后10分钟中最低位为110(二进制)的指标值的数量

⇒ count(10m,,,1d) → 一天(24h)之前最后10分钟中指标值的数量

The #num parameter is supported since Zabbix 1.6.1.

The time_shift parameter and string operators are supported since Zabbix 1.8.2.

num从Zabix1.6.1版本开始支持;

time_shift参数和string操作符从Zabbix1.8.2版本开始支持;

date

YYYYMMDD 格式的当前日期.

支持的类型: any

返回值的示例: 20150731

dayofmonth

一个月内的日期(1到31).

支持的类型: any

从zabbix1.8.5开始支持

dayofweek

一周内的日期(1到7,星期一-1,星期日-7).

支持的类型: any

delta (sec|#num,)

Difference between the maximum and minimum values within the defined evaluation period ('max()' minus 'min()').

在给定的周期内最大值和最小值的差

sec or #num - evaluation period in seconds or in latest collected values specified (preceded by a hash mark)

time_shift (optional) - see avg()

sec or #num - 评估周期,以秒为单位或者最后的采集次数

time_shift (可选) - 参考avg()

Supported value types: float, int

The time_shift parameter is supported since Zabbix 1.8.2.

支持的类型: float, int

diff

判断最后的值和之前的值是否有不一致

Supported value types: float, int, str, text, log

支持的类型:float, int, str, text, log

Returns:

1 - last and previous values differ

0 - otherwise

返回值:

1 - 不一致

0 - 其他

forecast (sec|#num,,time,,)

Future value, max, min, delta or avg of the item.

预测未来的值,最大值,最小值,差或者平均值

sec or #num - evaluation period in seconds or in latest collected values specified (preceded by a hash mark)

time_shift (optional) - see avg()

time - forecasting horizon in seconds

fit (optional) - function used to fit historical data

sec or #num - 评估周期,以秒为单位或者最后的采集次数

time_shift (可选) - 参考avg()

time - 以秒为单位的预测范围

fit (可选) - 拟合历史数据的函数

Supported fits:

linear - linear function

polynomialN - polynomial of degree N (1 <= N <= 6)

exponential - exponential function

logarithmic - logarithmic function

power - power function

支持的拟合方法fits:

linear - 线性方法

polynomialN - N级多项式 (1 <= N <= 6)

exponential - 指数方法

logarithmic - 对数方法

power - 幂方法

Note that:

linear is default, polynomial1 is equivalent to linear

备注:

默认是linear, polynomial1 相当于 linear

mode (optional) - demanded output

mode (可选) - 要求的输出

Supported modes:

value - value (default)

max - maximum

min - minimum

delta - max-min

avg - average

支持的modes:

value - 值(默认)

max - 最大值

min - 最小值

delta - 差(max-min)

avg - 平均值

Note that:

value estimates item value at the moment now + time

max, min, delta and avginvestigate item value estimate on the interval between now andnow + time

备注:

value预测在now+time时间点的指标值

max, min, delta and avg 给出在now和now+time的时间段内的预测

Supported value types: float, int

If value to return is larger than 999999999999.9999 or less than -999999999999.9999, return value is cropped to 999999999999.9999 or -999999999999.9999 correspondingly.

如果返回值大于999999999999.9999或者小于 -999999999999.9999,返回值会被相应地裁剪为999999999999.9999或者-999999999999.9999

Becomes not supported only if misused in expression (wrong item type, invalid parameters), otherwise returns -1 in case of errors.

当在表达式中错误使用时,此方法不支持,其他的情况如果出现错误,方法返回-1

Examples:

⇒ forecast(#10,,1h) → forecast of item value after one hour based on last 10 values

⇒ forecast(1h,,30m) → forecast of item value after 30 minutes based on last hour data

⇒ forecast(1h,1d,12h) → forecast of item after 12 hours based on one hour one day ago

⇒ forecast(1h,,10m,exponential) → forecast of item value after 10 minutes based on last hour data and exponential function

⇒ forecast(1h,,2h,polynomial3,max) → forecast of maximum value item can reach in next two hours based on last hour data and cubic (third degree) polynomial

⇒ forecast(#2,,-20m) → estimate the value of an item which was 20 minutes ago based on last two values (this can be more precise than using last() or prev(), especially if item is updated rarely, say, once an hour)

This function is supported since Zabbix 3.0.0.

Negative time values are supported since Zabbix 3.0.6.

See also additional information on predictive trigger functions.

fuzzytime (sec)

Checking how much an item timestamp value differs from the Zabbix server time.

检查一个指标的时间戳和服务器时间的差

sec - seconds

sec - 秒

Supported value types: float, int

Returns:

0 - if difference between item timestamp value and Zabbix server timestamp is over T seconds

1 - otherwise.

返回值:

0 - 如果指标的时间戳和zabbix服务器的时间戳大于T秒

1 - 其他.

Usually used with system.localtime to check that local time is in sync with local time of Zabbix server.

Can be used also with vfs.file.time[/path/file,modify] key to check that file didn't get updates for long time.

Example:

⇒ fuzzytime(60)=0 → detect a problem if time difference is over 60 seconds

iregexp (pattern,<sec|#num>)

大小写不敏感的regexp()

参考regexp()

Supported value types: str, log, text

last (sec|#num,)

The most recent value.

最近的值

sec (ignored) or #num - N个最近的值

time_shift (optional) - 参考avg()

Supported value types: float, int, str, text, log

Take note that #num works differently here than with many other functions.

注意#num起作用的方式结合其他的函数不一致

For example:

last() is always equal to last(#1)

last(#3) - third most recent value (not three latest values)

示例:

last() 相等于 last(#1)

last(#3) - 倒数第三个最近的值 (不是三个最近的值)

Zabbix does not guarantee exact order of values if more than two values exist within one second in history.

zabbix不保证在一秒中之内出现多于两个值时的准确顺序

The #num parameter is supported since Zabbix 1.6.2.

The time_shift parameter is supported since Zabbix 1.8.2.

logeventid (pattern)

Checking if event ID of the last log entry matches a regular expression.

检查最后一个日志项的eventID满足一个正则表达式

pattern - regular expression describing the required pattern,POSIX extended style.

pattern - 描述需要的模式的正则表达式,POSIX extended 格式.

Supported value types: log

Returns:

0 - does not match

1 - matches

This function is supported since Zabbix 1.8.5.

logseverity

Log severity of the last log entry.

最后一条日志的日志级别

Supported value types: log

Returns:

0 - default severity

N - severity (integer, useful for Windows event logs: 1 - Information, 2 - Warning, 4 - Error, 7 - Failure Audit, 8 - Success Audit, 9 - Critical, 10 - Verbose).

Zabbix takes log severity from Information field of Windows event log.

源文档 https://www.zabbix.com/documentation/3.0/manual/appendix/triggers/functions

logsource (pattern)

Checking if log source of the last log entry matches parameter.

检查最后一条日志的内容是否满足指定的正则表达式

pattern - required string

Supported value types: log

Returns:

0 - does not match

1 - matches

Normally used for Windows event logs. For example, logsource("VMware Server").

max (sec|#num,)

Highest value of an item within the defined evaluation period.

在给定的周期内的最大值

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

time_shift (optional) - see avg()

sec or #num - 评估周期,以秒为单位或者最后的采集次数

time_shift (可选) - 参考avg()

Supported value types: float, int

The time_shift parameter is supported since Zabbix 1.8.2.

min (sec|#num,)

Lowest value of an item within the defined evaluation period.

在给定的周期内的最小值

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

time_shift (optional) - see avg()

sec or #num - 评估周期,以秒为单位或者最后的采集次数

time_shift (可选) - 参考avg()

Supported value types: float, int

The time_shift parameter is supported since Zabbix 1.8.2.

nodata (sec)

Checking for no data received.

检查是否有接收到数据

sec - evaluation period in seconds. The period should not be less than 30 seconds.

sec - 以秒为单位的评估周期。不能小于30秒

nodata(0) is disallowed since Zabbix 3.0.6.

Supported value types: any

Returns:

1 - if no data received during the defined period of time

0 - otherwise

返回值:

1 - 在给定评估周期内没有接收到数据

0 - 其他

Note that this function will display an error if, within the period of the 1st parameter:

注意,在第一个参数指定的评估周期内出现下面的情况时,此函数会展示一个错误:

Errors are displayed in the Info column in trigger configuration.

错误在Info列中展示

now

Number of seconds since the Epoch (00:00:00 UTC, January 1, 1970).

从Epoch(00:00:00 UTC, January 1, 1970)开始到当前的秒数

Supported value types: any

percentile (sec|#num,,percentage)

P-th percentile of a period, where P (percentage) is specified by the third parameter.

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

time_shift (optional) - see avg()

percentage - a floating-point number between 0 and 100 (inclusive) with up to 4 digits after the decimal point

sec or #num - 评估周期,以秒为单位或者最后的采集次数

time_shift (可选) - 参考avg()

percentage - 0-100之间的浮点数,小数点后面最多可以包含4个数字

Supported value types: float, int

This function is supported since Zabbix 3.0.0.

prev

Previous value.

之前的值

Supported value types: float, int, str, text, log

Returns the same as last(#2).

相当于last(#2)

regexp (pattern,<sec|#num>)

Checking if the latest (most recent) value matches regular expression.

检查最后的值是否满足正则表达式

pattern - regular expression,POSIX extended style.

sec or #num (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). In this case, more than one value may be processed.

pattern - 正则表达式,POSIX extended style.

sec or #num (可选) - 评估周期,以秒为单位或者最后的采集次数

Supported value types: str, text, log

Returns:

1 - found

0 - otherwise

返回值:

1 - 发现

0 - 其他

This function is case-sensitive.

此方法是大小写敏感的

str (pattern,<sec|#num>)

Finding a string in the latest (most recent) value.

在最后的值中查找字符串

pattern - required string

sec or #num (optional) - evaluation period in seconds or in latest collected values (preceded by a hash mark). In this case, more than one value may be processed.

pattern - 待查找的字符串

sec or #num (可选) - 评估周期,以秒为单位或者最后的采集次数

Supported value types: str, text, log

Returns:

1 - found

0 - otherwise

返回值:

1 - 发现

0 - 其他

This function is case-sensitive.

此方法是大小写敏感的

strlen (sec|#num,)

Length of the latest (most recent) value in characters (not bytes).

最后的值的长度(按字符,不是字节)

sec (ignored) or #num - the Nth most recent value

time_shift (optional) - see avg()

sec (ignored) or #num - 第N个最近的值

time_shift (optional) - 参考 avg()

Supported value types: str, text, log

Take note that #num works differently here than with many other functions.

注意#num起作用的方式结合其他的函数不一致

Examples:

⇒ strlen()(is equal to strlen(#1)) → length of the latest value

⇒ strlen(#3) → length of the third most recent value

⇒ strlen(,1d) → length of the most recent value one day ago.

This function is supported since Zabbix 1.8.4.

源文档 https://www.zabbix.com/documentation/3.0/manual/appendix/triggers/functions

sum (sec|#num,)

Sum of collected values within the defined evaluation period.

在给定的周期内值的总和

sec or #num - evaluation period in seconds or in latest collected values (preceded by a hash mark)

time_shift (optional) - see avg()

sec or #num (可选) - 评估周期,以秒为单位或者最后的采集次数

time_shift (optional) - 参考 avg()

Supported value types: float, int

The time_shift parameter is supported since Zabbix 1.8.2.

Time

Current time in HHMMSS format.

HHMMSS格式的当前时间

Supported value types: any

Example of returned value: 123055

timeleft (sec|#num,,threshold,)

Time in seconds needed for an item to reach a specified threshold.

指标达到给定的阈值的时间(以秒为单位)

sec or #num - evaluation period in seconds or in latest collected values specified (preceded by a hash mark)

time_shift (optional) - see avg()

threshold - value to reach

fit (optional) - see forecast()

sec or #num (可选) - 评估周期,以秒为单位或者最后的采集次数

time_shift (optional) - 参考 avg()

threshold - 阈值

fit (optional) - 参考forecast()

Supported value types: float, int

If value to return is larger than 999999999999.9999, return value is cropped to 999999999999.9999.

如果返回值大于999999999999.9999,返回值会被相应地裁剪为999999999999.9999

Returns 999999999999.9999 if threshold cannot be reached.

如果阈值不能达到,返回999999999999.9999

Becomes not supported only if misused in expression (wrong item type, invalid parameters), otherwise returns -1 in case of errors.

当在表达式中错误使用时,此方法不支持,其他的情况如果出现错误,方法返回-1

Examples:

⇒ timeleft(#10,,0) → time until item value reaches zero based on last 10 values

⇒ timeleft(1h,,100) → time until item value reaches 100 based on last hour data

⇒ timeleft(1h,1d,0) → time until item value reaches 0 based on one hour one day ago

⇒ timeleft(1h,,200,polynomial2) → time until item reaches 200 based on last hour data and assumption that item behaves like quadratic (second degree) polynomial

This function is supported since Zabbix 3.0.0.

Unit symbols in threshold parameter are supported since Zabbix 3.0.6.

See also additional information on predictive trigger functions.

1) All functions return numeric values only. Comparison to strings is not supported, for example.

2) Some of the functions cannot be used for non-numeric parameters!

3) String arguments should be double quoted. Otherwise, they might get misinterpreted.

1)所有的函数只返回数字;

2)部分函数北能用于非数字的参数;

3)字符参数应该添加双引号;

vieyahn2017 commented 4 years ago

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 监控范畴

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的组成

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 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

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

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

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

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

安装完成、点击finsh

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

3.2 添加监控信息 3.2.1 修改监控管理机zabbix server 配置 >> 主机

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

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

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

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

3.2.2 添加新的主机 配置 >> 主机 >> 创建主机

注意勾选以启用

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

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

3.2.3 查看监控内容 检测中 >> 最新数据

在最新数据中需要筛选,

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

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

3.2.4 查看图像 检测中 >> 图形

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

第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=, 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操作) ① 创建模板

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

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

查看创建出来的模板。↑

② 创建应用集

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

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

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

③ 创建监控项

监控项 >> 创建监控项

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

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

④ 创建触发器

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

(根据需求创建)

触发器 >> 创建触发器

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

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

严重性自定义。

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

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

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

⑤ 创建图形

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

图形 >> 创建图形

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

⑥ 主机关联模板

配置 >> 主机

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

4.2.4 查看监控的图形

4.3 监控报警 4.3.1 第三方报警平台 http://www.onealert.com

  通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。

4.3.2 onealert配置 添加应用,注意添加的是zabbix

实现微信报警需要关注微信公众号即可。

4.3.3 安装 onealert Agent 1.切换到zabbix脚本目录(如何查看zabbix脚本目录):

cd /usr/local/zabbix-server/share/zabbix/alertscripts

查看zabbix脚本目录

vi /etc/zabbix/zabbix_server.conf 查看AlertScriptsPath 2.获取OneITSM agent包:

wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz 3.解压、安装。

tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz cd oneitsm/bin bash install.sh --#个人生成的key 注:在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。

Zabbix管理地址: http://10.0.0.61/zabbix/ Zabbix管理员账号: Admin Zabbix管理员密码: 4.当提示"安装成功"时表示安装成功!

验证告警集成

产生新的zabbix告警(problem),动作状态为“已送达”表示集成成功。 4.3.1 如何删除onealert Agent ① 删除报警媒介类型中的脚本

② 删除创建的用户

③ 删除用户群组

④ 删除创建的动作

4.3.2 触发器响应,发送报警信息

在微信和邮件中,均能收到报警信息。

注意:当状态改变的时候才会发邮件

   好-->坏

   坏-->好

4.4 监控可视化 4.4.1 聚合图形 最新数据 >> 图形

自定义名称

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

4.4.2 幻灯片 添加幻灯片

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

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

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

4.5 模板的共享 4.5.1 主机共享 在主机页打开,全选后点击导出

导入

4.5.2 模板共享 https://github.com/zhangyao8/zabbix-community-repos

第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

  1. 监控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 使用自动发现规则 添加自动发现规则

创建发现动作

查看自动发现的机器。

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

在服务端进行测试

[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]" 1

1为端口在监听 0为端口未监听

将模板添加到主机

5.4.3 监控NFS服务器 创建nfs监控模板

使用 proc.num[,,,] 键值,检测nfs进程的数量

在服务端进行测试

[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

将模板绑定到主机

5.4.4 监控MySQL服务器 将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。

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

添加新的mysql监控项端口

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]" 1

检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接

将模板关联到主机

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

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

[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 将模板关联到主机

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监测模板

创建应用集

创建Web场景

创建图形

将模板关联到主机

监测结果

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界面添加模板

将模板关联到主机

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上添加

监控项

添加图形

将模板关联到主机

查看添加的图形

第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
    使用自带的自动发现规则(进行修改)即可

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

创建发现动作

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

① 配置动作

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

③ 在操作中添加

a) 添加主机与启用主机

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