分享

运维自动化之使用PHP MYSQL SHELL打造私有监控系统(二

 昵称33441514 2016-05-20
续:运维自动化之使用PHP MYSQL SHELL打造私有监控系统(一)
http://blog.sina.cn/dpool/blog/s/blog_61c07ac50101adda.html?vt=4
现在开始介绍php mysql shell监控系统 1、目的
此监控系统主要是通过php mysql shell的方式,通过shell脚本对各个机器的其各个服务进行监控,达到及时的了解其各个应用服务的状态(如果宕掉与启动),在检测应用服务宕掉时,记录在日志里与mysql数据库服务器里,同时进行服务宕掉的邮件提示,并自动启动宕掉的应用服务;在检测应该服务启动时,同时进行服务启动的邮件提示,所有的监控内容都能在php制作的web里进行浏览,同时能根据mysql里的数据,把资源监控数据视图化,在浏览数据的时候,更方便。
2、实现的机制
监控方式主要是通过shell脚本的实现,针对应用服务运行的端口进行监控,如果其端口开启,则证明此服务运行,反之则此服务没有运行。
3、监控的应用服务
监控的应用服务有:
A、应用服务器的服务监控
web:http、yu_tomcat、tomcat 共3个
交换: pas、ppas、mas、mmas、cas共5个
引擎:memcache、datastorageservice、http、dbstatserver共4个
B:应用服务器的资源监控
硬盘使用率、cpu使用率、硬件启动信息错误、i/o使用率、15分钟内的负载、内存使用率(包括内存与swap)、日志错误信息、当前用户登录数
4、已经监控的省份
目前天津、广西、贵州、海南、河北、河南、湖北、湖南、宁夏、陕西、青海、西藏、新疆、包头、甘肃、江西都已经部署完成,经过3个月的测试,没有发现问题。
5、shell监控脚本内容与解释
(1)web服务器(以甘肃web为例)
#!/bin/bash
#ip web_ip=$(/sbin/ifconfig eth0|grep 'inet addr'|cut -d : -f 2|awk '{print $1}')
##eth0网卡的ip #name web_name=$(hostname)
##web主机名 monitor_name=web ##监控的服务器是什么类型 here='gansu' ##监控的省份 #mysql info mysql_ip='1.1.1.1' ##数据库的ip mysql_username='root' ##数据库的用户 mysql_passwd='****' #数据库的密码 mysql_database='monitor' ##选择的数据库 memory_table=''$here'_memory' load_table=''$here'_load' io_table=''$here'_io' hardware_table=''$here'_hardware' message_table=''$here'_message' user_table=''$here'_user' disk_table=''$here'_disk' cpu_table=''$here'_cpu' service_table=''$here'_service' ##想数据库里写入的表 #date and log day='$(date %Y%m%d)' worklog='/usr/local/monitor/logs/all_work_log' downlog='/usr/local/monitor/logs/all_down_log' ##日志与实际 now='$(date %Y-%m-%d-%T)' #web service tomcat='$(netstat -antl|grep 8080|wc -l)' web_http='$(ps -ef|grep httpd|grep -v grep|wc -l)' yz_tomcat='$(netstat -antl|grep 8081|wc -l)' ##通过端口与服务在后头的运行情况监控其运行状态 #cpu service alert_cpu='80' ##cpu的报警阀值 web_cpu_idle='$(top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d .)' web_cpu='$(echo 100 - $web_cpu_idle|/usr/bin/bc)' ##监控cpu的使用率 #memory service alert_mem='100' ##内存的报警阀值 web_mem='$(/usr/bin/free -m|grep Mem|awk '{print $4}')' web_swap='$(/usr/bin/free -m|grep Swap|awk '{print $3}')' ##memory与swap的使用率 alert_swap='0' ##swap的报警阀值 #memory log memory_worklog='/usr/local/monitor/logs/mem_work_log' memory_downlog='/usr/local/monitor/logs/mem_down_log' #load service cpu_count='$(grep -c 'model name' /proc/cpuinfo)' alert_load='$(echo $cpu_count/2|/usr/bin/bc)' web_load='$(uptime|awk '{print $NF}'|cut -f 1 -d .)' web_load_15='$(uptime|awk '{print $NF}')' #监控负载的使用率 #load log load_worklog='/usr/local/monitor/logs/load_work_log' load_downlog='/usr/local/monitor/logs/load_down_log' #io service alert_io='80' web_io_idle_back='$(/usr/bin/iostat|awk 'NR==4{print $NF}'|cut -f 1 -d .)' web_io_idle='$(echo 100 - $web_io_idle_back|/usr/bin/bc)' ##io的使用值 #io log io_worklog='/usr/local/monitor/logs/io_work_log' io_downlog='/usr/local/monitor/logs/io_down_log' #hardware service web_hardware_error='$(dmesg|grep -i error|wc -l)' web_info_error='$(dmesg|grep -i error)' ##开机启动的错误信息 未完待续:运维自动化之使用PHP MYSQL SHELL打造私有监控系统(二-2)
http://blog.sina.cn/dpool/blog/s/blog_61c07ac50101adyj.html?vt=4

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多