如何用python编写collectd的maven plugin编写

sohocoder收集全网最新、最全项目(pythontip出品)
安装Collectd+Statsd + Graphite 监控openstack swift
安装必要软件包:
$ sudo apt-get install apache2 libapache2-mod-wsgi python-django \
python-twisted python-cairo python-pip python-django-tagging
用 pip 安装 whisper (简单的存放和操作数据的库), carbon (监控数据的 Twisted 守护进程) 和 graphite-web (Django webapp):
$ sudo pip install whisper
$ sudo pip install carbon
$ sudo pip install graphite-web
初始化配置,直接用 example 文件里的默认配置就可以:
$ cd /opt/graphite/conf/
$ sudo cp carbon.conf.example carbon.conf
$ sudo cp storage-schemas.conf.example storage-schemas.conf
$ sudo cp graphite.wsgi.example graphite.wsgi
修改 apache 配置,增加一个 vhost 或者偷懒下载一个配置文件覆盖 default,覆盖后需要重新 reload 配置:
$ wget http://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz
$ tar -zxvf graphite-web-0.9.9.tar.gz
$ cd graphite-web-0.9.9
$ sudo cp examples/example-graphite-vhost.conf /etc/apache2/sites-available/default
sockets 最好不要放在 /etc/httpd/ 下面(不同 Linux 发行版本对不同目录的权限问题很混淆人),ubuntu 版本可以放在 /var/run/apache2 下,所以修改 default 文件里的 WSGISocketPrefix 部分:
$ sudo vi /etc/apache2/sites-available/default
WSGISocketPrefix /var/run/apache2/wsgi
$ sudo /etc/init.d/apache2 reload
初始化 graphite 需要的数据库,修改 storage 的权限,用拷贝的方式创建 local_settings.py 文件:
$ cd /opt/graphite/webapp/graphite/
$ sudo python manage.py syncdb
$ sudo chown -R www-data:www-data /opt/graphite/storage/
$ sudo cp local_settings.py.example local_settings.py
$ sudo /etc/init.d/apache2 restart
启动 carbon:
$ cd /opt/graphite/
$ sudo ./bin/carbon-cache.py start
浏览器访问 IP 地址后就可以看到 graphite web 界面。
安装 collectd,创建一个 collectd.d 目录便于存放稍后会遇到的插件配置文件 graphite.conf,并在 collectd.conf 包含这个目录 :
$ sudo apt-get install collectd
$ sudo mkdir /etc/collectd/collectd.d
$ sudo vi /etc/collectd/collectd.conf
"/etc/collectd/collectd.d"
安装 git 并下载 collectd-carbon 插件:
$ sudo apt-get install git
$ sudo git clone /indygreg/collectd-carbon.git /opt/collectd-plugins
修改插件的配置文件的 ModulePath 部分,指向 carbon_writer.py 文件所在目录,并且修改 LineReceiverHost 部分:
$ sudo vi /etc/collectd/collectd.d/graphite.conf
&LoadPlugin "python"&
Globals true
&/LoadPlugin&
&Plugin "python"&
# carbon_writer.py is at path /opt/collectd-plugins/carbon_writer.py
ModulePath "/opt/collectd-plugins/"
Import "carbon_writer"
&Module "carbon_writer"&
LineReceiverHost "XX.XX.XX.XX" #graphite的IP或者主机名
LineReceiverPort 2003
DifferentiateCountersOverTime true
LowercaseMetricNames true
TypesDB "/usr/share/collectd/types.db"
修改好配置文件后重启服务:
$ sudo /etc/init.d/collectd restart
这个很简单
git clone git:///etsy/statsd.git
cp exampleConfig.js config.js 更改配置文件让它把数据发送给
graphitePort: 2003
, graphiteHost: "127.0.0.1"
, port: 8125
, backends: [ "./backends/graphite" ]
启动statsd服务:
nodejs stats.js config.js、
可以做个小测试:echo "anything.you.like:1|c" | nc -w 1 -u localhost 8125如果安装配置是正常的,在graphite的左侧将会看到statsd里多了anything-&you-&like的表。不过我不知道增加过后怎么删除它 ==#
原文链接:http://my.oschina.net/u/138210/blog/181149
阅读: 1614 |python 课程大纲范例_方锥吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:19贴子:
python 课程大纲范例
一Web前端开发技术必知必会 ·html5+css3·javascript初步·jquery入门·bootstarp入门·Ajax入门 Python web开发基础 ·python语言基础·mysql基础·django基础 Python web开发进阶 ·django进阶·项目实战·项目部署·django缓存优化 Python web开发拓展(选修) ·linux基础·flask入门·tornado入门 redis入门================================================================Python 基础介绍01Python 基础介绍01-2Python 第2讲if while for 循环python-第3讲_列表_元组Python 第4讲 python 字典使用Python 第5讲 python 文件处理与交互Python 第6讲 python 使用模块Python 第7讲 python 函数Python 第8讲 python 函数进阶Python 第9讲 python 面向对象的编程Python 第10讲 python 面向对象的编程进阶1Python 第11讲 python 面向对象的编程进阶2Python 第12讲 python 异常处理Python 第13讲 python 正则表达式的使用Python 第14讲 python 多线程并发Python 第15讲 python 多线程并发Python 第15讲 python socket网络模块Python 实战篇 编写自动FTP下载上传的脚本Python 实战篇 编写类似Nagios的监控程序1Python 实战篇 编写类似Nagios的监控程序2—编写监控客户端Python 实战篇 编写类似Nagios的监控程序3—编写监控主程序Python 实战篇 编写类似Nagios的监控程序4—通过socket模块实现主程序与客户端的通信Python 实战篇 编写类似Nagios的监控程序5—丰富和完善监控软件的功能1Python 实战篇 编写类似Nagios的监控程序5—丰富和完善监控软件的功能2Python 实战篇 编写类似Bacula的Linux备份软件1Python 实战篇 编写类似Bacula的Linux备份软件2—编写主程序1Python 实战篇 编写类似Bacula的Linux备份软件3—编写主程序2Python 实战篇 编写类似Bacula的Linux备份软件4—编写主程序3Python 实战篇 编写类似Bacula的Linux备份软件5—编写主程序4Python 实战篇 编写类似Bacula的Linux备份软件6—编写客户端1Python 实战篇 编写类似Bacula的Linux备份软件7—编写客户端2Python 实战篇 编写类似Bacula的Linux备份软件8—实现常规,增量,差异备份Python 实战篇 编写类似Bacula的Linux备份软件9—日志、报警等模块的实现Python 实战篇 编写TriAquae开源批量管理软件1Python 实战篇 编写TriAquae开源批量管理软件2—编写用户菜单Python 实战篇 编写TriAquae开源批量管理软件3—使用Paramiko模块实现与客户端的通信Python 实战篇 编写TriAquae开源批量管理软件4—实现密码登录,加密认证Python 实战篇 编写TriAquae开源批量管理软件5—实现多线程并发管理多台服务器Python 实战篇 编写TriAquae开源批量管理软件6—编写服务器性能分析模块Python 实战篇 编写TriAquae开源批量管理软件7—使用Django进行TriAquae WEB界面开发1Python 实战篇 编写TriAquae开源批量管理软件8—使用Django进行TriAquae WEB界面开发2Python 实战篇 编写TriAquae开源批量管理软件9—使用Django进行TriAquae WEB界面开发3=======================================================================Python运维开发课程系统运维的Python课程主要教授在日常的运维工作中如何应用Python来解决实际问题。本课程以实际的案例出发,通过编写 Python实用工具在解决问题的同时说明系统运维在处理问题时的解决思路。课程设置及目标课程设置:共分为两个阶段,第一阶段主要讲解如何使用Python,利用Python完成运维工作中常用的文件操作、系统监控、远程管理、日志分析以及应用部署等工作;第二阶段主要讲解利用Python构建一个自成体系的运维环境,更多注重Python与其他系统运维工具的结合。适合人群:Python初级人群、有志于从事运维工作以及各领域应用Python的人群第一阶段 Python运维开发基础本阶段面向在运维方向上具备一些工作经验, 但是在处理日常工作时对工具的运用又显得捉襟见肘的运维人员。阶段目标:通过本阶段学习,可以熟练的使用Python解决实际遇到的运维问题,并且形成针对运维问题的解决思路和方法。预备知识:了解或者掌握以下知识1) Linux系统管理知识
了解文件系统,文件类型;
了解进程,启动和结束,信号系统性能;
了解RPM包管理;
掌握SSH远程终端2) 了解MySQL数据库、了解Memcached课时安排:12天,内容覆盖系统文件、进程管理、监控、远程管理、应用部署等多个方面。1、系统文件的管理1)
实现python版的wc: Python对标准输入和输出的处理,经过几个版本的讲解再引入getopt和sys.argv的内容;2) 找出目录中重复的文件:通过os.path中的walk方法进行目录的递归,比较文件名找出相同的文件,了解md5等hash函数对文件的处理;3) 找出占用空间最大的文件:结合os.path.walk和、os.path.getsize,并且涉及python sort相关内容。2、进程的管理1) 查看一个进程的进程树了解父子进程,之间的关系、区别。使用python获得系统进程的相关状态。2) 监控一个进程的状态,并在其异常时重启该进程:了解一般监控进程的特点,并且了解对进程启动的一些注意点。3) 守护进程:学会使用os.fork,以及2次fork来创建守护进程,结合上一节内容做一个守护进程版本的进程监控程序。3、系统的监控1)监控CPU, 内存的信息:通过python得到系统的一些状态,同时了解这些状态所表示的意义。2)监控网络和磁盘IO:通过写一个监控网路流量的工具来了解网卡相关的事情,写一个程序可以计算磁盘的IOPS等等数据来说明磁盘的处理是否是系统的瓶颈。4、Python SSH远程管理主机1)通过python的ssh client连接远程主机并执行命令:引入python中的python处理模块,使得python可以对远程机器做批量的处理。2)使用更高级的library并行的操作主机:引入Fabric,使得Python可以同时并发的对多台机器进行处理,同时说明在对多台主机操作时的注意点,以及这些注意点的python解决办法。5、使用Python管理MySQL数据库1)根据需求创建一个MySQL实例:学习配置文件的模板处理,同时介绍Python中对MySQL进程的处理方法。2)检查MySQL的主辅同步情况,并对个别情况进行处理:通过一个MySQL的监控程序来确定MySQL主辅同步,并且引入Python对发信通知的处理,等等。6、使用Python管理Memcached1)利用python来管理memcached集群:包括创建memcached进程。和停止,以及修改2)监控memcached集群的信息:监控集群的流量、命中率、容量。7、使用Python来分析Apache Log日志找出404最多的URL:引入生成器,以及对日志分析的基本方法。8、系统安全相关密码生成器:通过简单的密码生成器说明密码的管理和安全意识。9、应用部署1)使用distribution lib来打包成rpm,进行应用的部署。2)使用virtualenv来部署python应用。第二阶段 Python运维系统构建本阶段面向运维方向具备工作经验的运维人员。1、阶段目标: 通过本阶段课程的学习,了解大规模环境下的运维体系构成,并且可以达到从无到有建立体系的能力。2、预备知识:Puppet/Chef、虚拟化、Nagios、SVN ... 3、课时安排:8天1、自上而下的运维系统讲解运维体系,配置管理、系统监控、自动化部署、日志收集等系统之间的关系。阐明运维体系,并在课程中将体系中涉及到的部分一一实现。2、配置管理1) 资源管理系统。结合Django和Puppet来建立一个资源管理系统。讲资源的命名空间,系统的信息收集处理。前导知识:对Django略有了解,搭建过Puppet,了解puppet的工作方式2) Python与Puppet的结合,讲如何使用Python来做Puppet的插件,生成配置文件,处理SVN等等。3、监控1)Graphite,监控数据可视化的解决方案,同时讲结合(前导知识:rrdtool,Django)2)使用Cubism的JS Library使Graphite监控的数据一目了然。(前导知识:Apache的QPS,Javascript)3)Python与Nagios的结合,使用Python写Nagios的Plugin。并且让Nagios的性能数据发送到Graphite。(前导知识:Nagios的工作原理)
贴吧热议榜
使用签名档&&
保存至快速回贴推荐这篇日记的豆列
······

我要回帖

更多关于 collectd plugin 的文章

 

随机推荐