生产环境开源监控系统整合
Nagios+Cacti+Nconf
公司要换监控系统了,以前采用的是Nagios+Centreon这两款软件的整合然后做出来的,但是Centreon的画图是在令人感觉惨不忍睹,而且统计出来的数据,也不是非常准确和人性化……所以,在研究了之后我们决定换监控系统,而最终的方案就是使用Naigos来捕获数据和报警,使用Cacti来画图,使用Nconf来配置多台主机,方便管理。
那么ok,先说一下我们的环境平台。
监控机采用的是R410的服务器,8G内存和16核cpu,采用CentOS 5.5 x86_64的操作系统。好的,配置好网络之后,我们开始!
注意:这里默认关闭了Selinux(生产环境也是关的,放心吧。)以及关闭了iptables。如有开启的需要,请根据网络酌情添加相关内容。
准备环境:
为以后的配置搭建安装环境
一:Nagios环境的搭建
1.安装nagios
2.增加nagios登陆认证文件,一定要用默认的nagiosadmin作为用户,否则需要修改其他文件。
3. 安装插件:
4.将运行Apache的用户添加到nagios组里,这样Apache才有权限读取文件
5.阶段测试
二:cacti环境的搭建
1.rrdtool的安装,这里需要安装的是:rrdtool,rrdtool-devel.rrdtool-perl,rrdtool-php,我用的rrdtools的版本是1.4.4.1_x86_64。
下载完成后,本地yum安装
2.配置snmp
3.安装cacti
4.创建cacti数据库
5.将cacti的表内容导入创建的数据库
6.分别编辑两个.php文件,以适应环境,修改内容相同。
7.在cacti用户下创建计划任务以画图
8.从web页面启动cacti,安装,并查看图形化界面
三:整合Nagios与Cacti
1.下载并安装ndoutils
2.准备配置文件
3.修改nagios.cfg配置文件以适应当前环境
4.修改ndo2db.cfg以适应当前环境
5.修改ndomod.cfg以适应当前环境
6.为ndo2db添加启动进程
7.启动守护进程与nagios
四:安装ncp,以在Cacti中展现Nagios
1.先安装cacti扩展模块
从web进入cacti,启用cacti plugin扩展
2.安装npc
3.安装 npc支持:json
4.打开php.ini文件添加对json的支持
5.为apache添加php支持。
6.修改配置文件以让npc读取到新的数据。
6.1
从Web进入Cacti,确保正确使用npc选项。
6.2 修改mysql中的表结构:
7.重启ndo2db进程,重新加载配置文件重启nagios服务。
8.在Web上配置NPC以使之正常读取工作。
在Settings->npc中 ,勾上Remote Commands
Nagios Command File Path= /var/www/html/nagios/var/rw/nagios.cmd
Nagios URL=你的地址( http://ocalhost/nagios/)
接下来刷新npc就可以看到数据啦:
五:Nconf的安装与配置
1.nconf的准备工作
2.安装nconf
3.进入Web页面在web页面按照安装提示一步步安装
4.使用刚才创建的nconf数据库和nconf数据库用户/密码
5.成功连接mysql数据库,之后一切保持默认,直到下面的,设置nconf管理员密码,此时默认登录用户为admin
6.之后,网页安装完成。
7.重新刷新页面,输入admin/您设置的密码,进入nconf页面
8.点击Generate Nagios config
尝试生成配置文件,以测试是否与nagios
成功关联
9.最后的设置
①
在web
页面对监控服务和主机配置完毕,点击Generate Nagios config
②deploy_local.sh
是nconf
自带配置文件导入脚本
手动执行此脚本,将在/var/www/html/nagios/etc
下生成两目录Default_collector
与global
③
修改nagios
主配置文件
六:错误总结:
1.启动ndo2db发现日志报错:
2.在npc安装过程中进行表操作时报错
3.在应用nconf的时候报错
4....当然还没有发现错误,如果有,将会继续补充,欢迎网友在安装部署的过程中发现错误将错误积极交流,我将一一添加…… 七:最后的样式 nagios定义服务 vim /var/www/html/nagios/etc/nagios.cfg 添加定义的东西,cfg_file=/var/www/html/nagios/etc/objects/115.cfg cd /var/www/html/nagios/etc/objects define host{
############################################################################### #define hostgroup{
###############################################################################
define service{
define service{
# Define a service to check the number of currently logged in define service{
define service{
# Define a service to check the load on the local machine. define service{
# Define a service to check the swap usage the local machine. define service{
# Define a service to check SSH on the local machine. define service{
# Define a service to check HTTP on the local machine. #define service{ define service{
define command{ define command{ |