zabbix的简介已经安装

1.zabbix的工作原理

一、什么是zabbix及优缺点(对比cacti和nagios)
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
agent端:主机通过安装agent方式采集数据。
server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过php+apache在web前端展示.
zabbix = cacti + nagios
优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
二、监控功能
主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制
监控主机zabbix有专用的agent,可以监控Linux,Windows,FreeBSD等 。
监控网络设备zabbix通过SNMP,ssh(不多用)
可监控对象
设备:服务器,路由器,交换机
软件:OS,网络,应用程序
主机性能指标监控
故障监控: down机,服务不可用,主机不可达
二、工作原理
一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。

三、zabbix的组件及进程

重要组件
zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
注:zabbix node也是 zabbix server的一种 。
常见进程
默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
zabbix_agentd:
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

四、zabbix监控环境中基本概念
1、主机(host):要监控的网络设备,可由IP或DNS名称指定;
2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
3、监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
4、触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
5、事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
6、动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
7、报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
8、媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
9、通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
12、应用(application):一组item的集合;
13、web场景(web scennario):用于检测web站点可用性的一个活多个HTTP请求;
14、前端(frontend):Zabbix的web接口;

五、zabbix的监控架构
在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构: server-client 、master-node-client、server-proxy-client三种 。
1、server-client架构
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
2、server-proxy-client架构
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
3、master-node-client架构
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。


zabbix的搭建过程

1.Zabbix是一个基于Web界面企业及开源监控套件
1.1具备功能
主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表图表绘制
1.2监测对象
Linux 服务器 、Windows服务器、路由器、交换机等网络设备
1.3官方网站是http://www.zabbix.com
2. Zabbix重要组件
Zabbix Server、 Database storage、Web interface、 Pxory、 Agent

3.Zabbix进程
zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server、zabbix_java_gateway

实验环境:gns与vmware桥接实验
1.gns
1台交换机 sw1
vlan 1 : 192.168.10.100

  1. 2台linux服务器+1台windows服务器

2.1 linux-1 centos7.4 zabbix监控服务器
vmnet1 192.168.10.1

2.2 linux-2 centos7.4 被监控端
vmnet1 192.168.10.2

2.3 windows7 被监控端
vmnet1 192.168.10.3

实验步骤:
一、zabbix服务器 192.168.10.1

1.安装数据库—实现LAMP环境
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。

开发这个分支的原因是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

[root@localhost ~]# yum -y install mariadb-server mariadb

[root@localhost ~]# systemctl start mariadb

[root@localhost ~]# systemctl stop mariadb

[root@localhost ~]# systemctl enable mariadb

[root@localhost ~]# systemctl restart mariadb

[root@localhost ~]# netstat -anpt|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1628/mysqld

[root@localhost ~]# mysqladmin -u root password 123

[root@localhost ~]# mysql -u root -p123

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server

Copyright © 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
±-------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> quit
Bye

  1. 安装zabbix(yum方式安装)
    ##zabbix安装时会有很多依赖包(包含httpd和php相关软件包),所以无需再安装httpd和php

##zabbix软件包需要去zabbix官网下载

创建本地yum源
[root@localhost ~]# which createrepo

[root@localhost ~]# mkdir /other

上传zabbix相关软件到此目录

[root@localhost other]# ll /other/zabbix*

-rw-r–r-- 1 root root 361808 10月 7 19:02 /other/zabbix-agent-3.4.1-1.el7.x86_64.rpm
-rw-r–r-- 1 root root 2046420 10月 7 19:02 /other/zabbix-server-mysql-3.4.1-1.el7.x86_64.rpm
-rw-r–r-- 1 root root 2637704 10月 7 19:02 /other/zabbix-web-3.4.1-1.el7.noarch.rpm
-rw-r–r-- 1 root root 6088 10月 7 19:02 /other/zabbix-web-mysql-3.4.1-1.el7.noarch.rpm

[root@localhost other]# vim /etc/yum.repos.d/local.repo

[local]
name=centos7.4
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

[other]
name=zabbix
baseurl=file:///other
enabled=1
gpgcheck=0

