Nagios、InfluxDB、Grafana 配合使用,打造新一代展示
开源展示Grafana 有着炫酷的界面,很受年轻人的喜爱,本文就来说说,怎么把Nagios的数据使用Grafana 展示出来,如下图片来之官网,本文实在Centos7上进行操作
1、准备工作
Ⅰ、安装Nagios这个不多说不会的话,参考博客专门的安装步骤
https://www.qnjslm.com/ITHelp/663.html
Ⅱ、下载相关的软件,这里需要3款
Grafana 、这个不多说,我们的展示工具,可以在不同的系统上进行安装,根据需求进行下载 https://grafana.com/grafana/download?platform
InfluxDB 、这个是数据库,已时间序列来保存数据,是最适合这种监控的数据保存,https://portal.influxdata.com/downloads
Nagflux 、
这个是把监控数据写入到InfluxDB 数据库的插件
https://github.com/Griesbacher/nagflux
2、安装软件
由于我这里就一台服务器,所有的软件都部署在Nagios服务器上
Ⅰ、Grafana 安装
根据官方提示,使用RPM包进行安装,安装包有40M大小
[root@mail opt]#wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3-1.x86_64.rpm
[root@mail opt]#yum localinstall grafana-4.6.3-1.x86_64.rpm
Ⅱ、InfluxDB 安装,也很简单根据官方说明进行,20M左右,不依赖其他组件
[root@mail opt]#wget https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2.x86_64.rpm
[root@mail opt]#yum localinstall influxdb-1.4.2.x86_64.rpm
Ⅲ、Nagflux 安装,这个就没有RPM进行安装,直接下载允许程序,放到我们指定的文件夹下
[root@mail opt]# mkdir /usr/local/nagflux
[root@mail opt]# cd /usr/local/nagflux/
[root@mail nagflux]# wget https://github.com/Griesbacher/nagflux/releases/download/v0.4.1/nagflux
[root@mail nagflux]# chmod +x nagflux //添加可执行权限
3、配置软件
Ⅰ,配置Nagios把性能文件写入到指定的位置(这一步操作比较复杂,修该的内容比较多)
[root@mail nagflux]# pwd
/usr/local/nagflux
[root@mail nagflux]# mkdir nagfluxperfdata //创建目录用于保存Nagios性能数据
[root@mail nagflux]# chown nagios:nagios nagfluxperfdata/ //让Nagios有操作权限
//创建一个脚本来拷贝Nagios主机性能数据,这里这么做是为了以后好扩展,如果我们还需要使用pnp4nagios,就可以在这个脚本中把数据复制一份。
[root@mail nagflux]# vim /usr/local/nagios/libexec/process-host-perfdata-file-bulk
#!/bin/bash
/bin/mv /usr/local/nagios/var/host-perfdata /usr/local/nagflux/nagfluxperfdata/${1}.perfdata.host
//在创建一个copy服务性能数据的脚本
[root@mail nagflux]# vim /usr/local/nagios/libexec/process-service-perfdata-file-bulk
#!/bin/bash
/bin/mv /usr/local/nagios/var/service-perfdata /usr/local/nagflux/nagfluxperfdata/${1}.perfdata.service
修该脚本的权限
[root@mail nagflux]# chown nagios:nagios /usr/local/nagios/libexec/process-host-perfdata-file-bulk
[root@mail nagflux]# chmod +x /usr/local/nagios/libexec/process-host-perfdata-file-bulk
[root@mail nagflux]# chown nagios:nagios /usr/local/nagios/libexec/process-service-perfdata-file-bulk
[root@mail nagflux]# chmod +x /usr/local/nagios/libexec/process-service-perfdata-file-bulk
修该Nagios配置文件,把性能数据保存在文件中
[root@mail nagflux]# vim /usr/local/nagios/etc/nagios.cfg
#启用性能数据
process_performance_data=1
#性能数据保存位置
host_perfdata_file=/usr/local/nagios/var/host-perfdata
service_perfdata_file=/usr/local/nagios/var/service-perfdata
#数据日志保存格式,这里不是默认的注意
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
#文件写入模式这里追加写入
host_perfdata_file_mode=a
service_perfdata_file_mode=a
#设定文件多长时间处理一次,如服务器压力大,时间就延长,单位秒
host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15
#文件处理命令,注意了这个名字不是我们创建的脚本名,虽然名字上看起来一样,这个需要在nagios的Command文件中定义
host_perfdata_file_processing_command=process-host-perfdata-file-bulk
service_perfdata_file_processing_command=process-service-perfdata-file-bulk
Nagios主配置文件就配置完成了,我们可以保存,下面来增加上面最后使用的两条命令
[root@mail nagflux]# vim /usr/local/nagios/etc/objects/commands.cfg
#添加两个命令,在文件最后面添加吧,以便添加错误了
# 'process-host-perfdata-file-bulk' command definition
define command{
command_name process-host-perfdata-file-bulk
command_line $USER1$/process-host-perfdata-file-bulk $TIMET$
}
# 'process-service-perfdata-file-bulk' command definition
define command{
command_name process-service-perfdata-file-bulk
command_line $USER1$/process-service-perfdata-file-bulk $TIMET$
}
重启Nagios进程
[root@mail nagflux]# systemctl restart nagios
稍等一分钟确认我们的目录下面是否有数据,有就OK,继续下一步,没有回头验证那一步错误了,说明我这里看到有空文件,是因为我没有添加监控,就一个默认监控,空文件不会影响使用,可以加大文件处理的频率。
[root@mail nagflux]# ll /usr/local/nagflux/nagfluxperfdata/
Ⅱ、InfluxDB配置和启动
默认我们不需要去配置他,就可以运行,如果你在生产上使用,可能你的数据需要放在可靠的数据盘上,这里你可以修该数据存储路径,认证信息
配置文件 [root@mail influxdb]# vim /etc/influxdb/influxdb.conf
[meta]
#存放数据库元数据
dir = "/var/lib/influxdb/meta"
[data]
#存放最终存储的数据,文件以.tsm结尾
dir = "/var/lib/influxdb/data"
#存放预写日志文件
wal-dir = "/var/lib/influxdb/wal"
启用influxdb
[root@mail influxdb]# systemctl start influxd
使用客户端进行验证
使用自带的客户端工具连接到数据库
[root@mail influxdb]# influx
查看现有数据库
> show DATABASES;
#创建一个管理账户
> CREATE USER "admin" WITH PASSWORD '********' WITH ALL PRIVILEGES
再次修该配置文件,启用登陆认证,记住得先创建管理员账号。在修该这一步
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true
重启数据库服务,进行登陆验证,数据库就搞定!
[root@mail log]# influx -username 'admin' -password '*******'
Ⅲ、配置nagflux,把导出来的Nagios性能数据写入到influxdb中
#进入到我们的安装目录中
[root@mail influxdb]# cd /usr/local/nagflux
#创建目录存储nagflux临时缓存文件
[root@mail nagflux]# mkdir Spool
#创建存储日志的目录
[root@mail nagflux]# mkdir log
#创建配置文件,按照我的方法安装的默认是没有这个文件。
[root@mail nagflux]# vim config.gcfg
#主文件处理配置
[main]
#Nagios性能数据的位置,这里是我们脚本拷贝过来的目录
NagiosSpoolfileFolder = "/usr/local/nagflux/nagfluxperfdata"
NagiosSpoolfileWorker = 1
InfluxWorker = 2
MaxInfluxWorker = 5
#文件位置随便指定一个
DumpFile = "/usr/local/nagflux/nagflux.dump"
#这个是nagflux临时处理暂存目录
NagfluxSpoolfileFolder = "/usr/local/nagflux/Spool"
FieldSeparator = "&"
BufferSize = 1000
FileBufferSize = 65536
#保存目标我们使用Influxdb
DefaultTarget = "Influxdb"
#日志保存设置
[Log]
LogFile = "/usr/local/nagflux/log/nagflux.log"
MinSeverity = "INFO"
#ubfluxdb全局设置,主要是允许创建数据库
[InfluxDBGlobal]
CreateDatabaseIfNotExists = true
NastyString = ""
NastyStringToReplace = ""
HostcheckAlias = "hostcheck"
#指定数据库,NagiosPerfdata这里就是数据库名称,会自动创建的
[InfluxDB "NagiosPerfdata"]
Enabled = true
Version = 1.4.2
#influxdb的API接口地址,默认是8086端口
Address = "http://127.0.0.1:8086"
#这里指定用户名密码,必须有管理员权限
Arguments = "precision=ms&u=admin&p=**********&db=NagiosPerfdata"
StopPullingDataIfDown = true
#这里配置这个主要是排除日志中一直报的错误,如果没有livestatus,没有用途
[Livestatus]
Type = "tcp"
Version = "Icinga2"
#修该完成后手动启动测试,这个时候会一直停留在这里
[root@mail nagflux]# ./nagflux
我们另启动一个shell窗口登陆数据库进行数据查询。
[root@mail ~]# influx -username 'admin' -password '*******'
#查看数据库是否被创建
> show databases;
#切换到数据库
> use NagiosPerfdata
#查看是否有数据,如果数据比较多,使用limit进行现在
> select * from /.*/ limit 5
如果不是这个效果,等待一两分钟,还是没数据的话,往上翻翻,确认错误
返回刚才的窗口ctrl + c 结束运行
把nagflux做成系统服务进行管理,这里是centos\redhat 7上进行添加使用systemd
[root@mail ~]# cd /usr/lib/systemd/system/
[root@mail system]# vim nagflux.service
[Unit]
Description= Nagios per data insert Influx db
Documentation=https://github.com/Griesbacher/nagflux
After=network-online.target
[Service]
User=root
Group=root
ExecStart=/usr/local/nagflux/nagflux -configPath /usr/local/nagflux/config.gcfg
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=nagflux.service
把服务注册到开机启动中
[root@mail system]# systemctl enable nagflux.service
[root@mail system]# systemctl start nagflux.service
[root@mail system]# systemctl status nagflux.service
好了,到这里nagflux配置完成
Ⅳ、Grafana 配置
我们不需要修改相关的配置,直接运行即可,配置文件在/etc/grafana/grafana.ini
我们启动相关服务
[root@mail system]# systemctl enable grafana-server.service
[root@mail system]# systemctl start grafana-server.service
访问WEB控制台,默认端口3000,默认的用户名和密码都是admin
添加数据源,点击Add data source
填写相关信息
Name : Nagios
Type : InfluxDB
URL : http://localhost:8086
Access : proxy
Database : NagiosPerfdata
User : admin
Password : ********
再次回到主页,我们选择新建dashboard
可以看到可以正常出图
这里我就不做过多演示,因为我这里没有相关数据。
- 本文标签: 监控安装配置
- 本文链接: http://www.iamlk.cn/article/23
- 版权声明: 本文由Leonidax原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权