小Q:如果你浪费了自己的年龄,那是挺可悲的。因为你的青春只能持续一点儿
时间——很短的一点儿时间。 —— 王尔德
======================================================================
在工作中,一些安装程序的脚本可以实现自动化,大大方便我们;但更重要的是我们得先
保证我们服务器运转正常,有些需要的监控服务也许第三方没有给出来,或者我们需要监
控一些特别的服务,所以自己写监控脚本是必须掌握的;
对于个人来说:我较喜欢nagios的添加服务方式和zabbix的监控界面和操作;
简单举例他俩添加自定义监控脚本的方式,让我们了解这过程。
附加一篇mysql数据备份脚本。
---------------------------------自定义nagios监控脚本-----------------
条件:两台服务器.安装nagios,和一些前期的配置,具体操作见下:
http://beibing.blog.51cto.com/10693373/1702654
需求:我们磁盘有很多分区,我们需要时常查看他的使用量,当他块被写满的时候,需要
清理一下,但我们不想天天输命令查看,实现他快满的时候,在监控中提示我们;
扩展:快要满的时候给我们发邮件提醒;
client端:192.168.0.12
vim /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1 改为 allowed_hosts=127.0.0.1,192.168.0.11
dont_blame_nrpe=0 改为 dont_blame_nrpe=1
vim /usr/local/nagios/libexec/check_disk.sh #脚本存放的位置
修改权限:chmod +x /usr/lib/nagios/plugins/check_disk.sh
vim /etc/nagios/nrpe.cfg #服务端调用文件中的check_disk
command[check_disk]=/usr/lib/nagios/plugins/check_disk.sh
重启:/etc/init.d/nrpe restart
service端:192.168.0.11
检 测 : check_nrpe -H 192.168.0.12 -c check_disk
正常的话,会输出一行磁盘检测的数据;否则需要去排错了
添加服务:vim /etc/nagios/conf.d/192.168.0.12.cfg
vim /etc/nagios/objects/commands.cfg
检测:nagios -v /etc/nagios/nagios.cfg
重启:/etc/init.d/nagios restart(客户service nrpe restart 服务service nagios restart)
当然了,http或者nginx也都要重启一个,否则根本连接不上啊;然后就可以登陆nagios
网站进行监控了,192.168.0.11/nagios查看;
自定义监控脚本方式大同小异,写好脚本,顺着这种方式套,应该没问题;而关于扩展的
问题,去参考上面给的衔接,理解之后就知道怎么调用了;
-----------------------自定义zabbix监控脚本------------------
条件:仍旧是前期的一些准备安装啦.连接了....去看看下面的文章吧
http://beibing.blog.51cto.com/10693373/1702665
需求:带三方软件没有提供监控网卡平均流量,我们需要去做一个网卡的实时监控,输出
进网卡和出网卡的平均字节数;
扩展:实现多个网卡的进出数据包的选择
Client:
安装完成---各种服务开启----配置通信----检测成功----浏览器正常使用后----继续
vim /etc/zabbix/zabbix_agentd.conf
改动:UnsafeUserParameters=1
UserParameter=my.net.if[*](英文方括号)/usr/local/sbin/zabbix/net.sh $1 $2
UserParameter用来自定义键值,即我们要在监控软件添加用的key;因为我们写的
脚本有参数表达,所以加了[*]和$1 $2,否则是不需要的
vim /usr/local/sbin/zabbix/net.sh #编写的脚本
在脚本执行前,需要先做一个操作,搭建临时文件,给个数值:
touch /tmp/net[io].log
date +%s >>/tmp/neti.log
grep eth0 /proc/net/dev |awk '{print $2}' >>/tmp/neti.log
date +%s >>/tmp/neto.log
grep eth0 /proc/net/dev |awk '{print $10}' >>/tmp/neto.log
chown zabbix /tmp/net[io].log
service端:
检测:zabbix_get -s 192.168.0.12 -p10050 -k "my.net.if[eth0,out]"
返回一个数值的话就说明没问题;
没问题就可以进监控界面添加服务了,浏览器:192.168.0.11/zabbix
组态 --> 主机 --> 项目 --> 创建监控项
名称 “网卡流量出” #自定义
类型默认“zabbix代理”
键值 "my.net.if[eth0,out]" / my.net.if[eth0,in]
数据更新间隔 60
存档 #此时就可以进行监控了,可以看到折线图出现
-------------------------------------mysql数据备份--------------------
1. 最简单的
2. 稍微复杂的
3. innodb引擎,超大数据库备份
执行脚本: