为了监控各大VPS主机商不同地方机房的网络线路情况,我们可以使用免费开源网络性能监控工具可视化主/从部署Smokeping,Smokeping强大直观的绘图可以帮助我们了解一定时间段内IDC机房的网络状况。
但是,如果我们还要详细了解服务器的CPU、内存、磁盘IO、SQL数据、硬盘容量、网页加载速度、系统负载等资源使用情况,我们就需要一个像zabbix一样的强大服务器性能监控工具,zabbix几乎可以监控到服务器所有的硬件资源。
Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,在Linux、Windows系统安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。如果没有安装Agent ,也可以通过SNMP、TCP、ICMP等方式进行监控。
Zabbix是一个企业级的监控工具,可用于部署监控大规模服务器集群监控,对于我们个人来说,也可以利用Zabbix来实时监控自己的服务器的运行状况。尤其是当你查不出自己的服务器毛病出在哪里,利用Zabbix作全方位的监控就非常有必要了。
更多的关于网站服务器监控与VPS主机性能评测,你还可以看看:
- Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈
- Smokeping安装与配置-免费开源网络性能监控工具可视化主/从部署
- 服务器日志分析利器:ngxtop和GoAccess-实时监控可视化管理快速找出异常来源
PS:2017年12月27日更新,相对于Zabbix大而全的监控不防来试试小而精的监控工具,这两款工具将网络流量监控发挥到了极致:两款优秀的服务器网络流量监控工具:Ntopng和Munin-功能强大直观。
一、Zabbix安装部署
官网:
- 网站:https://www.zabbix.com
- 文档:https://www.zabbix.com/documentation/3.4/zh/
- 一键包:https://github.com/X-Mars/Quick-Installation-ZABBIX
Zabbix支持分发包、容器、应用和编译等安装方法,嫌麻烦的朋友也可以直接使用Github第三方的一键安装包,可以一键安装服务端与客户端。
以下官网提供的从部署包安装Zabbix的详细教程。
1.1 Red Hat Enterprise Linux / CentOS
支持版本: RHEL 7, Oracle Linux 7, CentOS 7。一些组件的部署包(如agent, proxy等),同时也支持RHEL 5和RHEL 6。
安装源码库配置部署包。
这个部署包包含了yum配置文件。
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm
安装Zabbix部署包。
以下是使用Mysql数据库安装Zabbix server、WEB前端的示例。
Zabbix官方源码库也提供fping,iksemel,libssh2部署包这些包位于non-supported目录.
# yum install zabbix-server-mysql zabbix-web-mysql
只安装Zabbix Agent的示例.
# yum install zabbix-agent
安装初始化数据库
在MySQL上安装Zabbix数据库和用户,请参看下列指导步骤。MySQL数据库创建脚本。
然后导入初始架构(Schema)和数据。
# cd /usr/share/doc/zabbix-server-mysql-3.4.0 # zcat create.sql.gz | mysql -uroot zabbix
启动Zabbix Server进程
在zabbix_server.conf中编辑数据库配置
# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
启动Zabbix Server进程
# systemctl start zabbix-server
编辑Zabbix前端的PHP配置
Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置。
php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga
依据所在时区,你可以取消 “date.timezone” 设置的注释,并正确配置它。在配置文件更改后,需要重启Apache Web服务器。
# systemctl start httpd
Zabbix前端可以在浏览器中通过 http://zabbix-frontend-hostname/zabbix 进行访问。默认的用户名/密码为 Admin/zabbix。
1.2 Debian / Ubuntu
支持版本: Debian 7 (Wheezy) and 8 (Jessie), Ubuntu 14.04 LTS (Trusty Tahr), 16.04 LTS (Xenial Xerus)
安装源码库配置部署包
安装源码库配置部署包。这个部署包包含了apt配置文件。
在 Debian 7 上安装 Zabbix 3.4:
# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+wheezy_all.deb # dpkg -i zabbix-release_3.4-1+wheezy_all.deb # apt-get update
在 Debian 8 上安装 Zabbix 3.4:
# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+jessie_all.deb # dpkg -i zabbix-release_3.4-1+jessie_all.deb # apt-get update
在 Ubuntu 14.04 LTS 上安装 Zabbix 3.4:
# wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+trusty_all.deb # dpkg -i zabbix-release_3.4-1+trusty_all.deb # apt-get update
在 Ubuntu 16.04 LTS 上安装 Zabbix 3.4:
# wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb # dpkg -i zabbix-release_3.4-1+xenial_all.deb # apt-get update
安装Zabbix部署包
使用mysql数据库安装Zabbix server、WEB前端的示例。
# apt-get install zabbix-server-mysql zabbix-frontend-php
只安装Zabbix Agent的示例。
# apt-get install zabbix-agent
安装初始化数据库
在MySQL上安装Zabbix数据库和用户,请参考下列指导步骤。MySQL数据库创建脚本。
然后导入初始架构(Schema)和数据
# cd /usr/share/doc/zabbix-server-mysql # zcat create.sql.gz | mysql -uroot zabbix
启动Zabbix Server进程
在zabbix_server.conf中编辑数据库配置
# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
启动Zabbix Server进程
# service zabbix-server start
编辑Zabbix前端的PHP配置
Zabbix前端的Apache配置文件位于 /etc/apache2/conf.d/zabbix 或者 /etc/apache2/conf-enabled/zabbix.conf 。一些PHP设置已经完成了配置。
php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga
依据所在时区,你可以取消 “date.timezone” 设置的注释,并正确配置它。在配置文件更改后,需要重启Apache Web服务器。
# service apache2 restart
Zabbix前端可以在浏览器中通过 http://zabbix-frontend-hostname/zabbix 进行访问。默认的用户名/密码为 Admin/zabbix。
二、Zabbix监控主机
Zabbix自带中文,登录到Zabbix后你可以看到默认的已经添加的本机监控,上方有监测中、资产报表、报表、配置、管理。
添加主机。点击右上方添加主机,然后就是填写主机的详情配置了。有几个关键的地方:接口有IPMI接口、JMX接口、SNMP接口、agent接口,我们添加的是主机所以选择agent接口。IP地址就是我们将要添加的主机的IP或者域名,对应端口为默认的10050。
其它的配置可以参考wzfou.com的演示:(点击放大)
添加监控。添加主机完成后,接着我们就可以主机列表中点击“监控项”。
进入监控项配置界面后,可以根据一些条件,筛选出已经存在的一些监控项,直接点击”创建监控项”按钮。
接下来就是填写监控项的详细信息了。此处有一个关键地方就是:键值。点击选择按钮以后,可以看到非常多的预先定义好的key,这些key都是zabbix自带的key,这些key一般都是系统级别的通用的监控项所能够用到的key,包括了CPU、内存、硬盘、网络等几十项参数。(点击放大)
数据更新间隔表示每隔多长时间获取一次监控项对应的数据,你可以根据自己的需要来设置。其它的参考下图的演示:(点击放大)
最后,点击提交,完成监控项的设置。
返回到主机页面,你就可以看到你刚刚添加成功的监控项了。
多个监控项你可以重复以上操作,不过在zabbix中添加带有参数的监控项时,需要自己提前了解各参数的作用,例如监控硬盘分区容量,可以使用”vfs.fs.size[fs,<mode>]”这个键。其中”vfs.fs.size”就是键名,”[fs,<mode>]”就是这个键需要的参数。官网有速查手册:https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent
三、Zabbix监控报告
如果想要查看实时数据报告,可以点击“监测中”,然后搜索你的主机还有监控项。
点击后就可以看到图表数据,你可以点击放大图表查看相应时间段的报告。
在报表里有详细的各个监控主机的监控项报表。
Zabbix还提供了聚合图形,你自己可以将不同的监控项聚合在一起,然后形成新的报表。(点击放大)
这是Zabbix聚合报表效果。
Zabbix还提供了报警功能,可以与短信、微信等各类APP进行整合。
四、总结
Zabbix是一个基于WEB界面的提供分布式网络监视功能的企业级的开源解决方案,最大的特点是分布式监控,自动发现,自定义监控项目。在监控界,Zabbix是“牛刀”了,用在个人服务器监控上真的是“小试”了。
如果你添加Zabbix监控后没有数据显示,查看一下监控项是否显示正常运行。尤其是对于一些需要自定义监控参数的监控项,最好自己先在服务端手动测试一下,命令格式:zabbix_get -s 192.168.0.1 -k system.cpu.switches
。有数据返回就表示参数设置正常。