Zabbix lld发现web状态监控
Zabbix3.0入门到生产环境应用实战:http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1
一、软件版本
操作系统:CentOS-6.5-x86_64
zabbix版本:3.0.3
二、脚本参考:
1、python版本:
#!/usr/bin/env python
#coding:utf-8
import os,sys,json
#将要监控的web站点url添加到urllist列表
urllist=['www.baidu.com','www.hao123.com']
#这个函数主要是构造出一个特定格式的字典,用于zabbix
def web_site_discovery():
web_list=[]
web_dict={"data":None}
for url in urllist:
url_dict={}
url_dict["{#SITENAME}"]=url
web_list.append(url_dict)
web_dict["data"]=web_list
jsonStr = json.dumps(web_dict, sort_keys=True, indent=4)
return jsonStr
#这个函数用于测试站点返回的状态码,注意在cmd命令中如果有%{}这种字符要使用占位符代替,否则
#会报错
def web_site_code():
cmd='curl -o /dev/null -s -w %s %s' %("%{http_code}",sys.argv[2])
reply_code=os.popen(cmd).readlines()[0]
return reply_code
if __name__ == "__main__":
try:
if sys.argv[1] == "web_site_discovery":
print web_site_discovery()
elif sys.argv[1] == "web_site_code":
print web_site_code()
else:
print "Pls sys.argv[0] web_site_discovery | web_site_code[URL]"
except Exception as msg:
print msg
2、shell的脚本方式:
#!/bin/bash
# Script to fetch nginx statuses for tribily monitoring systems
web=('www.baidu.com' 'www.hao123.com’)
function webdiscovery(){
length=${#web[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#NAME}\":\"${web[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
}
function web_site_code()
{
/usr/bin/curl -I -m 10 -o /dev/null -s -w %{http_code} "$1"
}
$1 $2
3、zabbix_agent 定义的key,以shell脚本为例:
[root@xiaoluo zabbix_agentd.conf.d]# cat web.conf
UserParameter=get_web,/usr/local/zabbix/script/web_discovery.sh webdiscovery
UserParameter=get_web_code[*],/usr/local/zabbix/script/web_discovery.sh web_site_code $1
4、测试key没问题之后,剩下的就是web ui的设置,具体可以参考自带的lld发现磁盘,或者查看视频
关注微信:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
zabbix实战--Zabbix lld发现web状态监控
视频资源:http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1 一、软件版本 操作系统:CentOS-6.5-x86_64 zabbix版本:3.0.3 二、脚本参考: 1、python版本: #!/usr/bin/env python #coding:utf-8 import os,sys,json #将要监控的web站点url添加到urllist列表 urllist=['www.baidu.com','www.hao123.com'] #这个函数主要是构造出一个特定格式的字典,用于zabbix def web_site_discovery(): web_list=[] web_dict={"data":None} for url in urllist: url_dict={} url_dict["{#SITENAME}"]=url web_list.append(url_dict) web_dict["data"]=web_list jsonStr = json.dumps(w...
- 下一篇
微服务架构下,如何实现分布式跟踪?
随着互联网技术的高速发展,各种创新技术、前沿概念如雨后春笋般层出不穷,云服务、云计算、大数据处理、大数据分析……,以往单应用的服务架构已经很难处理如山洪般增长的信息数据,随着分布式的普及、服务的快速增长与云计算技术的进步,微服务架构逐渐进入人们的实现,它也因其特有的优势而备受关注。 微服务架构的本质,是把整体的业务拆分成很多有特定明确功能的服务,通过很多分散的小服务之间的配合,去解决更大,更复杂的问题。对被拆分后的服务进行分类和管理,彼此之间使用统一的接口来进行交互。 微服务的特点决定了功能模块的部署是分布式的,以往在单应用环境下,所有的业务都在同一个服务器上,如果服务器出现错误和异常,我们只要盯住一个点,就可以快速定位和处理问题,但是在微服务的架构下,大部分功能模块都是单独部署运行的,彼此通过总线交互,都是无状态的服务,这种架构下,前后台的业务流会经过很多个微服务的处理和传递,我们难免会遇到这样的问题: 分散在各个服务器上的日志怎么处理? 如果业务流出现了错误和异常,如何定位是哪个点出的问题? 如何快速定位问题? 如何跟踪业务流的处理顺序和结果? 我们发现,以前在单应用下的日志监控很...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程