python-Django监控系统二次开发Nagios

1、Nagios安装

yum install -y nagios.i686

yum install -y nagios-plugins-all.i686

安装完后会在apache的配置文件目录下/etc/httpd/conf.d/产生一个外部的配置文件nagios.conf

service httpd start

service nagios start

default user nagiosadmin password nagiosadmin

2.配置文件生成器

Django前期的收集主机信息代码

在nagios上分组

vim gen.py

 1 #!/usr/bin/env python
 2
 3 import os
 4 import urllib,urllib2
 5 import json
 6
 7 CUR_DIR = os.path.dirname(__file__)
 8 CONF_DIR = os.path.join(os.path.abspath(CUR_DIR),‘hosts‘)
 9
10 HOST_TEMP="""define host{
11                 use             linux-server
12                 host_name       %(hostname)s
13                 alias           %(hostname)s
14                 address         %(ip)s
15                 }
16         """
17 HOSTGROUP_TEMP="""define hostgroup{
18         hostgroup_name  %(groupname)s
19         alias           %(groupname)s
20         members         %(members)s
21         }
22     """
23 def initDir():
24     if not os.path.exists(CONF_DIR):
25         os.mkdir(CONF_DIR)
26
27 def getData():
28     url = ‘http://192.168.1.120:8000/hostinfo/getjson/‘
29         req = urllib2.urlopen(url)
30         data = json.loads(req.read())
31     return data
32
33 def writeConf(f,data):
34         with open(f,‘w‘) as fd:
35                 fd.write(data)
36
37 def parseData(data):
38     host_conf = ‘‘
39     hostgroup_conf = ‘‘
40     for hg in data:
41         groupname = hg[‘groupname‘]
42         members = []
43         for h in hg[‘members‘]:
44             hostname = h[‘hostname‘]
45             members.append(hostname)
46             host_conf += HOST_TEMP % h
47         hostgroup_conf += HOSTGROUP_TEMP % {‘groupname‘:groupname, ‘members‘:‘,‘.join(members)}
48     fp_hostconf = os.path.join(CONF_DIR,‘hosts.cfg‘)
49     fp_hostgroupconf = os.path.join(CONF_DIR,‘hostgroup.cfg‘)
50     writeConf(fp_hostconf,host_conf)
51     writeConf(fp_hostgroupconf,hostgroup_conf)
52
53
54 if __name__ == ‘__main__‘:
55     initDir()
56     data = getData()
57     parseData(data)

gen.py

同步配置文件sync_gen.sh

 1 #!/bin/bash
 2
 3 cur=`dirname $0`
 4 cd $cur
 5 python gen.py
 6 md5=`find hosts/ -type f -exec md5sum {} \;|md5sum`
 7 cd /etc/nagios/conf.d
 8 conf_md5=`find hosts/ -type f -exec md5sum {} \;|md5sum`
 9 if [ "$md5" != "$conf_md5" ];then
10     cd -
11     cp -rp hosts/ /etc/nagios/conf.d
12     /etc/init.d/nagios restart
13 fi
时间: 2024-10-06 14:51:03

python-Django监控系统二次开发Nagios的相关文章

Zabbix监控系统二:配置邮件报警

在zabbix的使用中,最重要的一点就是完善的报警机制,作为监控平台,需要时刻关注机器和服务的运行状态,更重要的是发现故障之后需要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段.这样才能保证服务的稳定运行.报警的方式是多种多样的,微信.短信和邮件报警是我们比较常见的方式. 邮件报警的配置主要划分为一下几个步骤: 1.在zabbix服务端配置邮件发送脚本和修改zabbix服务端配置文件; 2.在zabbix前端控制台进行相关设置: 实验环境 Zabbix监控服务器.客户端都已经部署完成,

开源监控系统中 Zabbix 和 Nagios 哪个更好?

监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k):Nagios进行二次开发超大规模(服务器>=10k):开发适应自己平台的监控软件吧另推荐个牛逼的东西:http://prometheus.io 作者:好撑链接:https://www.zhihu.com/question/19973178/answer/131911060来源:知乎著作权归作者所有.

电商系统二次开发---经验之谈

本文简单介绍了在电商行业,开发企业自有系统,要处理的一些问题与开发工作经验的一些总结.开发的时候,考虑到了这些问题,开发将会更加顺畅,开发出来的软件将更有生命力. 充分利用原有系统功能,把工作量降低到最小 公司的系统是是正在运行中的系统,做二次开发的时候往往是在原有的一些基础功能上升级,这就要求不能破坏原有的功能逻辑,又要利用好先有的功能,因为要实现某些功能的时候,可能有的功能已经有了.例如,电商平台需要做一个充值的功能,系统原本就有支付功能,礼券功能,那我们能否可以考虑把两个功能综合起来改造一

Ecshop系统二次开发教程及流程演示

来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecshop模板自带有很多Ecshop的Logo和版权信息,和一些其他需要修改的地方,所以我们需要对Ecshop系统做二次开发,下面就来看看具体操作步骤吧 一.Ecshop简介: ECShop是Comsenz公司推出的一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店.系统是基于PHP语言及MYSQ

庖丁解牛之监控系统(二)

欢迎大家加入运维开发讨论交流群来交流,群号 365534424 关于扩展性的定义 可伸缩性(可扩展性)是一种对软件系统计算处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展成长过程中,软件能够保证旺盛的生命力,通过很少的改动甚至只是硬件设备的添置,就能实现整个系统处理能力的线性增长,实现高吞吐量和低延迟高性能. 可伸缩性和纯粹性能调优有本质区别, 可伸缩性是高性能.低成本和可维护性等诸多因素的综合考量和平衡,可伸缩性讲究平滑线性的性能提升,更侧重于系统的水平伸缩,通过廉价的服务器实现分布式

用Python+Django在Eclipse环境下开发web网站【转】

一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置.Django详细选项设置和应用 特性配置,具体操作步骤如下所示. 1.新建Django项目选择sqlite数据库 2.创建网站模块app 3.测试新建的模块是否正常 Validating models... 0 errors found March 12, 2014 - 10:26:53 Django version 1

大数据系统之监控系统(二)Flume的扩展

一些需求是原生Flume无法满足的,因此,基于开源的Flume我们增加了许多功能. EventDeserializer的缺陷 Flume的每一个source对应的deserializer必须实现接口EventDeserializer,该接口定义了readEvent/readEvents方法从各种日志源读取Event. flume主要支持两种反序列化器: (1)AvroEventDeserializer:解析Avro容器文件的反序列化器.对Avro文件的每条记录生成一个flume Event,并将

Python日志监控系统处理日志(pyinotify)

前言 最近项目中遇到一个用于监控日志文件的Python包pyinotify,结合自己的项目经验和网上的一些资料总结一下,总的原理是利用pyinotify模块监控日志文件夹,当日志到来的情况下,触发相应的函数进行处理,处理完毕后删除日志文件的过程,下面就着重介绍下pyinotify pyinotify Pyinotify是一个Python模块,用来监测文件系统的变化. Pyinotify依赖于Linux内核的功能—inotify(内核2.6.13合并). inotify的是一个事件驱动的通知器,其

Epicor系统二次开发

一.获取或修改界面EpiDataView的字段数据(Get EpiDataView data) C# EpiDataView edv = (EpiDataView)oTrans.EpiDataViews["ViewName"]; if(edv.dataView.Count > 0) { string someValue = (string)edv.dataView[edv.Row]["FieldName"]; edv.dataView[edv.Row][&qu