免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2555 | 回复: 3
打印 上一主题 下一主题

[系统管理] shell调用python脚本出现的问题 [复制链接]

论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-12-22 11:09 |只看该作者 |倒序浏览
本帖最后由 274920831 于 2017-12-22 11:11 编辑

环境:
将亚马迅云上的cloudwatch的监控信息传给zabbix Server,使用网络上的这个插件:
https://github.com/omni-lchen/zabbix-cloudwatch

当我按照上面的步骤把配置文件弄好后,使用插件中的这个脚本zabbixCloudWatch.py,即可将cloudwatch的数据发送到zabbix server.
下面是这个执行这个脚本所需要带的options:

[root@redhat cloudwatch]# /usr/bin/python zabbixCloudWatch.py --help
Usage: zabbixCloudWatch.py [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -z ZABBIX, --zabbix=ZABBIX
                        zabbix server name
  -x HOST, --host=HOST  zabbix host name
  -a ACCOUNT, --account=ACCOUNT
                        account name
  -r REGION, --region=REGION
                        aws region
  -s SERVICE, --service=SERVICE
                        aws service (ELB, SQS, DynamoDB, etc...)
  -d DIMENSIONS, --dimensions=DIMENSIONS
                        Dimensions split with comma (LoadBalancerName=,
                        etc...)
  -p PERIOD, --period=PERIOD
                        Period
  -f STARTTIME, --starttime=STARTTIME
                        Start Time
  -t ENDTIME, --endtime=ENDTIME
                        End Time

我先来解释一下:
-z 是zabbix server
-x  是被监控的服务器
-a 是在AWS云上建的一个帐户,赋予它一定的权限
-r 是指的云服务器所在的地理区域,像中国北京,就是cn-north-1
-s  是指的AWS上的服务,像EC2,RDS,ELB之类的
-d  是指的维度,AWS上的每个服务都有自己特定的维度
-p  是指的时间区域
-f   从什么时间
-t   到什么时间

当我直接执行下面的py脚本时,数据会把AWS云上的EC2主机的cloudwatch信息发送到zabbix server :

[root@redhat cloudwatch]# /usr/bin/python zabbixCloudWatch.py -x "54.212.211.137" -z "superman-zabbix.man-webplatform.com" -a "CloudWatch-test" -r "cn-north-1" -s "EC2" -d "InstanceId=i-0d3138e5be40eft01" -p "300" -f "2017-12-22 01:40:00" -t "2017-12-22 01:45:00"

如图1所示,是有数据的图

而当我使用shell脚本 AWSINSTANCE.sh 来调用这个python脚本时,shell脚本的内容如下所示:
#!/bin/bash

# Date:   08/08/2015
# Author: Long Chen
# Description: A script to bulk send RDS cloudwatch data to zabbix server

PATH=$PATH:/opt/zabbix/cloudwatch
export PATH

# EC2 instance indentifier
ID=$1
echo "$ID"
# Zabbix Host
ZABBIX_HOST=$2
echo "$ZABBIX_HOST"
# Zabbix Server
ZABBIX_SERVER=$3
echo "$ZABBIX_SERVER"
# AWS Account
ACCOUNT=$4
echo "$ACCOUNT"
# AWS Region
REGION=$5
echo "$REGION"
# Collecting 5-minute data from cloudwatch
PERIOD="300"
# Set start time and end time for collecting cloudwatch data
ENDTIME=$(date -u "+%F %H:%M:00")
STARTTIME=$(date -u "+%F %H:%M:00" -d "5 minutes ago")

# Send cloudwatch data of a table to Zabbix Server

/usr/bin/python /opt/zabbix/cloudwatch/zabbixCloudWatch.py -z "$ZABBIX_SERVER" -x "$ZABBIX_HOST" -a "$ACCOUNT" -r "$REGION" -s "EC2" -d "InstanceId=$ID" -p "$PERIOD" -f "$STARTTIME" -t "$ENDTIME


当我执行AWSINSTANCE.sh脚本带上这些参数时:
[root@redhat cron.d]# ./AWSINSTANCE.sh "i-0d3138e5be40eft01" "54.212.211.137" "superman-zabbix.man-webplatform.com" "CloudWatch-test" "cn-north-1"  &>/dev/null

我对上面这个命令执行了20次,有16次是cloudwatch的信息无法传到zabbix-server,有4次是cloudwatch的信息传到zabbix-server。

我想问一下,是上面shell脚本有误吗?

上面的脚本实际上起到的作用就是把这个脚本后面跟的这些参数传到python脚本里面去,如果有误的话,应该如何来修改?

zabbix-server.png (26.68 KB, 下载次数: 20)

有数据的图

有数据的图

论坛徽章:
0
2 [报告]
发表于 2017-12-22 13:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2017-12-30 12:32 |只看该作者
回复 1# 274920831

只要有一次成功了,就说明脚本本身问题不大。

主要要查看一下脚本运行的环境和运行的情况。
比如是不是运行的过于频繁,或者运行时网络是不是通畅等等。

如果你不放心,可以把脚本每次执行的情况打一个日志,这样便于后面分析问题。


论坛徽章:
5
程序设计版块每日发帖之星
日期:2016-04-15 06:20:00每日论坛发贴之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之八一
日期:2016-07-08 09:20:28操作系统版块每日发帖之星
日期:2016-08-03 06:20:002016科比退役纪念章
日期:2016-10-30 13:59:12
4 [报告]
发表于 2017-12-31 20:24 |只看该作者
回复 3# q1208c

谢谢啊,已经正常了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP