自定义监控(阿里云&zabbix)

自定义监控(阿里云&zabbix)

目前阿里云对25端口有限制,无法在阿里云上搭建邮件服务器发送告警邮件,如果需要邮件通知,可以采取下面方法:

1.开同阿里云企业邮箱

2.使用阿里云监控告警

3.第三方zabbix自定义脚本监控

一、阿里云自定义监控

阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置。

阿里提供了2个版本的自定义监控接口:

自定义监控SDK(python版) :cms_post.py

自定义监控SDK(bash版) :cms_post.sh

下载地址: http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901

使用shell版本做演示

监控mysql主从状态:

1.创建自定义监控项

脚本post方法说明

1.命名空间中的字符串,用户aliuid

2.监控项名称,用户创建监控项时填写的名称

3.监控项值,用户上报到云监控的业务数据

4.字段信息,结合监控项,表示具体业务字段意义。

mysql主从监控脚本
cat mysql_check.sh
#!/bin/bash 
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export HOSTS=$(hostname)
mysql_user=‘root‘
mysql_pass=‘123.com‘
mail="[email protected]"
data=$(date +%Y-%m-%d-%H:%M)
netstat -lntup|egrep ":3306"|grep -v grep>/dev/null0
if [ $? -eq 0 ];then
Slave_IO=`mysql -u${mysql_user} -p${mysql_pass} -e "show slave status\G"|grep "Slave_IO_Running:"|awk -F": " ‘{print $2}‘`
Slave_SQL=`mysql -u${mysql_user} -p${mysql_pass} -e "show slave status\G"|grep "Slave_SQL_Running:"|awk -F": " ‘{print $2}‘`
if [ "$Slave_IO" == "Yes" ] && [ "$Slave_SQL" == "Yes" ];then
STAT=1 && echo "$data mysql-status is ok">>/var/log/mysql-status.log
else
STAT=0 && echo "$data mysql-status is error">>/var/log/mysql-status.log
fi
else
STAT=0 && echo "$data mysql-status is error">>/var/log/mysql-status.log
fi
/scripts/cms_post.sh 1931875513165389 mysql_status $STAT status=$HOSTS
制作定时任务,没分钟调用check脚本来上数据

