Chinaunix

标题: [分享] 关于系统监控脚本的一次实验(v2.3.1)-- 已更新 [打印本页]

作者: mxbao    时间: 2007-07-11 10:36
太高深了..我先留个记号,以后来学习,哈
作者: lazycat79    时间: 2007-07-11 11:19
太好了,先收着慢慢研究,谢谢。
作者: honckly    时间: 2007-07-11 13:21
感谢楼主,向楼主学习.
作者: 5iwww    时间: 2007-07-11 13:48
没看太明白  监控机和被监控机是靠什么协议传递监控数据的?
作者: ailms    时间: 2007-07-11 15:08
会楼上,是 ssh 。

当然你也可以在被监控机上开 snmp 服务,不过我的经验是还不如用 ssh ,snmp 一不是很安全,

二是大部分东西通过 shell 也可以取到,所以一向都是用 ssh 来返回数据的
作者: kevin.tan    时间: 2007-07-11 16:18
感觉真不是一般的强啊
作者: ccbc    时间: 2007-07-11 16:31
好强大啊, 很好用。
作者: hnzhanglei    时间: 2007-07-11 16:54
好像靠的是ssh,回头我测试一下看看
作者: hnzhanglei    时间: 2007-07-11 18:47
你的ssh 交互的用户名和密码都不用输?如果用密钥,那把每个需要监控机上的都复制过来?
作者: ailms    时间: 2007-07-11 23:06
我的 password phrase 上空的,自然就不需要输入 password phrase 了。

如果你觉得不安全,用 agent 也行。不过我的网没有接入 internet ,所以不考虑安全方面的东西
作者: ailms    时间: 2007-07-11 23:08
怎么没有人提一点意见或者建议的?俺觉得这个方式还是有应用方面的价值的
作者: ailms    时间: 2007-07-11 23:13
原帖由 hnzhanglei 于 2007-7-11 18:47 发表
你的ssh 交互的用户名和密码都不用输?如果用密钥,那把每个需要监控机上的都复制过来?


你搞错方向了,是把监控机的 pub key 拷贝到“被监控机”的 authorized_keys 文件中。

ps :ssh 的 key 认证方式不就是这样的吗?

snmp 协议我也用过,但只能查那些固定的东西,没有 mib 什么也干不了,所以干脆自己写 shell 脚本查询算了
作者: 杀无赦    时间: 2007-07-12 11:07
楼主最好将全部的实现脚本和具体配置方法打个包放上来,也方便大家下载后试试,同时功能增加输出结果到固定格式文件就更好了,还是先谢谢啦!
作者: ailms    时间: 2007-07-12 11:22
原帖由 杀无赦 于 2007-7-12 11:07 发表
楼主最好将全部的实现脚本和具体配置方法打个包放上来,也方便大家下载后试试,同时功能增加输出结果到固定格式文件就更好了,还是先谢谢啦!


ok,今晚再说。至于你说的那个功能,用 tee 也就可以了。
作者: 杀无赦    时间: 2007-07-12 11:27
谢谢楼主,我说的输出文件应该是表格化的类似一个系统监控登记簿似的,那样方便日常监控后打印输出保存,我是搞系统管理的,这样就省事多了,呵呵
作者: shdnzwy    时间: 2007-07-12 11:49
学习下……
作者: ailms    时间: 2007-07-12 12:06
原帖由 杀无赦 于 2007-7-12 11:27 发表
谢谢楼主,我说的输出文件应该是表格化的类似一个系统监控登记簿似的,那样方便日常监控后打印输出保存,我是搞系统管理的,这样就省事多了,呵呵



多谢你的意见,我会继续完善的。 ^_^
作者: incle    时间: 2007-07-12 20:09
main.sh 针对被临控端(IP),写反了吧
或者反过来说是, config里的IP写反?
贴一下结果:

[shell]# ./monitor_main.sh
----------------------------------------------------------------------------------------
Object : [ cpu ]                      DATE : 2007-07-12 19:59:47

Host                192.168.2.202192.168.2.226       root@192.168.2.226's password:
1.0       97.0      98.0                                   [ FAILURE ]
192.168.2.227       ssh: connect to host 192.168.2.227 port 22: Connection refused
192.168.2.228       root@192.168.2.228's password:
0.0       100.0     100.0                                  [ FAILURE ]
----------------------------------------------------------------------------------------
Object : [ mem ]                      DATE : 2007-07-12 19:59:53

Host                192.168.2.202192.168.2.226       root@192.168.2.226's password:
235.0     13.0      248.0                                  [ FAILURE ]
192.168.2.227       ssh: connect to host 192.168.2.227 port 22: Connection refused
192.168.2.228       root@192.168.2.228's password:
143.0     291.0     434.0                                  [ OK ]
----------------------------------------------------------------------------------------