创建软件数据库目录
[root@localhost other]# createrepo /other

[root@localhost ~]# yum makecache

已加载插件:fastestmirror
local | 3.6 kB 00:00
other | 2.9 kB 00:00
(1/5): other/filelists_db | 55 kB 00:00
(2/5): other/other_db | 29 kB 00:00
(3/5): other/primary_db | 65 kB 00:00
(4/5): local/other_db | 1.2 MB 00:00
(5/5): local/filelists_db | 3.1 MB 00:00
Loading mirror speeds from cached hostfile
元数据缓存已建立

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

##zabbix web需要数据库。在mariadb中创建数据库zabbix,授权用户zabbix管理,增强安全性。

[root@localhost ~]# mysql -u root -p123

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘123123’;

MariaDB [(none)]> exit

导入数据库脚本
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz |mysql -uzabbix -p123123 zabbix

  1. 检查和编辑配置文件
    ##server配置文件 /etc/zabbix/zabbix_server.conf
    ##指定数据库名称、用户、密码
    [root@localhost ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf

91
DBHost=localhost
101 DBName=zabbix
117 DBUser=zabbix
125 DBPassword=123123

##agent配置文件 /usr/local/etc/zabbix_agentd.conf,指定server的ip地址(每台agent主机都要配置,本地服务器中不做修改)

[root@localhost ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf

客户端被动等待指定服务器来查询数据

97 Server=127.0.0.1

##客户端主动提交数据到指定服务器
138 ServerActive=127.0.0.1
149 Hostname=Zabbix server

启动server、agent、httpd
[root@localhost ~]# systemctl start zabbix-server

[root@localhost ~]# systemctl enable zabbix-server

[root@localhost ~]# systemctl start zabbix-agent

[root@localhost ~]# systemctl enable zabbix-agent

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl enable httpd

[root@localhost ~]# netstat -anpt|grep zabbix

tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 16302/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16216/zabbix_server
tcp6 0 0 :::10050 :: LISTEN 16302/zabbix_agentd
tcp6 0 0 :::10051 :: LISTEN 16216/zabbix_server

[root@localhost ~]# netstat -anpt|grep httpd

tcp6 0 0 :::80 :: LISTEN 16334/httpd

4.安装zabbix web接口
1)编辑apache服务针对zabbix的前端配置为/etc/httpd/conf.d/zabbix.conf 设置时区与当前系统时区一致

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf

19 php_value date.timezone Asia/Shanghai

[root@localhost ~]# systemctl restart httpd

2)浏览器 http://192.168.10.1/zabbix

  • 系统环境检测:确保软件都符合要求
  • 数据库连接界面:数据库名称、用户、密码(123123)

*监控平台信息
host:localhost
port:10051
name:zabbix监控平台

*返回汇总信息,确认无误

*登录界面:用户: Admin (大写A) 密码:zabbix

3)web平台基本配置
3-1 修改初始密码
** Administration—users–admin—change password
@@ 修改密码 123123
@@ language :中文支持 Chinese(zh_CN)

** update提交—刷新即可

** 用户界面可以创建新用户

3-2 修改中文乱码----中文显示时,有可能出现乱码现象。主要由字体导致

192.168.10.1
可下载标准中文字体(simkai.ttf),上传到服务的文档根目录
[root@localhost ~]# cp simkai.ttf /usr/share/zabbix/fonts/

[root@localhost ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf simkai.ttf

##将graphfont更改为simkai,刷新界面即可
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php

47 define(‘ZBX_GRAPH_FONT_NAME’, ‘simkai’); // font fil e name

二、被监控端

  1. 交换机 sw1

1)准备命令
en
conf t
no ip domain-lo
line con 0
exec-t 0 0
logg syn
exit

配置管理ip

int vlan 1
ip add 192.168.10.100 255.255.255.0
no sh
exit
do sh ip int b

开启snmp,设置共同体的值

##设置被服务器轮询的只读共同体centos
snmp-server community centos ro

##允许发送trap消息
snmp-server enable traps


