怎么配置zabbix web检测

怎么配置zabbix web检测,第1张

1.Serverzabbix系统核心进程,轮询并捕获数据、发送通知等。是zabbixagent和zabbixproxy汇报数据的对象。server自身可远程检测网络服务。所有的前后端配置、统计信息、可 *** 作数据存储于此。包含server、前段界面和后端DB几部分。2.Agent部

 基本知识准备:

1、SNMP(简单网络管理协议)

2、一些脚本知识,可以编写任意一种脚本。

3、知道Nagios怎么用。

好啦,现在开始:

1、编写一个可以输出本机Nginx并发连接数的脚本,输出结果为连接数。我这里脚本比较简单,只是看看已经链接80端口的。当然也可以自己编写更精确的脚本。

[root@webserver2 scripts]# cat showhttp.sh

#!/bin/bash

echo `netstat -nat | grep -i "80" | wc -l`

2、配置snmp,如何安装我就不说的,自己去弄呗。

yum install net-snmp*我是这么安装的。

看下我的snmp配置文件:

[root@webserver2 ~]# grep -v '^#' /etc/snmp/snmpd.conf | grep -v '^$'

com2sec notConfigUser default public

group notConfigGroup v1 notConfigUser

group notConfigGroup v2c notConfigUser

viewsystemviewincluded .1.3.6.1.2.1.1

viewsystemviewincluded .1.3.6.1.2.1.25.1.1

viewsystemviewincluded .1.3.6.1.4.1.2021

access notConfigGroup "" any noauthexact systemview none none

syslocation Unknown (edit /etc/snmp/snmpd.conf)

syscontact Root <root@localhost>(configure /etc/snmp/snmp.local.conf)

pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

exec .1.3.6.1.4.1.2021.51 showhttp /bin/bash /root/scripts/showhttp.sh

然后重载下snmp的配置文件。

/etc/init.d/snmpd reload

使用snmpwalk测试下,能不能通过snmp来获取数据。

[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51

UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1

UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: "showhttp"

UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: "/bin/bash /root/scripts/showhttp.sh"

UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "7"

UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0

UCD-SNMP-MIB::ucdavis.51.103.1 = ""

[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 showhttp

showhttp: Unknown Object Identifier (Sub-id not found: (top) ->showhttp)

[root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51.101.1

UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "5"

至此位置,snmp就配置好了。至于原理,google、baidu一大堆。限于自己的表述能力和打字速度就不在此复述了。

下面我登录nagios的监控机,来监控这台机器的http连接数量。

2、首先安装nagios,这里跳过。

3、先写个如下脚本,获取被监控的设备的snmp值。

[root@webserver2 libexec]# cat show_http

#!/bin/bash

OID='.1.3.6.1.4.1.2021.51.101.1'

IPADDRESS=$2

COMMUNITY=$1

if [[ -z $IPADDRESS ]] || [[ -z $COMMUNITY ]]then

echo "Mabe ... ...Usage: show_http <COMMUNITY><IPADDRESS>"

exit 4

fi

counts=`snmpwalk -v 1 -c $COMMUNITY $IPADDRESS $OID 2>/dev/null | awk -F'"' '{print $2}'`

if [ -z $counts ]then

echo "Mabe snmpd is down OR ipaddress error OR community fault."

exit 4

fi

if [ $counts -ge 200 ]then

echo "Cirtical - connection - $counts"

exit 2

elif [ $counts -ge 100 ]then

echo "Warning - connection - $counts"

exit 1

else

echo "OK - connection - $counts"

exit 0

fi

3、最nagios进行一些配置:

define command{

command_namecheck-host-alive

command_line$USER1$/show_http nagios $HOSTADDRESS$ #添加一条命令,参数是团体名和主机地址,团体名,我直接用了nagios。为了可扩展性的考虑,大家也可以使用resources文件来定义。这里不再复述。

}

使用 bcc 工具观测 MySQL:1)dbstat功能:将 MySQL/PostgreSQL 的查询延迟汇总为直方图

语法:

dbstat [-h] [-v] [-p [PID [PID ...]]] [-m THRESHOLD] [-u] [-i INTERVAL]              {mysql,postgres}

选项:

{mysql,postgres}                           # 观测哪种数据库-h, --help                                 # 显示帮助然后退出-v, --verbose                              # 显示BPF程序-p [PID [PID ...]], --pid [PID [PID ...]]  # 要观测的进程号,空格分隔-m THRESHOLD, --threshold THRESHOLD        # 只统计查询延迟比此阈值高的-u, --microseconds                         # 以微秒为时间单位来显示延迟(默认单位:毫秒)-i INTERVAL, --interval INTERVAL           # 打印摘要的时间间隔(单位:秒)

示例:

# 使用 sysbench 在被观测数据库上执行 select[root@liuan tools]# dbstat mysql -p `pidof mysqld` -uTracing database queries for pids 3350 slower than 0 ms...^C[14:42:26]     query latency (us)

2)dbslower

功能:跟踪 MySQL/PostgreSQL 的查询时间高于阈值

语法:

dbslower [-h] [-v] [-p [PID [PID ...]]] [-x PATH] [-m THRESHOLD]                 {mysql,postgres}

参数:

{mysql,postgres}                           # 观测哪种数据库 -h, --help                                 # 显示帮助然后退出 -v, --verbose                              # 显示BPF程序 -p [PID [PID ...]], --pid [PID [PID ...]]  # 要观测的进程号,空格分隔 -m THRESHOLD, --threshold THRESHOLD        # 只统计查询延迟比此阈值高的 -x PATH, --exe PATH                        # 数据库二进制文件的位置

示例:

# 使用sysbench在被观测数据库上执行update_index [root@liuan tools]# dbslower mysql -p `pidof mysqld` -m 2 Tracing database queries for pids 3350 slower than 2 ms... TIME(s)        PID          MS QUERY 1.765087       3350      2.996 UPDATE sbtest1 SET k=k+1 WHERE id=963 3.187147       3350      2.069 UPDATE sbtest1 SET k=k+1 WHERE id=628 5.945987       3350      2.171 UPDATE sbtest1 SET k=k+1 WHERE id=325 7.771761       3350      3.853 UPDATE sbtest1 SET k=k+1 WHERE id=5955. 使用限制

bcc 基于 eBPF 开发(需要 Linux 3.15 及更高版本)。bcc 使用的大部分内容都需要 Linux 4.1 及更高版本。

"bcc.usdt.USDTException: failed to enable probe 'query__start'a possible cause can be that the probe requires a pid to enable" 需要 MySQL 具备 Dtrace tracepoint。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11648106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存