记一次Nagios大规模的过程(600网络节点),Nagios + Mrtg + NDO +展示 +NagiosQL
公司有一个新的需求:
有一个600节点的网络设备需要监控,设备都是Cisco路由器设备,要求能看端口流量,基本硬件信息,设备状态
第一步:构建基础环境,这里就不多说了、网上很多的教程
Nagios 、Mrtg 、 NDO 、NagiosQL
第二步:收集设备的资料,保存一个csv文件,我的大致信息如下、如信息不一样下一步种的脚本需要手工调整。
A列:主机名,用于Nagios的主机名字段
B列\C列:这里放设备的描述,我这B列是设备的地址、C列为设备的专线号
D列:
设备的IP地址
第三步:编写脚本批量生成Nagios配置文件,python脚本
遍历csv文件生成Nagios配置文件
#!/usr/bin/env python
#_*_ coding:utf-8 _*_
'''
Created on 2017年5月12日
@author: Alex
'''
f=open("DRL.csv")
#line = f.xreadlines()
#print line
nagios=file("host.conf","w+")
for i in f.xreadlines():
x=i.split(",")
host='''
define host {
host_name %s
alias %s
address %s
parents localhost
hostgroups cisco_Group
use generic-host
icon_image cisco.jpg
register 1
}
'''%(x[0],x[1]+":"+x[2],x[3][:-2]+"254")
nagios.write(host)
f.close()
nagios.close()
第四步:使用NagiosQL导入生成的配置文件,当然首先要把上面的文件上传到NagiosQL能读取到的位置,导入后记得在主机页面点击写入到配置文件
第五步 [可选步]:如果导入后发现还有选项需要修改,通过SQL修改部分属性,例如之际检查命令等
使用SQL语句连接到NagiosQL,例如下面修改部分属性语句,
这个更具自己的情况来修改,在页面找一台修改后查看值
update tbl_host set check_interval=1 where hostgroups=2;
第六步:添加相应的服务,这个不用我多说了,同样的设备,添加服务关联到主机组上即可
第七步:添加MRTG生成网络流量图
同样通过脚本批量生成,中间的路径自己进行更换,不同的方式自己决定
注意#需要根据自己的方式选择取消注释,主机文件目录的权限需要为
Nagios:Nagios
可以已Nagios用户执行或者手工修改
tbl_host.txt 文件格式,我是从Nagisql数据库
主机名;描述;ip地址
#!/usr/bin/env python
import os
f=open("tbl_host.txt","r")
m=open("Add_mrtg.sh","w")
m.write("#!/bin/sh \n")
for lin in f.readlines():
lin=lin.split(";")
mrtg="cfgmaker --global 'WorkDir: /usr/local/mrtg-2/rrd/%s' --global 'Options[_]: bits,growright' --global 'LogFormat: rrdtool' --output /usr/local/mrtg-2/cfg/%s.cfg public@%s"%(lin[0],lin[0],lin[2])
os.mkdir("/usr/local/mrtg-2/rrd/%s"%lin[0])
#os.system(mrtg)
#print mrtg
#os.popen(mrtg)
#m.write(mrtg)
m.close
#os.system("/bin/bash Add_mrtg.sh")
#os.system("/bin/rm -rf Add_mrtg.sh")
f.close
添加Nagios服务定期执行mrtg这样对性能优化比较好,crontable执行非常糟糕
编写脚本放到
Nagios的libexec目录下
[root@Nagios libexec]# cat Run_Mrtg
#!/bin/sh
env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/cfg/"$1".cfg
exit $?
[root@Nagios libexec]#
让Nagios调用Mrtg收集节点流量,一下是nagios的配置
配置文件如下
第九步:调整Nagios监控。最终效果,一团胡
性能状况,感觉是非常棒的(最开始用cacti在添加到200节点左右直接就蹦了):
主机性能
监控展示页面,这个是基于OP-Dash_v1.1 做相关的修改和变更,这里就需要NDO的支持了
,这个页面从NDO读取数据
等整理完成后,局势在共享源码,请关注博客,图片仅供参考
流量展示页面,完全自写的一个查询系统(PHP),根据MRTG生成的RRD文件进行绘图,
这个等整理完成后在分享,大家也可以使用routers2 进行查看,界面不是这个美观
routers2的页面
到此600节点完成部署完成。
目前需要完善点,需要在Nagios界面做流量tips
iManga
- 本文标签: 监控文档
- 本文链接: http://www.iamlk.cn/article/138
- 版权声明: 本文由Leonidax原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权