感觉还不错,我想如果加以改进, 应该可以在有要求输入被控端密码时,在脚本里直接给密码.(用哪个命令可以实现了?)
作者: ailms    时间: 2007-07-12 20:32
原帖由 incle 于 2007-7-12 20:09 发表
main.sh 针对被临控端(IP),写反了吧
或者反过来说是, config里的IP写反?
贴一下结果:

[shell]# ./monitor_main.sh
--------------------------------------------------------------------------------- ...


这个问题考虑过,不过如果把 password phrase 放在配置文件中,是否又违反了 ssh 引入 password phrase 的初衷呢?

而且这方面应该可以通过 ssh-agent 完成吧。或者通过 sudo 实现吧,这个也不属于脚本的范围了。

p.s :日后考虑用 snmp + ssh 的方式。这样就可以在配置文件中选择使用那种方式,如果是 snmp 的话,就可以加入 community 了。

      多谢各位朋友提的意见。^_^


[ 本帖最后由 ailms 于 2007-7-12 20:36 编辑 ]
作者: alvis    时间: 2007-07-13 10:54
哈哈,越来越好了,给加个许可证协议,我好看是不是好也在我的主机上来使用你的脚本做监控
作者: ailms    时间: 2007-07-13 11:02
已添加 “restore” 功能,具体见首贴
作者: ailms    时间: 2007-07-13 11:13
原帖由 alvis 于 2007-7-13 10:54 发表
哈哈,越来越好了,给加个许可证协议,我好看是不是好也在我的主机上来使用你的脚本做监控




没有什么许可不许可的,想用就用

我只是想做一下交流而已,不过看来没有什么人有兴趣。
作者: ailms    时间: 2007-07-13 11:50
下一步考虑在 config 中增加 snmp 的支持,如果各位有好的建议,请多多指教 ^_^
作者: alvis    时间: 2007-07-13 12:05
那不成,没有许可协议,就好像买卖没有合同一样,是不安全的,

那么多许可呢,找一个,或这在每个文件的头上 声明个 License by

我挺有兴趣,实际上我现在有个监控,实际上就是 crontab 定时执行,对公司的各个服务器做检测,端口的联通性

想发展为 监控对象包括端口和协议,可以通过 LDAP 同步配置到各个监控端,

实际上当时作得目的是为了最终给 nagios 调用,后来改用直接短信通知值班运维了,也就一直没用做完

你这个脚本对我来说也是有用的,我现在查看个服务器当前状态,还是手工一个指令一个指令的做,而且,我的脚本没什么好的架构,自己明白别人不一定好明白,如果你的模块配置方便我添加我的脚本你的一个模块,也就说不准拿你的脚本做架构了

对了,我的监控脚本有 perl 的,有 php

[ 本帖最后由 alvis 于 2007-7-13 12:17 编辑 ]
作者: ailms    时间: 2007-07-13 12:09
说实话,俺不知道什么 GPL 之类的详细细节,就知道“共享”一词

有空看一下 GPL 到底是什么东东

[ 本帖最后由 ailms 于 2007-7-13 12:11 编辑 ]
作者: coldrainsunc    时间: 2007-07-13 17:36
iostat
vmstat
procinfo
free
netstat
获得输出,用perl进行解析也许会更简单些吧

[ 本帖最后由 coldrainsunc 于 2007-7-13 17:48 编辑 ]
作者: ailms    时间: 2007-07-13 17:45
都可以,不过我不会perl ,所以只能选择 bash
作者: coldrainsunc    时间: 2007-07-13 17:53
写的挺好的!
alvis的方法挺好,使用crontab在被监控机上执行进程收集解析系统信息(包括记录提取信息时的时间),用户定制脚本打印信息!

[ 本帖最后由 coldrainsunc 于 2007-7-13 17:56 编辑 ]
作者: alvis    时间: 2007-07-13 18:19
嗯,我当初脚本是为了向 nagios 和 mrtg 靠,而 LZ 的项目正好能解决我的本地输出
作者: ailms    时间: 2007-07-14 12:16
增加了两个功能 :

1、支持 snmp 协议

2、允许使用文件来指定 ip 地址列表,这样就不用在 config 中出现一大堆的 ip 或者主机名了
作者: ailms    时间: 2007-07-14 20:58
下一步想增加的功能是 :

1)配置文件的语法检查

2)--add 功能

3)--daemon 功能

还有前面朋友提到的保存功能

期待更多朋友的宝贵意见
作者: athlandly    时间: 2007-07-15 12:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: ailms    时间: 2007-07-15 15:04
刚才发现也下不了,已经重新上传了
作者: 杀无赦    时间: 2007-07-16 10:58
太感谢了,希望越来越好!
作者: zhaoyingfei    时间: 2007-07-16 11:51
有时间研究研究
作者: s49929733    时间: 2007-07-16 14:02
很想研究,但是就是没弄到那么深奥的地方呢
作者: czyf2001    时间: 2007-07-16 14:50
非常好!
我原来的系统只是收集远端的信息,在server端进行分析,也是crontab实现的!
学习借签lz的经验!
作者: ailms    时间: 2007-07-16 14:50
check 功能(支持 SNMP)






