Zabbix监控系统功能及基本使用
一、Zabbix基本介绍:
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server:可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。
zabbix agent:需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista等系统之上。
Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监.控数据并使用apache+php的方式呈现。
Agent:指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。
SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监.控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。
IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。
zabbix的体系结构图:
二、Zabbix安装配置
第一步:下载所需要用的的程序包:
1、zabbix-2.0.8-3.el6.x86_64.rpm # 主程序包
2、zabbix-agent-2.0.8-3.el6.x86_64.rpm # 被监控端需要安装的代理程序包
3、zabbix-get-2.0.8-3.el6.x86_64.rpm # 去被监控端拉取数据的程序包
4、zabbix-sender-2.0.8-3.el6.x86_64.rpm # 发送数据所需要安培的程序包
5、zabbix-server-2.0.8-3.el6.x86_64.rpm # 做为服务器端所需要安装的各
6、zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm # 服务器端安装数据库程序包
7、zabbix-web-2.0.8-3.el6.noarch.rpm # web界面需要安装的程序包
8、zabbix-web-mysql-2.0.8-3.el6.noarch.rpm # web界面需要安装的数据库程序包
# 作为服务器端需要安装的程序包除了2和4都要安装 [root@node1 ~]# yum -y install zabbix-2.0.8-3.el6.x86_64.rpm zabbix-get-2.0.8-3.el6.x86_64.rpm zabbix-server-2.0.8-3.el6.x86_64.rpm zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm zabbix-web-2.0.8-3.el6.noarch.rpm zabbix-web-mysql-2.0.8-3.el6.noarch.rpm # 安装好之后可以查看一下数据库程序包安装的位置,特别要注意红色的数据库文件 [root@node1 ~]# rpm -ql zabbix-server-mysql [root@node1 ~]# cd /etc/zabbix/ DBHost=172.16.27.88 # 连接数据库的主机名 DBName=zabbix # 数据库名 DBUser=zabbix # 连接数据库所使用的用户 DBPassword=linux # 用户的数据 DBPort=3306 # 连接数据库的端口 |
配置文件中各参数的详细说明如下表,按需要启动这些参数:
DBName=zabbix | zabbix所属数据库名称 |
DBUser=zabbix | zabbix所属数据库用户 |
DBPassword=www.tanxw.com | zabbix数据库密码 |
StartPollers=30 | 开启多线程数,一般不要超过30个 |
StartIPMIPollers=4 | IPMI轮询的初始值 |
StartPollersUnreachable=30 | 该线程用来单独监控无法连接的主机,1个即可 |
StartTrappers=8 |
trapper线程数 |
StartPingers=4 | fping线程数 |
StartDiscoverers=0 | 自动发现的线程数 |
CacheSize=384M | 缓存空间大小 |
CacheUpdateFrequency=300 | 缓存更新的频率 |
StartDBSyncers=8 | 与数据库同步数据的线程数 |
TrendCacheSize=128M | 总趋势缓存大小 |
AlertScriptsPath=/path/something/script | 脚本的存放位置 |
LogSlowQueries=1000 | 日志慢查询设定 |
第二步:如果数据库跟zabbix server不在同一台主机上,那就要去远程主机上创建数据库了和给用户授权了,这里我们也是在不同的上机上进行操作:
[root@node0 ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 8174 Server version: 10.0.10-MariaDB-log MariaDB Server Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'linux' WITH GRANT OPTION; MariaDB [none]> GRANT ALL ON zabbix.* TO 'zabbix'@'172.16.%.%' IDENTIFIED BY 'linux'; MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> CREATE DATABASE zabbix; Query OK, 0 rows affected (0.31 sec) MariaDB [(none)]> SHOW DATABASES; MariaDB [(none)]> |
第三步:在服务器端安装上mysql客户端,或者把上面安装zabbix-server-mysql生成的数据库文件复制到数据库服务器上去,再导入到数据库中去,这里我们使用的是远程导入,就是在zabbix服务器端安装上mysql客户端,再把/usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql、/usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql、/usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql这三个文件导入到已经创建好的数据库中去;
[root@node1 zabbix]# rpm -q mysql
mysql-5.1.71-1.el6.x86_64 # 使用刚授权的远程用户把数据导入到数据库中去 [root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql [root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql # 而后再回去172.16.27.88这台主机上的数据库中查看一下导入的数据是否成功 MariaDB [(none)]> USE zabbix ......................... 103 rows in set (0.07 sec) MariaDB [zabbix]> # 再回到zabbix-server服务器端修改一下时区 [root@node1 zabbix]# vim /etc/php.ini Stopping httpd: [ OK ] |
第四步:启动zabbix-servere服务,这里要注意的是httpd安装好和php也要安装上,启动httpd服务和zabbix-server之后就可以在页面上访问安装了,zabbix-server会启动一大堆进程,默认监听的端口是10051:
[root@node1 zabbix]# service zabbix-server start Starting Zabbix server: [ OK ] [root@node1 zabbix]# ss -tlnp |
到这里就就算是配置安装好了,那接下来的的很多操作基本上都是在这个界面上完成的,定义各个监.控对象等。现在我们再找几个节点,也就是再弄几台虚拟机安装上zabbix-agent,把这几个安装了zabbix-agent的主机添加到监.控服务中来:
1、在被监.控的主机上安装zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm这几个包,但sender这个包不是必须的,只有在被监.控端主动向服务器端发送监.控数据库时才需要安装,这里我们就一并安装了吧,先把数据库这台主机安装上agent,而后再安装其实主机测试使用:
[root@node0 ~]# yum -y locainstall zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm # 修改配置文件,指定zabbix的服务器端的地址 [root@node0 ~]# cd /etc/zabbix/ [root@node0 ~]# service zabbix-agent start |
2、添加监.控主机到zabbix服务中去,在这里要说的是里面的选项很多,不过官方文档有很详细的说明,https://www.zabbix.com/documentation/2.0/manual/config/hosts/host
3、再创建一个监.控项item,点击上图中的Item项,再点击右上角的create item就可以创建item项了,这里我们添加两个做为测试,一个是eth0的数据流出量和流入量:
4、创建图形展示数据,点击Graphs,再点create graphs就可以创建图形展示数据了,填上相关的参数:
5、多个图组合在一个屏幕上查看的创建,也就是定义screens:
基本的监.控对象定义大概就是这个步骤,很多的监.控项还需要多花时间去了解认识,还是要结合官方文档了解清楚,这样才可以准确定义我们所需要监.控的对象,那接下来我们再来定义邮件通知、自动发现并添加主机和定义模板:
1、定义模板和发现主机,并自动添加主机:
定义一个发现规则:
2、报警发送邮件的定义,先定义一个媒介,而后再去定义一个用户,用来接收邮件的:
定义一个actions:
当流量超过我们定义的阈值时就会发送报告信息,通过邮件发送信息给我们的监.控用户:
总结:
zabbix是一个很强大并且开源的监.控系统,很多功能有待我们去了解去发现,通过上面的一些相关配置我们大概了解一这个监.控系统的基本的配置过程了,当然,于由水平有限,不难会出错或做得不到位的,还望大神多多指点。
本文出自 “温水煮青蛙” 博客,请务必保留此出处http://tanxw.blog.51cto.com/4309543/1411328
Zabbix监控系统功能及基本使用的更多相关文章
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- Zabbix监控nginx-rtmp status(json版)
与前面的文章 zabbix监控nginx-rtmp status(html版)区别只在于取值的页面不一样 http://127.0.0.1:81/control/get/all_streams sta ...
- Zabbix监控mysql performance
介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...
- zabbix监控Java 8080端口
linux下端口和服务是对应的,Java进程启动时默认监听8080端口,如果服务挂掉则8080端口就没有了. lsof -i:8080 端口,如果没有任何的输出,说明该端口不在工作. 想在zabbix ...
- zabbix监控报错zabbix server is not running解决方法
问题描述: 布置好zabbix监控,正常运行.但是重启了虚拟机服务器之后,页面出现如下的报错,而且设置的报信息也是失效的:
- Zabbix监控Tengine
title: Zabbix监控Tengine tags: zabbix,nginx,tengine author: Chinge Yang date: 2016-12-29 --- Zabbix监控T ...
- zabbix 监控web网站性能
一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...
- Zabbix监控disk performance
概述 zabbix获取/sys里面的磁盘信息并分析来监控disk performance sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似(默认挂载在 ...
- Zabbix监控mysql主从复制状态
原理 mysql slave show slave status\G 在输出信息中查看I/O线程和SQL线程的状态值(YES为正常,NO为错误) Slave_IO_Running: Yes Slave ...
随机推荐
- MVC中使用泛型仓储模式和依赖注入
在ASP.NET MVC中使用泛型仓储模式和依赖注入,实现增删查改 原文链接:http://www.codeproject.com/Articles/838097/CRUD-Operations-Us ...
- 银联+移动+三星PK微信、余额宝
在不远的将来,你可以扔掉钱包,扔掉信用卡,揣着手机买东西. 银联.移动.三星这些不同的行业大佬,因为这个目标,被一款名叫NFC的支付技术连接在了一起. 这场游戏的参与者众多,一个合纵连横的时代正在到来 ...
- NYNU_省赛选拔题(7)
题目描述 In computer science, a binary tree is a tree data structure in which each node has at most two ...
- Unity + iBatis + Asp.net Mvc 系统搭建
Unity + iBatis + Asp.net Mvc 系统搭建 之前用EntityFramework Code First做了一些小项目,很是方便:后来在一个 Java 项目中接触了myBatis ...
- 怎样用LINQ或EF生成NOT IN和IN语句
例如:有一个问卷表Questionnaire和一个活动与问卷的关系表ActivityOption_Questionnaire,现在我们要找出不在活动中的问卷. 用lambda实现方法如下: var n ...
- IntelliJIDEA Getting+Started+with+Spring+MVC,+Hibernate+and+JSON
https://confluence.jetbrains.com/display/IntelliJIDEA/Getting+Started+with+Spring+MVC,+Hibernate+and ...
- 【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索
原文:[高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索 摘要:地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公 ...
- C#中对值类型和引用类型的一点认识
区别值类型和引用类型的重要一点就是值类型赋值的时候是给出一块内存空间,空间里放下要赋给值类型的值.而引用类型是开辟一块内存空间,空间里放下的是要赋给引用类型值的指向地址. 就像一个是复制了银行卡里的现 ...
- Coreseek:索引和检测的第二步骤施工
1,非常索引easy,代码行 g:/service/coreseek/bin/indexer -c g:/service/coreseek/etc/csft_mysql.conf person 在 ...
- MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证
原文:MVC验证09-使用MVC的Ajax.BeginForm方法实现异步验证 MVC中,关于往后台提交的方法有: 1.Html.BeginForm():同步 2.Ajax.BeginForm():异 ...