19.1 Linux监控平台介绍
常见开源监控软件
cacti、nagios、zabbix、smokeping、open-falcon等等
cacti、smokeping偏向于基础监控,成图非常漂亮
cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图
open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究
后续以介绍zabbix为主
19.2 zabbix监控介绍
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 客户端软件,负责采集各个监控服务或项目的数据,并上报
19.3 安装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-get zabbix-server-mysql zabbix-web zabbix-web-mysql //会连带安装httpd和php 还需要安装mysql
4. vim /etc/my.cnf //mysql增加配置项
character_set_server = utf8 //设置字符集,不设置zabbix 中文显示会存在问题
5. 重启mysql,创建数据库zabbix;
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
19.5 忘记Admin密码如何做
如果忘记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-agent
systemctl start zabbix-agent //启动服务
查看zabbix服务状态(ps、netstat),正常(客户端zabbix默认监听10050端口)!
19.7 主动模式和被动模式
•主动或者被动是相对客户端来讲的
• 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端
• 主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收即可。
• 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。
• 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式
主动模式和被动模式所针对的对象是客户端,意思是客户端主动向服务端上报数据和由服务端到客户端采集数据。数据的提交时间在监控中心设置。
配置建议
采用主动模式可以减轻服务器的压力。
当服务端有公网IP,客户端只有内网IP但是可以连接外网(使用iptables的nat表规则实现),这种场景适合使用主动模式
19.8 添加监控主机
该配置在服务端的web界面监控中心进行。
配置选项介绍
登录到管理界面后操作如下:
主机群组:在此先创建主机群组,然后再添加要监控的机器到已有群组中。这样做的好处是,在不同的主机群组设置不同监控规则,然后可以把想要使用同样规则的主机添加到指定群组进行管理,避免为每台主机去配置规则。
模板:预设的监控项目集合(监控规则模版)
主机:在监控中的所有机器
开始配置
先创建主机群组,在添加主机
此配置要客户端主机名称(在客户端zabbix配置文件:/etc/zabbix/zabbix_agentd.conf中的Hostname参数),该名称要和客户端配置文件中的名称一致;指定主机群组;指定客户端IP,如果该IP有对应的域名,则需要添加到“DNS名称”中,如果没有可以不填。有需要的话还可以进行模板、IPMI、宏等配置,配置完成后点击“添加”,跳转到主机列表
参数解析:
- 应用集:监控项目的集合
- 监控项:所有的监控项目
- 触发器:监控规则(不填规则颜色不同,会体现在首页主机状态中)
- 图形:根据监控历史数据绘制的图标
- 自动发现规则:zabbix自动监控的文件系统的信息、网卡信息(该部分自定义比较繁琐,所以使用自己动发现规则)
- Web场景:在此可设置对主机上的某个站点进行监控
19.9 添加自定义模板
在“模板”中自定义监控规则,然后应用到监控主机中,方便个性化管理。
添加模板的思路:创建模板——指定其所属模板组(也可以链接到其他模板)添加完成点击“监控项目”,选择要监控的项目,然后“复制”到模板“lxy”中。
配置“自动发现规则” :
此处没有“复制”选项,那么该如何将该规则添加到自定义模板中呢?方法如下:
删除模板lxy中的所有监控项,然后使用“链接的模板”,“选择”要链接到的模板,然后“添加”,添加完成后点“更新”
更新完成后,所链接的模板的规则就应用到lxy中,但是在该模板下不能直接删除监控项目,原因是该项目下所有规则都是链接到template os Linux中的,需要在链接模板选项下设置“取消链接”——“更新”,然后才能对lxy中的监控项目等选项进行编辑。
说明: 应用集中包含了所有的监控项,所以只有先删除监控项之后才能删除应用集(应用集列表中监控项数目为0的可以直接删除);触发器是设定的监控项目对应的规则,不能删;图形根据需求删选;这样自动发现规则就添加到自定义模板中。
19.10 处理图形中的乱码
将自定义模版应用到监控主机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 //软连接
刷新页面显示正常
19.11 自动发现
更改自动发现规则监控时间间隔:
更改数据更新间隔,重启服务端和客户端zabbix服务,查看监控效果
在实际应用中时间间隔不要设置太短,一面增加服务器压力。
更改图形界面颜色
在模板——自发现规则——图形原型中更改