分布式系统监视zabbix讲解一技术流ken

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配置文件。

[[email protected] ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm

2.安装Zabbix部署包

安装Zabbix部署包。

[[email protected] ~]# yum install zabbix-server-mysql zabbix-web-mysql -y

3.安装Zabbix Agent

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

[[email protected] ~]# yum install zabbix-agent -y

4.安装初始化数据库

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

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

[[email protected] ~]# 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.22
/usr/share/doc/zabbix-server-mysql-3.0.22/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.0.22/COPYING
/usr/share/doc/zabbix-server-mysql-3.0.22/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.0.22/NEWS
/usr/share/doc/zabbix-server-mysql-3.0.22/README
/usr/share/doc/zabbix-server-mysql-3.0.22/create.sql.gz  ##解压这个yasuobao
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

复制到家目录下,解压

[[email protected] ~]# cp /usr/share/doc/zabbix-server-mysql-3.0.22/create.sql.gz ./
[[email protected] ~]# ls
anaconda-ks.cfg  create.sql.gz  ks-pre.log  original-ks.cfg
[[email protected] ~]# gunzip create.sql.gz 

导入到数据库

[email protected]:mysql3306.sock [zabbix]>create database zabbix;
[email protected]:mysql3306.sock [zabbix]>use zabbix;
[email protected]:mysql3306.sock [zabbix]>source /root/create.sql
r[email protected]:mysql3306.sock [zabbix]>grant all on *.* to [email protected]‘localhost‘ identified by ‘123‘;
[email protected]:mysql3306.sock [zabbix]>flush privileges;

5.启动apache服务

[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# ss -tnl | grep 80
LISTEN     0      128         :::80                      :::*      

6.通过浏览访问zabbix

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

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0

点击下一步

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

[[email protected] ~]# vim /etc/httpd/conf.d/zabbix.conf
1 #
  2 # Zabbix monitoring system php web frontend
  3 #
  4
  5 Alias /zabbix /usr/share/zabbix
  6
  7 <Directory "/usr/share/zabbix">
  8     Options FollowSymLinks
  9     AllowOverride None
 10     Require all granted
 11
 12     <IfModule mod_php5.c>
 13         php_value max_execution_time 300
 14         php_value memory_limit 128M
 15         php_value post_max_size 16M
 16         php_value upload_max_filesize 2M
 17         php_value max_input_time 300
 18         php_value max_input_vars 10000
 19         php_value always_populate_raw_post_data -1
 20         php_value date.timezone Asia/Shanghai   ##时区修改为亚洲/上海
 21     </IfModule>
 22 </Directory>
 23
 24 <Directory "/usr/share/zabbix/conf">
 25     Require all denied
 26 </Directory>
 27
 28 <Directory "/usr/share/zabbix/app">
 29     Require all denied
...
[[email protected] ~]# 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

[[email protected] ~]# vim /etc/my.cnf
#my.cnf
[client]
port            = 3306
#socket          = /tmp/mysql3306.sock
socket          = /var/lib/mysql/mysql.sock

[mysql]
prompt="\\[email protected]\\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 = 3306
#socket = /tmp/mysql3306.sock
socket          = /var/lib/mysql/mysql.sock
event_scheduler = 0

tmpdir = /data/mysql/mysql3306/tmp
#timeout
interactive_timeout = 300
wait_timeout = 300

#character set
character-set-server = utf8...

[[email protected] ~]# mkdir /var/lib/mysql -p
[[email protected] ~]# chown -R mysql.mysql /var/lib/mysql

[[email protected] ~]# pkill msyqld
[[email protected] ~]# mysqld &
[2] 2272
[[email protected] ~]# ss -tnl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN     0      128           *:111                       *:*
LISTEN     0      128           *:22                        *:*
LISTEN     0      70           :::3306                     :::*
LISTEN     0      128          :::111                      :::*
LISTEN     0      128          :::80                       :::*
LISTEN     0      128          :::22                       :::*   

再次网站刷新页面

点击下一步

点击下一步

点击完成

输入用户名Admin 密码zabbix

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

zabbix启动

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

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
02 #
103 # Mandatory: no
104 # Default:
105 # DBUser=
106
107 DBUser=zabbix
108
109 ### Option: DBPassword
110 #       Database password. Ignored for SQLite.
111 #       Comment this line if no password is used.
112 #
113 # Mandatory: no
114 # Default:
115 # DBPassword=
116 DBPassword=123  ##输入你的数据库密码,仅仅修改这一处即可
117
118 ### Option: DBSocket
119 #       Path to MySQL socket.
120 #
121 # Mandatory: no
122 # Default:
123 # DBSocket=/tmp/mysql.sock
..
[[email protected] ~]# systemctl restart zabbix-server   ##启动zabbix服务器端

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

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

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

[[email protected] ~]# systemctl restart zabbix-agent

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

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

原文地址:https://www.cnblogs.com/kenken2018/p/9892708.html

时间: 2024-10-10 08:43:58

分布式系统监视zabbix讲解一技术流ken的相关文章

分布式系统监视zabbix讲解四之可视化--技术流ken

图形 概述 随着大量的监控数据被采集到Zabbix中,如果用户可以以可视化的表现形式来查看发生了什么事情,那么和仅仅只有数字的表现形式比起来则更加轻松. 以下是进行图形设置的地方.图形可以一目了然地掌握数据的流向并关联问题,发现某件事情开始,或在某件事情可能变成问题事件时进行报告. Zabbix为用户提供了如下几种图形: 监控项数据的内置简单图形simple graphs; 可能创建更发杂的自定义图形custmomised graphs; 在最新数据中,可以利用特定图形ad-hoc graphs

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

前言 在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据 安装tomcat 准备 关闭防火墙和selinux [[email protected] ~]# systemctl stop firewalld && setenforce 0 第一步:首先需要准备下面的两个包,可在网上下载 第二步:上传至linux,移动到/usr/local下面并解压

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

前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客就把我告诉他的解决方案写出来,供大家以后参考. 实现自动化全网监控,需要用到脚本,以及zabbix的自动注册或者自动发现的功能.以前也写过一篇关于两者的博客<分布式系统监视zabbix讲解八之自动发现/自动注册--技术流ken>,但是内容可能没有那么详尽,本篇博客将详细完整的演示如何使用zabbix实现百台服务器的自动化监控. zabbix自动注册 活动的Zabbix a

zabbix实现QQ邮件报警通知(最详细)--技术流ken

前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤. zabbix监控端添加客户端 关于如何实现添加主机这里就不再赘述,相信大家对于这个已经很熟练了,大家也可以参考我的博客<分布式系统监视zabbix讲解一之zabbix安装--技术流ken> 第一步:添加监控主机 无需添加模版,我们来自定义监控项 第二步:添加监控点 点击你添加的监控项,创建一个

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

前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken>下面是项目的一些简单介绍. WEB集群项目简介 随着网站访问量的激增,势必会导致网站的负载增加,现需求搭载一套高性能,高负载,高可用的网站集群架构以保障网站的持续.高效.安全.稳定的运行. 针对以上需求,我们采用了如下的技术: 使用负载均衡技术来实现网站请求的调度分发,减小后端服务器

nginx实现反向代理、负载均衡-技术流ken

1.简介 本篇博文是<nginx实现动态/静态文件缓存-技术流ken>的二部曲.将详细介绍nginx如何实现反向代理以及负载均衡技术,并辅以实战案例. 反向代理--"反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器." 负载均衡--"网络专用术语,负载均衡建立在现有网络结构之

Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站. 如果大家可以熟练掌握以上内容,势必会在工作中减轻不小的工作量. 本篇博客将再次使用这四个工具结合freestyle和pipeline来完成动态网站的部署. 为了拓宽知识点,本篇博客将使用jenkins的两种常用方法来进行部署,如果你对pipeline还不熟悉,请参考我之前的博客<Jenki

五分钟彻底学会iptables防火墙--技术流ken

iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置. iptables 组件是一种工具,也称为用户空间(userspace),它使插入.修改和除去信息包过滤表中的规则变得容易.除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它.

cobbler批量安装系统使用详解-技术流ken

1.前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 2.系统环境准备及其下载cobbler 一.系统环境 系统版本:CentOS release 6.7 (Final) 内网IP:192.168.232.7/24    #用来对内通信,提供cobbler服务 外网IP:10.220.5.166/24      #连接外网 二. 关闭安全服务 [[email protected] ~