list 功能



status 功能



del 功能


作者: ailms    时间: 2007-07-16 14:51
enable 功能





restore 功能


save 功能



dul 功能


作者: ailms    时间: 2007-07-16 14:52
版本已更新

1)增加语法检查功能

2)完成了 add()功能,允许交互式的增加配置条目,并在通过语法检查后插入到配置文件中,否则不修改配置文件

3)修改了部分函数的实现过程。
作者: ailms    时间: 2007-07-16 15:31
想到了下一个功能 :在监控机上写好监测脚本,然后通过 --upload()上传到指定的主机上

还有什么功能没有想到呢?大家多提意见啊!  
作者: aigame    时间: 2007-07-17 20:33

作者: itxiaofei    时间: 2007-07-18 11:20
支持
作者: 杀无赦    时间: 2007-07-19 08:57
顶起来。。。。。。。
作者: justinyun    时间: 2007-07-19 10:26
值得参考!!楼主很勤快!
作者: 杀无赦    时间: 2007-07-24 08:21
好久没有再更新了,期待中,,,
作者: am_h@tom.com    时间: 2007-07-25 17:09
楼主是个强人。。。。。。。
作者: shdnzwy    时间: 2007-07-25 17:55
呵呵.楼主厉害,我们需要大天使
作者: ailms    时间: 2007-07-25 18:41
原帖由 杀无赦 于 2007-7-24 08:21 发表
好久没有再更新了,期待中,,,


不好意思,最近有别的学习任务,所以近期内不会再做任何更新了
作者: chenjienju    时间: 2007-07-25 22:08
:P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P
作者: dayan_he    时间: 2007-08-08 15:25
谢谢 LZ

download下来,学习......
作者: doking2008    时间: 2007-08-08 16:08
真是好东西啊,我找了好久,自己不会编,找个好的不容易。
./get_cpu.sh
这个脚本比起sar命令快上n倍
作者: aaronyou    时间: 2007-08-08 17:02
不错。支持一下
作者: skyfreebird    时间: 2007-08-09 10:24
不错。。。挺强的。。。
作者: afmzh    时间: 2007-08-09 11:38
不懂
作者: ly_cyz    时间: 2007-08-09 12:13
好贴!
谢谢LZ!
顶!
作者: jybjsrg    时间: 2007-08-10 08:56
以后再来看看,先B个
作者: qintel    时间: 2007-08-11 15:23
强,比我的脚本强多了。我最近也用到系统监控,我用wget抓web page,抓不到调用播放器声音告警,如果能抓到就马上把告警声音kill掉。所以不需要在server上运行监控程序,只在client端运行即可,所以功能有限。。。

wget 的connect-timeout和read-timeout,时间要设置好,还有--spider选项也非常有利用价值。

[ 本帖最后由 qintel 于 2007-8-18 19:22 编辑 ]
作者: wakinhui    时间: 2007-08-12 21:32
学习了。l  留名先。
作者: sailboy    时间: 2007-08-14 09:43
标题:
实在是牛,牛
作者: david123    时间: 2007-08-14 11:32
不得不顶                   实在是好
作者: shinux    时间: 2007-08-15 23:09
向LZ学习,牛!
作者: joinbaijun    时间: 2007-08-16 16:15
把脚本down下来看看
作者: aple_smx    时间: 2007-08-18 10:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: tinging    时间: 2007-08-19 22:58
还没看清,日后再看!
作者: kingnetwork    时间: 2007-08-22 23:01
不是很难实现,其实如果你能够深入、广泛了解Linux系统的基础知识,再加上有些shell的经验,这些都是小菜
作者: sshnuke    时间: 2007-08-24 17:43
原帖由 qintel 于 2007-8-11 15:23 发表
强,比我的脚本强多了。我最近也用到系统监控,我用wget抓web page,抓不到调用播放器声音告警,如果能抓到就马上把告警声音kill掉。所以不需要在server上运行监控程序,只在client端运行即可,所以功能有限。。 ...


我比較土
沒有用聲卡
就打到網頁上顯示出來
或者發到短信網關去發短信了
不過1條一毛錢呢
有一次網絡故障浪費了好多錢啊
作者: cool_sky    时间: 2007-08-24 23:35
高深!我下下来慢慢看。
作者: afmzh    时间: 2007-09-04 15:26
标题: 回复 #1 ailms 的帖子
现在看不懂,回头来学习吧!
作者: luo118    时间: 2007-09-04 15:37
顶上,好东西
作者: teaker    时间: 2011-03-16 10:09
实施看
作者: nlrqcu    时间: 2011-04-04 12:27

作者: toyou234    时间: 2011-10-14 16:55
顶下
留下以后研究,新手,还不懂呀
作者: malink    时间: 2011-10-15 11:18
谢谢分享你的经验




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2