zabbix概述

Zabbix是什么

Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。

Zabbix 是一个企业级的分布式开源监控方案。

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。

Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。

Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。

zabbix定义

在本节中,你可以了解一些Zabbix常用术语的含义。

主机 (host)

- 一台你想监控的网络设备,用IP或域名表示

主机组 (host group)

- 主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。

监控项 (item)

- 你想要接收的主机的特定数据,一个度量数据。

触发器 (trigger)

- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。

事件 (event)

- 单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册

异常 (problem)

- 一个处在“异常”状态的触发器

动作 (action)

- 一个对事件做出反应的预定义的操作。

一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成

升级 (escalation)

- 一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列

媒介 (media)

- 发送告警通知的手段;告警通知的途径

通知 (notification)

- 利用已选择的媒体途径把跟事件相关的信息发送给用户

远程命令 (remote command)

- 一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令

模版 (template)

- 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合

模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。

应用 (application)

- 一组监控项组成的逻辑分组

web 场景 (web scenario)

- 利用一个或多个HTTP请求来检查网站的可用性

前端 (frontend)

- Zabbix提供的web界面

Zabbix API

- Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务

Zabbix server

- Zabbix软件实现监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等

Zabbix agent

- 一个部署在监控对象上的,能够主动监控本地资源和应用的程序

Zabbix proxy

- 一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序

zabbix部署

1.安装源码库配置部署包

安装源码库配置部署包。这个部署包包含了yum配置文件。

 rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

2.安装Zabbix部署包

安装Zabbix部署包。

[root@ken ~]# yum install zabbix-server-mysql zabbix-web-mysql -y

Error: Package: zabbix-web-3.4.15-1.el7.noarch (zabbix)
Requires: php-bcmath
Error: Package: zabbix-web-3.4.15-1.el7.noarch (zabbix)
Requires: php-mbstring

如果报上面的错误,需要执行这条命令,使用163的源 wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo

3.安装Zabbix Agent

agent客户端,你想要监控那台服务器就安装这个软件并启动,我这里演示就和服务器端安装在了一起,即服务器端自己监控自己。

[root@ken ~]# yum install zabbix-agent -y

4.安装初始化数据库

在MySQL上安装Zabbix数据库和用户。在安装完zabbix-server-mysql已经自带了这个压缩包。

只要解压,然后导入初始架构(Schema)和数据即可。

