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的更多相关文章
-
分布式系统监视zabbix讲解七之分布式监控--技术流ken
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
-
分布式系统监视zabbix讲解五之web监控--技术流ken
Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...
-
zabbix实现QQ邮件报警通知--技术流ken
前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...
-
网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken
前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...
-
分布式系统监视zabbix讲解十之监控tomcat--技术流ken
前言 在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数 ...
-
Python系列:一、Python概述与环境安装--技术流ken
Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...
-
MySQL系列详解一:MySQL&;&;多实例安装-技术流ken
简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储.更新和存取信息更加容易.MySQL是一个客户机/服务器结构的实现 ...
-
分布式系统监视zabbix讲解二之邮件报警通知--技术流ken
概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...
-
zabbix实现百台服务器的自动化监控--技术流ken
前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...
随机推荐
-
简单的ATM,见笑见笑
#include<stdio.h>#include<string.h> void main(){ char a[4]={0}; char e[]="9527&quo ...
-
Android怎么让一个service开机自动启动
1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED,这个Action只会发出一次. 2. ...
-
ajax获取数据中文显示问号
技术交流群:816227112 问题: 解决 : 在 response.getWriter() 之前加上 response.setContentType("text/html;charset ...
-
【二】Spring Cloud 入门
官网 版本号: SpringCloud中文网:https://springcloud.cc SpringCloud中文社区:http://springcloud.cn 以下代码就是Maven父子工程, ...
-
DOM中表格的操作方法总结
DOM中表格的操作方法总结 <table/>元素的方法如下: caption:指向<caption/>元素(如果存在): tBodies:<tbody/>元素的集合 ...
-
Cognos访问权限之让拒绝更友善
关于cognos的访问权限之前我也做了不少总结,但是由于时间关系加上用户也只要实现功能就好,我们做的效果就是像很多人一样,就那样就好了.但是有很多事情,只要你肯动脑筋,你会发现,你还可以做的更好,下面 ...
-
[Training Video - 6] [File Reading] Making a Jar file with eclispe, Importing custom jars in SoapUI
Code example : package com.file.properties; import java.io.FileInputStream; import java.util.Propert ...
-
Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动
问题:Ubuntu 10.10, 11.04, 11.10这三个版本无法从优盘启动 解决:从U盘启动安装的时候,会卡住不动.搞定办法相当简单,修改syslinux/syslinuxfg文件:将defa ...
-
解剖Nginx&#183;模块开发篇(2)ngx_http_hello_world_module 模块基本结构定义
elloWorld 是一个典型的 location 模块.什么是 location 模块?在 Nginx 中,根据作用域,有 main 模块.server 模块.location 模块. 1 模块定义 ...
-
POJ 1160 Post Office(DP+经典预处理)
题目链接:http://poj.org/problem?id=1160 题目大意:在v个村庄中建立p个邮局,求所有村庄到它最近的邮局的距离和,村庄在一条直线上,邮局建在村庄上. 解题思路:设dp[i] ...