InfluxDB:时序数据库保存性能数据
Nagflux:将性能数据从nagios导入到InfluxDB的程序
Grafana:基于web的分析平台,可以将性能数据库从InfluxDB展示到web,实现数据可视化
Histou:为Grafana添加上Nagios性能数据创建的图表
influxDB安装
wget
yum localinstall influxdb-1.5.4.x86_64.rpm
设置开机启动并启动服务:
systemctl enable influxdb.service
systemctl start influxdb.service
创建数据库
influx
>create database nagflux
#验证数据库是否创建成功
curl -G “” –data-urlencode “q=show databases”
nagflux(需要go环境)
安装go环境:
yum install -y golang git
通过 github 下载安装:
export GOPATH=$HOME/gorepo
mkdir $GOPATH
go get -v -u github.com/griesbacher/nagflux
go build github.com/griesbacher/nagflux
mkdir -p /opt/nagflux
cp $GOPATH/bin/nagflux /opt/nagflux/
mkdir -p /usr/local/nagios/ var /spool/nagfluxperfdata
chown nagios:nagios /usr/local/nagios/var/spool/nagfluxperfdata
安装启动脚本并设置开机启动:
cp $GOPATH/src/github.com/griesbacher/nagflux/nagflux.service /usr/lib/systemd/system/
chmod +x /usr/lib/systemd/system/nagflux.service
systemctl daemon-reload
systemctl enable nagflux.service
配置nagflux:
vim /opt/nagflux/config.gcfg
Grafana
yum install
设置开机启动并启动服务:
systemctl enable grafana-server.service
systemctl start grafana-server.service
默认的用户名密码:admin/admin
histou
cd / tmp
wget -O histou.tar.gz
mkdir -p /var/www/html/histou
cd /var/www/html/histou
tar xzf /tmp/histou.tar.gz –strip-components 1
cp histou. ini .example histou.ini
cp histou.js /usr/share/grafana/public/dashboards/
Nagios 配置
vim /usr/local/nagios/etc/nagios.conf
#添加下面内容
process_performance_data=1
host_perfdata_file=/usr/local/nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file-nagflux
service_perfdata_file=/usr/local/nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file-nagflux
vim /usr/local/nagios/etc/objects/commands.cfg
#添加下面内容
define command {
command_name process-host-perfdata-file-nagflux
command_line /bin/mv /usr/local/nagios/var/host-perfdata /usr/local/nagios/var/spool/nagfluxperfdata/$TIMET$.perfdata.host
}
define command {
command_name process-service-perfdata-file-nagflux
command_line /bin/mv /usr/local/nagios/var/service-perfdata /usr/local/nagios/var/spool/nagfluxperfdata/$TIMET$.perfdata.service
}
重启nagios服务
mkdir -p /usr/local/nagios/var /usr/local/nagios/var/nagflux /usr/local/nagios/var/spool/nagfluxperfdata
systemctl reload nagios
验证nagflux是否导入数据成功
curl -G “http:// localhost :8086/query?db=nagflux&pretty=true” –data-urlencode “q=show series”
设置grafana数据源
1、add data source
2、设置数据源信息
Name: nagflux
Type: InfluxDB
HTTP
URL:
Access: proxy
Auth: Leave settings as default
InfluxDB Details
Database: nagflux
User & Password: 为空
3、Save & Test
Histou 配置
grafana调用的js文件/usr/share/grafana/public/dashboards/histou.js找到
var url = ‘
将localhost换成浏览器能访问到histou的地址
sed -i ‘s/localhost/192.168.4.22/g’ /usr/share/grafana/public/dashboards/histou.js
验证histou是否可以获取到数据
curl -G “”
验证grafana是否可以取到数据
nagios_server = grafana的地址
3000 = grafana的端口
host_object = 主机对象
service_object = 服务名称
修改nagios的模板,加入图形链接
define host {
name host-grafana
action_url
register 0
}
define service {
name service-grafana
action_url
register 0
}