在GNS3下面配置snmp的时候出现了一下错误:
cannot enable both sham-link state-change interface traps
。。。
经过网上搜索,发现GNS下面都有这个问题,于是可以采用如下方法来启动:
snmp-server enable traps ospf cicso-specific state-change shamlink interface-old
这样就可以了。

##设置发送trap消息的共同体
snmp-server host 192.168.10.1 centos

2)登录zabbix web
(1)配置—主机群组—创建主机群组—添加:网络设备

(2)配置–主机–创建主机—添加:switch
@@添加群组:网络设备
@@ 移除:agent代理程序的接口
@@添加snmp接口:192.168.10.100
(3)模板–选择—Template Module Generic SNMPv1–选择(链接指示器)—添加
(4)宏—继承以及主机宏–{$SNMP_COMMUNITY} 更改值public为centos—添加

验证:主机列表中switch为绿色

(5)查看图形显示
@@switch—图形—创建图形—监控项—添加—添加与硬件资源相关的选项(测试用)–添加

@@查看图形报表:监测中---图形---网络设备---switch主机

2.监控 linux服务器192.168.10.2 --agent方式

[root@localhost ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm

[root@localhost ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf

95 Server=192.168.10.1
136 ServerActive=192.168.10.1

##主机名必须与zabbixweb上配置一致,否则主动监控无法正常工作
147 Hostname=linux-2

[root@localhost ~]# systemctl start zabbix-agent.service

[root@localhost ~]# systemctl enable zabbix-agent.service

[root@localhost ~]# netstat -anpt|grep “agent”
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 14892/zabbix_agentd
tcp6 0 0 :::10050 :: LISTEN 14892/zabbix_agentd

2.2 zabbix web界面

1)配置—主机—创建主机
(1)主机名:linux-2
(2)群组:linux servers
(3)agent代理接口:192.168.10.2—添加
2)模板–链接—选择—Template OS Linux—添加

3)主机列表中显示为绿色,可以和交换机操作一样,然后查看图形

3.被监控端 win7 192.168.10.3
1)新建文件夹 c:\zabbix
2)把相关软件64位的客户端程序和conf文件复制到zabbix
3)修改配置文件zabbix_agentd.win.conf
Server=192.168.10.1
ServerActive=192.168.10.1
Hostname=win-1

4)cmd命令安装
-c 指定配置文件
-i 安装
-s 启动
-x 停止
-d 卸载

C:\Users\Administrator>cd c:\zabbix

##安装agent
c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -i

zabbix_agentd.exe [788]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [788]: event source [Zabbix Agent] installed successfully

指定agent配置文件并启动
c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -s

zabbix_agentd.exe [408]: service [Zabbix Agent] started successfully

3.2 zabbix web界面

1)配置–主机—创建主机
主机名称:win-1
新的群组:windows servers
agent代理:192.168.10.3–添加
2)模板–链接选择— Template OS Windows—添加

4.自定义监控项目—监控linux-2的httpd服务

4.1 被监控端192.168.10.2

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# mkdir /etc/zabbix/zabbix_scripts

[root@localhost ~]# vim /etc/zabbix/zabbix_scripts/check_httpd.sh

#!/bin/bash
result=$(ps -ef | grep httpd | grep -v grep)

if [ -n “$result” ]
then
echo ‘1’
else
echo ‘0’
fi

[root@localhost ~]# chmod +x /etc/zabbix/zabbix_scripts/check_httpd.sh

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf

284 UnsafeUserParameters=1

[root@localhost ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@localhost zabbix_agentd.d]# ls

userparameter_mysql.conf

[root@localhost zabbix_agentd.d]# vim userparameter_httpd.conf

UserParameter=check_httpd,sh /etc/zabbix/zabbix_scripts/check_httpd
.sh

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

4.2 zabbix web监控平台

1)配置–主机–linux-2—监控项—创建监控项
@@名称:httpd进程监控
@@类型:zabbix客户端
@@键值:check_httpd
@@主机接口:192.168.10.2:10050

2)验证:
监测中–最新数据—查看是否有httpd进程监控的图形

你可能感兴趣的:(zabbix的简介已经安装)