Linux监控软件之 Zabbix

一、简介



  Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。

官方网站:http://www.zabbix.com

官方文档:http://www.zabbix.com/documentation/2.0/manual/quickstart

1、功能

  具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。

2、说明

  Server:指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。即Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下。

  Agent:指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。目前已有的agent基本支持市面常见的OS,包含Linux、Solaris、Sun、windows等。

  SNMP:也是agent的一种,指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。

  IPMI:Agent的另一种方式,主要应用于设备的物理性能监控,例如设备的温度、风扇的转速等。

3、Zabbix架构

  Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。

二、环境说明


Hostname
IP Software
server 192.168.0.115 apache、mysql、mhp、zabbix20、zabbix20-agent、zabbix20-server、zabbix20-server-mysql、zabbix20-web、zabbix20-web-mysql、net-snmp-devel
client 192.168.0.114 zabbix20-agent

关闭防火墙:iptables -F,SELINUX=disabled

三、安装配置



1、服务端安装zabbix

1)安装epel的扩展源

[[email protected] ~]# yum install -y epel-release

2)安装lamp环境

[[email protected] ~]# yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring

3)安装zabbix服务

[[email protected] ~]# yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql net-snmp-devel

2、服务端配置数据库

1)修改mysql配置文件

[[email protected] ~]# vim /etc/my.cnf        //修改或增加如下内容

[mysql]
default-character-set = utf8

[mysqld]
character_set_server = utf8

2)启动httpd和mysqld服务

[[email protected] ~]# /etc/init.d/httpd start

[[email protected] ~]# /etc/init.d/mysqld start

3)建数据库以及导入数据

[[email protected] ~]# mysql -uroot  -e  "create database zabbix"        //创建库名为:zabbix

[[email protected] ~]# mysql -uroot -e "grant all on *.* to ‘zabbix‘@‘localhost‘ identified by ‘zabbix‘;"

//新建一个用户为:zabbix,密码为:zabbix

[[email protected] ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/schema.sql

[[email protected] ~]# mysql -uroot -p --default-character-set=utf8 zabbix < /usr/share/zabbix-mysql/images.sql

[[email protected] ~]# mysql -uroot -p --default-character-set=utf8  zabbix < /usr/share/zabbix-mysql/data.sql

3、服务端配置zabbix

1)编辑zabbix服务配置文件

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf            //找到这三项


DBName=zabbix                           //数据库名

DBUser=zabbix                              //用户名

DBPassword=zabbix                      //用户密码

2)启动zabbix服务

[[email protected] ~]# /etc/init.d/zabbix-server start

[[email protected] ~]# /etc/init.d/zabbix-agent start

我们可以查看下zabbix-server和zabbix-agent是否启动起来:

[[email protected] ~]# ps aux | grep zabbix

也可以查看下zabbix-server和zabbix-agent监听的端口:

[[email protected] ~]# netstat -lnp | grep zabbix

4、网页上安装zabbix

1)浏览器输入: http://192.168.0.115/zabbix

说明:



这里最上面提示waring,说未设置timezone,下面我们设置timezone

[[email protected] ~]# vim /etc/php.ini           //找到添加一行

date.timezone=‘Asia/Chongqing‘

重启httpd服务

[[email protected] ~]# /etc/init.d/httpd restart

刷新页面后,waring提示消失。



2)接着点击next,会出现如下参数Fail。

我们编辑配置php.ini文件

[[email protected] ~]# vim /etc/php.ini                  //修改以下参数


post_max_size = 16M

max_execution_time = 300

max_input_time = 300

重启httpd服务

[[email protected] ~]# /etc/init.d/httpd restart

点击Retry,全部显示OK;

接着点击Next,输入账号密码后点击Test connection,显示OK;

3)点击Next,其他默认,只输入Name 为0.115(可以自定义);点next,再点next,最后点finish。
默认管理员账号为:admin,密码为:zabbix 。最后进入到网页服务端。

注意



这时可能会遇到“zabbix server is not running the information displayed may not be current”这样的错误:

解决思路:

1)需要编辑一下 /etc/zabbix/zabbix_server.conf ,配置DBUser, DBPassword

2)一定要关闭selinux

临时关闭:setenforce 0,立即生效

永久关闭:vim /etc/selinux/config,修改SELINUX=disabled,重启Linux才可生效