[root@ken ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.0.
/usr/share/doc/zabbix-server-mysql-3.0./AUTHORS
/usr/share/doc/zabbix-server-mysql-3.0./COPYING
/usr/share/doc/zabbix-server-mysql-3.0./ChangeLog
/usr/share/doc/zabbix-server-mysql-3.0./NEWS
/usr/share/doc/zabbix-server-mysql-3.0./README
/usr/share/doc/zabbix-server-mysql-3.0./create.sql.gz ##解压这个yasuobao
/usr/share/man/man8/zabbix_server..gz
/var/log/zabbix
/var/run/zabbix

复制到家目录下,解压

[root@ken ~]# cp /usr/share/doc/zabbix-server-mysql-3.0./create.sql.gz ./
[root@ken ~]# ls
anaconda-ks.cfg create.sql.gz ks-pre.log original-ks.cfg
[root@ken ~]# gunzip create.sql.gz

导入到数据库

root@localhost:mysql3306.sock [zabbix]>create database zabbix;
root@localhost:mysql3306.sock [zabbix]>use zabbix;
root@localhost:mysql3306.sock [zabbix]>source /root/create.sql
root@localhost:mysql3306.sock [zabbix]>grant all on *.* to zabbix@'localhost' identified by '';
root@localhost:mysql3306.sock [zabbix]>flush privileges;

5.启动apache服务

[root@ken ~]# systemctl restart httpd
[root@ken ~]# ss -tnl | grep
LISTEN ::: :::*

6.通过浏览访问zabbix

输入ip/zabbix即可访问,访问前务必先关闭selinux以及防火墙

[root@ken ~]# systemctl stop firewalld
[root@ken ~]# setenforce

点击下一步

这里报了时区的错误,需要修改一下配置文件

[root@ken ~]# vim /etc/httpd/conf.d/zabbix.conf
#
# Zabbix monitoring system php web frontend
# Alias /zabbix /usr/share/zabbix <Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted <IfModule mod_php5.c>
php_value max_execution_time
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time
php_value max_input_vars
php_value always_populate_raw_post_data -
php_value date.timezone Asia/Shanghai ##时区修改为亚洲/上海
</IfModule>
</Directory> <Directory "/usr/share/zabbix/conf">
Require all denied
</Directory> <Directory "/usr/share/zabbix/app">
Require all denied
...
[root@ken ~]# systemctl restart httpd ##重启APACHE服务

再次刷新页面

确认无误之后,点击下一步

输入刚才创建的数据库zabbix,以及创建的用户zabbix及密码,然后点击下一步

这里又报了一个无法通过sock文件,连接到数据库的错误。

这里补充一下造成这个错误的原因主要有如下几点:

1.防火墙,selinux没有关

2.配置文件的sock文件没有在/var/lib/mysql/下

3.对于/var/lib/mysql/,没有权限读取,需要修改为chown -R mysql.mysql /var/lib/mysql

4.zabbix用户授权错误,是查看是授予的localhost权限还是%权限,即可以在哪个主机上面登录

5.mysql是否正常启动

主要会有如上这些错误,大家在平时搭建的时候可以逐一进行排查。

查看一下我的配置文件,sock文件是在/tmp下需要修改为/var/lib/mysql/mysql.sock.并重新启动mysql

[root@ken ~]# vim /etc/my.cnf
#my.cnf
[client]
port =
#socket = /tmp/mysql3306.sock
socket = /var/lib/mysql/mysql.sock [mysql]
prompt="\\u@\\h:\\p [\\d]>"
#pager="less -i -n -S"
#tee=/opt/mysql/query.log
no-auto-rehash [mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
port =
#socket = /tmp/mysql3306.sock
socket = /var/lib/mysql/mysql.sock
event_scheduler = tmpdir = /data/mysql/mysql3306/tmp
#timeout
interactive_timeout =
wait_timeout = #character set
character-set-server = utf8
...

[root@ken ~]# mkdir /var/lib/mysql -p
[root@ken ~]# chown -R mysql.mysql /var/lib/mysql

[root@ken ~]# pkill msyqld
[root@ken ~]# mysqld &
[]
[root@ken ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN *: *:*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*
LISTEN ::: :::*

再次网站刷新页面

点击下一步

点击下一步

点击完成

输入用户名Admin 密码zabbix

至此就已经安装并启动成功了。

zabbix启动

zabbix已经安装完后,现在就可以来启动了。

[root@ken ~]# vim /etc/zabbix/zabbix_server.conf
#
# Mandatory: no
# Default:
# DBUser= DBUser=zabbix ### Option: DBPassword
# Database password. Ignored for SQLite.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=123 ##输入你的数据库密码,仅仅修改这一处即可 ### Option: DBSocket
# Path to MySQL socket.
#
# Mandatory: no
# Default:
# DBSocket=/tmp/mysql.sock
..
[root@ken ~]# systemctl restart zabbix-server ##启动zabbix服务器端

现在在页面查看zabbix启动状态,发现zabbix已经在运行状态了。

点击configuretion--hosts-disabled启动被监控节点

执行如下命令启动被监控节点

[root@ken ~]# systemctl restart zabbix-agent

再次刷新页面之后发现enable后面的ZBX已经变成绿色,表示已经启动。

点击monitoring--latest data--hosts--select选择刚才的hosts即可看到下面监控输出的内容

分布式系统监视zabbix讲解一之zabbix安装--技术流ken的更多相关文章

  1. 分布式系统监视zabbix讲解七之分布式监控--技术流ken

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...

  2. 分布式系统监视zabbix讲解五之web监控--技术流ken

    Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...

  3. zabbix实现QQ邮件报警通知--技术流ken

    前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...

  4. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  5. 分布式系统监视zabbix讲解十之监控tomcat--技术流ken

    前言 在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数 ...

  6. Python系列:一、Python概述与环境安装--技术流ken

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

  7. MySQL系列详解一:MySQL&&多实例安装-技术流ken

    简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储.更新和存取信息更加容易.MySQL是一个客户机/服务器结构的实现 ...

  8. 分布式系统监视zabbix讲解二之邮件报警通知--技术流ken

    概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...

  9. zabbix实现百台服务器的自动化监控--技术流ken

    前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...

随机推荐

  1. Linux挂载NAS 网络附属存储

    在工作中经常听到NAS,比如做数据交换,将数据从DB2数据库,导入到ORACLE数据库,采用BCP的方式,首先将DB2导出为文件,再从文件导入到ORACLE.那么中间需要一个很大的存储空间来保存从DB ...

  2. 京东Alpha平台开发笔记系列(一)

    2018京东Alpha开发者大赛是由京东智能面向广大开发者举办的大型语音技能开发比赛,参赛者将通过Skill开放平台开发技能,在实现开发者自身价值的同时,为京东智能活跃用户提供更优质.更便捷.更智能的 ...

  3. 洛谷 质因子分 p2043

    #include <iostream>#include <algorithm>#include <cstring>using namespace std; cons ...

  4. 利用Python+163邮箱授权码发送带附件的邮件

    背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...

  5. 利用Qt Designer 进行 空间提升propomotion 的时候异常: NO such file or directory

    1. 因为在提升的时候,只设置了 类名,以及文件名,但是没有给定Qt 的uic 的指定搜索路径,因此报错 在生成的ui_xxxx.h文件必然找不到这个文件. 如下图: 2. 解决方法 在项目的属性中: ...

  6. easyUI分页实现加搜索功能

    前台页面: js代码: ps:pagination为true时会在table下面加上easyUI的分页. load函数会将查询值传给datagrid并传给后台重新加载. DAO.xml为: 后台代码实 ...

  7. 在CentOS 7上安装和使用GlusterFS

    GlusterFS aggregates various storage servers over Ethernet or Infiniband RDMA interconnect into one ...

  8. C++ 引用、构造函数、移动语义

    1.引用 C++中的引用主要用作函数的形参,接近于const指针,必须在创建时初始化. 以Person类为例,如下: Person p;                          //调用P的 ...

  9. 1.1.5 PROB Friday the Thirteenth

    Friday the Thirteenth Is Friday the 13th really an unusual event? That is, does the 13th of the mont ...

  10. 基于TensorFlow的深度学习系列教程 1——Hello World!

    最近看到一份不错的深度学习资源--Stanford中的CS20SI:<TensorFlow for Deep Learning Research>,正好跟着学习一下TensorFlow的基 ...