常见开源监控软件php
cacti、nagios、zabbix、smokeping、open-falcon等等
cacti、smokeping偏向于基础监控,成图很是漂亮
cacti、nagios、zabbix服务端监控中心,须要php环境支持,其中zabbix和cacti都须要mysql做为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而能够成图
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究
后续以介绍zabbix为主mysql
C/S架构,基于C++开发,监控中心支持web界面配置和管理
单server节点能够支持上万台客户端
最新版本3.4,官方文档https://www.zabbix.com/manuals
5个组件
zabbix-server 监控中心,接收客户端上报信息,负责配置、统计、操做数据
数据存储 存放数据,好比mysql
web界面 也叫web UI,在web界面下操做配置是zabbix简单易用的主要缘由
zabbix-proxy 可选组件,它能够代替zabbix-server的功能,减轻server的压力
zabbix-agent 客户端软件,负责采集各个监控服务或项目的数据,并上报ios
服务端:web
1. wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpmsql
2. rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm数据库
3. yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql //会连带安装httpd和php 还须要安装mysqlvim
4. vim /etc/my.cnf //mysql增长配置项windows
character_set_server = utf8 //设置字符集,不设置zabbix 中文显示会存在问题浏览器
5. 重启mysql,建立数据库zabbix;bash
create database zabbix character set utf8
6. 建立用户;
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by '123456';
7. 导入数据;
cd /usr/share/doc/zabbix-server-mysql-3.2.11/ //数据存放目录
gzip -d create.sql.gz //解压文件
mysql -uroot -p123456 zabbix < create.sql //导入数据库
8. systemctl start zabbix-server //启动zabbix服务
systemctl start httpd //启动httpd服务
9. vim /etc/zabbix/zabbix_server.conf //增长或者修改
DBHost=127.0.0.1 //在DBName=zabbix上面增长
DBPassword=123456 //在DBuser下面增长10. 启动zabbix服务
systemctl start zabbix-server
systemctl enable zabbix-server
11. http://192.168.5.163/zabbix //浏览器打开配置zabbix
错误: 此处有错误提示,意识是PHP没法识别“data.timezone”(时区)。
vim /etc/php.ini
date.timezone = Asia/Shanghai
systemctl restart httpd.service
12. 用户名和密码 admin zabbix
更改密码、Administration--user
change password 顺带能够改变语言 点击 update
若是忘记zabbix(web界面)管理员密码,可经过zabbix服务器的数据库进行密码更改!
1. 进入数据库 修zabbix数据库users表
update users set passwd=md5('123456') where alias='Admin';
19.6 客户端安装zabbix
1. wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2. rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
3. yum install -y zabbix-agent //只须要安装zabbix-angent
4. vim /etc/zabbix/zabbix_agentd.conf //修改以下配置
Server=192.168.5.163
#指定服务端主机IP(设置客户端的监控主机白名单)
ServerActive=192.168.5.163
#该参数决定监控的主动/被动模式
#若是只改参数Server,则只能采用被动模式(只能等待服务端来采集信息)
#主动模式:客户端主动向服务端发送信息Hostname=lxy
#该参数用于设定客户端主机的名字,用于服务端添加监控服务
#若是服务端所监控的机器和其Hostname不一致,服务端将没法识别该机器
#由于zabbix是经过IP进行监控的,该参数不会对监控形成太大影响
#加上该参数有利于更好的辨别服务端监控是哪台主机的状态
5. systemctl enable zabbix-agentsystemctl start zabbix-agent //启动服务
查看zabbix服务状态(ps、netstat),正常(客户端zabbix默认监听10050端口)!
•主动或者被动是相对客户端来说的
• 被动模式,服务端会主动链接客户端获取监控项目数据,客户端被动地接受链接,并把监控信息传递给服务端
• 主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收便可。
• 当客户端数量很是多时,建议使用主动模式,这样能够下降服务端的压力。
• 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式
主动模式和被动模式所针对的对象是客户端,意思是客户端主动向服务端上报数据和由服务端到客户端采集数据。数据的提交时间在监控中心设置。
配置建议
采用主动模式能够减轻服务器的压力。
当服务端有公网IP,客户端只有内网IP可是能够链接外网(使用iptables的nat表规则实现),这种场景适合使用主动模式
该配置在服务端的web界面监控中心进行。
配置选项介绍
登陆到管理界面后操做以下:
主机群组:在此先建立主机群组,而后再添加要监控的机器到已有群组中。这样作的好处是,在不一样的主机群组设置不一样监控规则,而后能够把想要使用一样规则的主机添加到指定群组进行管理,避免为每台主机去配置规则。
模板:预设的监控项目集合(监控规则模版)
主机:在监控中的全部机器
开始配置
先建立主机群组,在添加主机
此配置要客户端主机名称(在客户端zabbix配置文件:/etc/zabbix/zabbix_agentd.conf中的Hostname参数),该名称要和客户端配置文件中的名称一致;指定主机群组;指定客户端IP,若是该IP有对应的域名,则须要添加到“DNS名称”中,若是没有能够不填。有须要的话还能够进行模板、IPMI、宏等配置,配置完成后点击“添加”,跳转到主机列表
参数解析:
在“模板”中自定义监控规则,而后应用到监控主机中,方便个性化管理。
添加模板的思路:建立模板——指定其所属模板组(也能够连接到其余模板)
添加完成点击“监控项目”,选择要监控的项目,而后“复制”到模板“lxy”中。
配置“自动发现规则” :
此处没有“复制”选项,那么该如何将该规则添加到自定义模板中呢?方法以下:
删除模板lxy中的全部监控项,而后使用“连接的模板”,“选择”要连接到的模板,而后“添加”,添加完成后点“更新”
更新完成后,所连接的模板的规则就应用到lxy中,可是在该模板下不能直接删除监控项目,缘由是该项目下全部规则都是连接到template os Linux中的,须要在连接模板选项下设置“取消连接”——“更新”,而后才能对lxy中的监控项目等选项进行编辑。
说明: 应用集中包含了全部的监控项,因此只有先删除监控项以后才能删除应用集(应用集列表中监控项数目为0的能够直接删除);触发器是设定的监控项目对应的规则,不能删;图形根据需求删选;这样自动发现规则就添加到自定义模板中。
将自定义模版应用到监控主机lxy中
主机——模板——选择——添加——更新
设置完成后查看图形——预览,发现图形界面下有乱码:
字符集(已配置,排除该缘由);像图中这种有规律的“乱码”不是字符集问题,而是缺乏相应的字库(中文字库)。
解决办法:
编辑服务端配置文件:vim /usr/share/zabbix/include/defines.inc.php #在该文件下搜ZBX_FONTPATH #在参数“define 'ZBX_FONTPATH'”下定义的是相对/usr/share/zabbix/的相对路径 #相对路径下是指定的字库 graphfont.ttf mv /root/SIMLI.TTF /usr/share/zabbix/fonts/ //字体在windows中找,支持中文便可 mv graphfont.ttf graphfont.ttf.bak ; ln -s STKAITI.TTF graphfont.ttf //软链接刷新页面显示正常
更改自动发现规则监控时间间隔:
更改数据更新间隔,重启服务端和客户端zabbix服务,查看监控效果
在实际应用中时间间隔不要设置过短,一面增长服务器压力。
更改图形界面颜色
在模板——自发现规则——图形原型中更改