5、接入要监控的客户端主机

1)客户端安装zabbix20-agent

[[email protected] ~]# yum install zabbix20-agent

2)编辑配置文件

[[email protected] ~]# vim /etc/zabbix_agentd.conf


Server=192.168.0.115                                         //服务端IP

ServerActive=0.0.0.0:10050                                 //监听的端口

Hostname=tpp                                                    //自定义,但是要唯一

启动客户端

[[email protected] ~]# /etc/init.d/zabbix-agent start

3)在服务端执行命令

[[email protected] ~]# zabbix_get -s 192.168.0.114 -p10050 -k "system.hostname"

client                               //显示出了客户端的hostname,说明可以正常通信

4)在web界面下,点”configuration” --> “hosts” --> 右上角点”Create Host”

host name为:tpp  (自定义)

visible name为:tpp   (自定义)

groups:Linux servers

ip address 写入客户端ip:192.168.0.114

其他的默认即可。

配置监控项目模板:点“Templates”, 点 "add", 在弹出的小窗口中选择Template OS Linux, 然后点select, 最后点save

然后我们可以在 "Monitoring" --> "Latest data" 下查看到刚添加的Host "tpp",也可以查看各状态

注意:



若报错:Received empty response from Zabbix Agent at [192.168.0.115]. Assuming that agent dropped connection

可以查看客户端的/etc/zabbix_agentd.conf配置文件是否正确。



5)自定义templates
Zabbix自带了很多模板,模板中有很多监控项目,比如CPU、网卡、内存、进程等等。使用系统自带模板有点太多了,所以我们可以自定义模板。

点configuration 选择 templates,点右上角的create template --> Template name和Visible name  自定义,Groups 选择templates, 点save。

然后我们去挑选一些项目拷贝到该模板下:比如我们找到Template OS Linux

点一下items,选择我们想要的项目,然后在下面选择copy selected to … 然后点go ,Group 选择templates, 找到刚才我们自定义的templates,点copy,点configuration 选择 templates可以看到新建的templates中已经有刚刚我们copy的items了。

我们可以使用和上面相同的方法自定义拷贝Triggers(触发器 ),它用来设置告警的阀值,当然我们也可以自定义编辑它。

监控客户端网卡流量     http://www.apelearn.com/bbs/thread-8091-1-1.html

四、zabbix 配置邮件告警 



设置触发器的目的是为了让监控的服务实现告警, 那告警如何告呢, 下面我们来配置一下邮件告警。发邮件是服务器通过自己的 sendmail 服务发出的,有时候如果配置不合适或者服务没有启动,我们是发不出邮件的。

1、测试邮件服务

[[email protected] ~]# yum install -y sendmail

[[email protected] ~]# /etc/init.d/sendmail start

[[email protected] ~]# echo "test mail" |mail -s  "test" [email protected]

[[email protected]rver ~]# mailq

说明



"test mail"为邮件内容

"test"为主题

"[email protected]"为收件人

"mailq"是查看是否发送成功。

如果是虚拟机,很有可能是收不到邮件的,但如果是真机还是可以收到的,只不过很有可能在垃圾邮件箱里。除了sendmail 服务外,我们还可以用 postfix 服务发邮件。



2、配置邮件告警 

1) 配置报警脚本

[[email protected] ~]# mkdir -p /home/zabbix/bin                         //邮件告警脚本存放目录

[[email protected] ~]# vim /home/zabbix/bin/baojing.sh               //告警脚本,写入以下内容


#! /bin/bash

echo "$3" |/bin/mail -s "$2" $1                         //$3为邮件内容,$2为主题,$1为收件人

保存后,修改文件的权限

[[email protected] ~]# chmod +x /home/zabbix/bin/baojing.sh

2)修改zabbix_server配置文件

[[email protected] ~]# vim /etc/zabbix_server.conf             //修改如下内容


AlertScriptsPath=/home/zabbix/bin/                         //用户自定义的 media types 脚本

ExternalScripts=/home/zabbix/bin/                           //用户自定义的检查的脚本(item)

3)在浏览器配置

创建 mediea types:


"Administration" -->"Media types",点击右上角"Create Media Type"其中 Description 填"baojing" 或其它自定义名称,Type 选择"Script",Script name填"baojing.sh"然后点"Save"。

创建 user:


"Administration"--> "Users" 在右上角,选择"Users",点击"Create User", alias: test1,自定义 name 和 lastname password:123456;groups 选择 guests, 回到上面点一下 media -->type 选择 baojing,send to 写要发送邮件的邮箱,点 add, 最后点 save。

创建 action:


"configuration" --> actions,右上角"Create Actions", Name 自定义,我这里写"baojing",其他默认,然后点右侧的"Operations"下的"New"按钮,"Operation Type"选择"Send message",“Send to User groups”选择一个或多个要发送消息的用户组, Send to Users 选择我们之前新增的 test1, “Send only to”选择 baojing , 点一下 add,最后点 save。

到这里我们的告警服务就配置完成了。

参考文章

zabbix历史记录乱码问题:http://caisangzi.blog.51cto.com/6387416/1313630

zabbix图形中乱码问题:http://www.apelearn.com/bbs/thread-8090-1-1.html

自定义脚本:http://www.linuxidc.com/Linux/2013-11/92476.htm

http://www.iyunv.com/thread-22959-1-1.html

http://waringid.blog.51cto.com/65148/955939/

http://www.linuxidc.com/Linux/2014-11/109909.htm

时间: 2024-08-08 11:19:02

Linux监控软件之 Zabbix的相关文章

企业级监控软件使用zabbix监控IOPS

01.在服务端创建zabbix组 configuration---Templates---create template---Template Linux  Disk IO===其中选择组为"Template" 在Template Linux Disk IO中创建Discovery rule: Name: Disk device  discovery Key: custom.vfs.dev.discovery Filter Macro{#DISK} [email protected] 

企业级监控软件使用zabbix key监控nginx status各种状态

因业务需要需要用zabbix来监控nginx status,具体是如下的做法: 1. 首先在nginx的配置文件中添加如下内容,需要注意的是nginx的文件格式,在allow中我们需要注意的是需要添加zabbix server的IP地址,不然无法采集到数据, 2. 重启nginx服务器查看nginx服务器是否能正常打开, Nginx status状态说明: Active connections: 35 对后端发起的活动链接数 server accepts handled requests 186

Linux监控系统之Zabbix

Linux监控系统之Zabbix Zabbix介绍 Zabbix是由 Zabbix 是由 Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态.整合了Catic和Nagios的特性. 使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料.Server 端基于 C语言.Web 管理端 frontend 则是基于 PHP

Linux监控平台(zabbix监控介绍,安装zabbix,解决忘记admin密码)

linux监控平台介绍 常见开源监控软件:cacti,nagios,zabbix,smokeping,open-falcon等等 cacti,smokeping偏向于基础监控,成图非常漂亮 cacti,nagios,zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti需要MySQL作为数据储存, agios不用存储历史数据,他注重服务或监控项的状态 zabbix会获取服务或者监控项目的数据,会把数据记录到数据库中,从而可以成图 open-falcon是小米公司开发的,开源

Linux监控平台介绍 zabbix监控介绍 安装zabbix 忘记Admin密码如何做

一.Linux监控平台介绍这几款软件都是需要PHP环境支持,使用Apache PHP或者NGINX的PHP都可以,nagios不需要使用mysql,cacti和zabbix是需要使用mysql的二.zabbix监控介绍zabbix监控流程图三.安装zabbix需要准备两台机器,一台作为zabbix-server服务端,一台作为zabbix-agent客户端[[email protected] ~]# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x8

65.常见开源监控软件、zabbix监控介绍、配置

一.常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后受到诸多大公司和运

【Zabbix】Linux监控软件安装与配置(三)

一.安装扩展源 [[email protected] ~]# rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm 二.安装LAMP环境 [[email protected] ~]# yum -y install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-gd php-mbstring 三.安装za

监控软件之一zabbix

zabbix zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. zabbix由2部分构成,zabbix server与可选组件zabbix agent. zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Li

Linux监控平台搭建-zabbix

zabbix监控介绍 C/S架构,基于C++开发,监控中心支持web界面配置和管理 单server节点可以支持上万台客户端 最新版本3.4,官方文档https://www.zabbix.com/manuals 5个组件 zabbix-server 监控中心,接收客户端上报信息,负责配置.统计.操作数据 数据存储 存放数据,比如mysql web界面 也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因 zabbix-proxy 可选组件,它可以代替zabbix-server的