cms_post.sh 阿里云上报脚本
#!/bin/bash
#########################################
#Usage:       sh cms_post.sh
#Author:      CMS Dev Team
#Company:     Aliyun Inc.
#Version:     1.0
#########################################
#parameters instructions
# $1: ali_uid, $2: metric_name, $3: metric_value, $4:fields
#convert current time to milliseconds
if [[ ! "$#" -eq 4 ]];then
echo "usage: $0 userId, metricName, value, dimensions"
echo "--multiple dimensions like ‘ip=111.111.111.111,hostname=cms‘"
exit 1
fi
#biz time
timestamp=`date +%s%N | cut -b1-13`
#build dimensions json
arr=(${4//,/ })
dimensions="{"
for i in "${arr[@]}"; do
kv=(${i//=/ })
    dimensions=${dimensions}‘"‘${kv[0]}‘":"‘${kv[1]}‘",‘
done
dimensions=${dimensions%,*}
dimensions=${dimensions}‘}‘
#build namespace and metrics
userId="$1"
namespace="acs/custom/$1"
metrics=‘[{"metricName":"‘"$2"‘","value":‘"$3"‘,"unit":"None","timestamp":‘"$timestamp"‘,"dimensions":‘"$dimensions"‘}]‘
url="http://openNaNs.aliyun.com/metrics/put"
params="userId=$userId&namespace=$namespace&metrics=$metrics"
echo "params: ${params}"
curl -v ${url} --data ${params}

添加完成监控后,监控图表如下:

告警配置

Status填写变量HOSTNAME 统计周期填写告警触发间隔

二、Zabbix监控方式

在被监控服务器上需要先安装zabbix-sender 来给zabbix-server提交发送数据

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum install zabbix-sender -y
#!/bin/bash
mysql_user=‘root‘
mysql_pass=‘123.com‘
mail="[email protected]"
data=$(date +%Y-%m-%d-%H:%M)
netstat -lntup|egrep ":3306"|grep -v grep>/dev/null0
if [ $? -eq 0 ];then
Slave_IO=`mysql -u${mysql_user} -p${mysql_pass} -e "show slave status\G"|grep "Slave_IO_Running:"|awk -F": " ‘{print $2}‘`
Slave_SQL=`mysql -u${mysql_user} -p${mysql_pass} -e "show slave status\G"|grep "Slave_SQL_Running:"|awk -F": " ‘{print $2}‘`
if [ "$Slave_IO" == "Yes" ] && [ "$Slave_SQL" == "Yes" ];then
STAT=1 && echo "$data mysql-status is ok">>/var/log/mysql-status.log
else
STAT=0 && echo "$data mysql-status is error">>/var/log/mysql-status.log
fi
else
STAT=0 && echo "$data mysql-status is error">>/var/log/mysql-status.log
fi
zabbix_sender -z 192.168.1.234 -s "test-mysql-status" -k mysql -o $STAT

-z zabbix-server的地址

-s 监控项目名称

-k  键值

监控项目

触发器

监控图表

自定义监控(阿里云&zabbix)

时间: 2024-10-06 09:39:34

自定义监控(阿里云&zabbix)的相关文章

zabbix 监控--阿里云主机 (client端)

Zabbix_Agent 配置(客户端) 1.基础环境准备 安装zabbix的yum源,使用阿里云 的 yum源 zabbix3.0 1.1.yum源配置 rpm -ihv  http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm 1.2.zabbix_agent安装配置 yum localinstall http://mirrors.aliyun.com/zabb

zabbix 监控--阿里云主机(Proxy分布式监控)

之前写了zabbix server.client端的配置,但这只能监控局域网内主机的所有状态,那如果是夸网段呢?比如阿里云上的主机如何监控,有人会说 你在阿里上在建立个zabbix不就可以了,我嫌麻烦,哈哈 今天就带大家一起陪尝试通过zabbix proxy代理的方式,进行分布式监控:  一.  zabbix proxy介绍: zabbix proxy 是一个数据收集器,它不计算触发器.不处理事件.不发送报警,只是检查并收集数据,将信息反馈给server端. zabbix proxy监控原理图

zabbix 监控阿里云RDS

本文是从网上筛选的一些技术前辈的文档,通过阿里云api的调用来获取rds的相关信息 声明: 以下操作我均是在zabbix-server主机上操作的 环境: 阿里云ecs(CentOS Linux release 7.5.1804 (Core) ) 安装准备: 首先需要安装 git和 python2.7 yum install git -y python由于系统自带的有  就不在安装 安装sdk模块 pip install aliyun-python-sdk-core==2.3.5 aliyun-

阿里云zabbix镜像从2.4源码升级至3.2.1版本

由于早期版本的zabbix暴出漏洞,因此,今天动手手动升级zabbix到3.2.1,过程还是比较曲折的: 首先,阿里云镜像中,lamp环境是源码安装的不同路径,而zabbix3.x对它们的版本有一定要求,必须是较新的版本.后经查阅阿里的文档,知道它们装在了/alidata/server/下,启动命令是自己制作的脚本,放在/etc/init.d下. 根据zabbix的安装文档,查阅了对mysql.php等的版本要求,基本符合. 找了些安装的文档,基本都是yum升级安装,不太适合用yum,于是手动下

zabbix 监控--阿里云主机 (server端)

公司一直没有监控,我觉得监控在运维中是至关重要的,常说的防范于未然即使如此,那么衡量一个监控好坏,也就是监控有效性,最终避免故障的发生,才是硬道理:结果导向 一.系统信息 [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.8 (Final) [[email protected] ~]# uname -r 2.6.32-642.el6.x86_64 二.软件版本 [[email protected] ~]# zabbi

我是怎么通过zabbix监控60台阿里云的RDS和redis数据库的

前言: 最近一直在做监控方面的东东,一些基本的东西基本到处都有资料也就不多说了.但是,让监控阿里云的数据库真是把我难住了.研究了许久的阿里云api,虽然代码写出来了,但是遇到一个坑,所以转换了思路,分别用redis和mysqladmin连接数据库,获取连接数和请求数,但是却获取不到实例的CPU使用率.又只好回头研究阿里云的api.花了几天终于踩完所有坑,达到自己想要的效果,具体实现过程如下: 正文: 主要添加了以下三条自定义key,第一条通过redis_cli客户端连接redis获取统计数据,第

阿里云自定义监控tomcat进程数

阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :cms_post.py自定义监控SDK(bash版) :cms_post.sh下载地址:http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901 本文使用shell版本做演示       这里说下我的简单需求,我们需要监控ECS服务

阿里云自定义监控-系统文件MD5校验

1.文件md5校验hashlib模块 hashlib.md5() 2.文件比对模块filecmp模块 filecmp.cmp('md5File', 'md5File_new'): ##文件一直返回True 不一致返回False 3.打开文件操作with open ..... as f: ##不用close关闭文件 4.格式化字符串输出tring = "%s %s\n" % (md5.hexdigest(),line.strip()) 脚本示例: #!/usr/bin/python #

阿里云自定义监控

自定义监控:对上面监控的补充,可以自定义相应的监控项,在服务器上执行相应的脚本采集数据,然后调用阿里云封装的JDK将数据上传,进行报警处理. 下载阿里云的JDK到服务器相应的目录下 http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974901 /usr/local/aegis/aegis_quartz/aegis_quartz/libexec/user 添加自定义的选项 报警规则: 这里要注意地段后填写的内容,这个是与上传的字段匹