Zabbix 部署分布式全网监控系统 ;

一 、 zabbix  简介  ;

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server 和 zabbix agent 与可选组件zabbix proxy 。
zabbix server 可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。


二  、zabbix  架构图-架构说明   ;

监控主机 ; 安装zabbix sever 程序和 zabbix agent 程序 

被监控主机;只需要安装 zabbix agent 程序 

zabbix agent 程序获取本机的所有信息,发送给 zabbix sever 端 

三 、 zabbix  特性大概了解    ;

数据收集
a)  可用性及性能检测
b)  支持 SNMP(trapping 及 polling)、IPMI、JMX 监控
c)  自定义检测
d)  自定义间隔收集收据
e)  server/proxy/agents 吸能

灵活的阀值定义
a)  允许灵活地自定义问题阀值,Zabbix 中称为触发器(trigger), 存储在后端数据库中

高级告警配置
a)  可以自定义告警升级(escalation)、接收者及告警方式
b)  告警信息可以配置并允许使用宏(macro)变量
c)  通过远程命令实行自动化动作(action)

实时绘图
a)  通过内置的绘图方法实现监控数据实时绘图

扩展的图形化显示
b)  允许自定义创建多监控项视图
c)  网络拓扑(network maps)
d)  自定义的面板(screen)和 slide shows,并允许在 dashboard 页面显示
e)  报告
f)  高等级(商业)监控资源

历史数据存储
a)  数据存储在数据库中
b)  历史数据可配置
c)  内置数据清理机制

配置简单
a)  主机通过添加监控设备方式添加
b)  一次配置,终生监控
c)  监控设备允许使用模板


模板使用
a)  模板中可以添加组监控
b)  模板允许继承


网络自动发现
a)  自动发现网络设备
b)  agent 自动注册
c)  自动发现文件系统、网卡设备、SNMP OID 等


快速的 web 接口
a)  web 前端采用 php 编写
b)  访问无障碍
c)  你想怎么做就能做么做
d)  审计日志


四 、zabbix 进程构成  ;

zabbix 进程组成结构,默认情况下 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,通常用于耗时比较长的 check,并且与 trapper 配合使用。

zabbix_server  ;
zabbix 服务端守护进程。zabbix_agentd、zabbix_get、等等的数据最终都是提交到 server 的。
备注:不是数据主动提交给 zabbix_server, 大多数情况下都是 server 主动去取数据。

zabbix_proxy ;
zabbix 代理守护进程。功能类似 server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交
到 server 里。一般跨机房、地区的环境需要用到 proxy。

zabbix_java_gateway ;
zabbix2.0 之后引入的一个功能。顾名思义:Java 网关,类似 agentd,但是只用于 Java 方面。需要特别注意的
是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者 proxy。

五  、zabbix  安装  ;

搭建环境 lamp

php 和 Apache 主要是为 zabbix 提供web 界面的 ,如果 服务器挂了不影响zabbix 正常监控,

因为 zabbix server 还在 ,只是 web 界面不能正常打开 ,mysql 千万不能出问题,如果出现问题

zabbix 也会出现问题,因为zabbix 需要实时往数据库里存数据,zabbix server 端只负责收集和写入数据,展示数据是WEB界面来执行的 


5.1 、 安装 HTTP  

     [root@m01 ~]# yum install httpd

5.2 、 安装MySQL 数据库 

    [root@m01 ~] # yum -y install mysql-server      

5.3 、安装 PHP 5.5  

 默认Base的php是5.3 ,但是 zabbix 3.0 要求php版本在5.4 以上
[root@m01 ~]# rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/webtatic-release-6-9.noarch.rpm
yum -y install php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath

注 ;如果系统里有 PHP 先把系统里的删除避免安装的时候出现错误 

   [root@m01 ~]# yum remove php*

5.4 、安装zabbix server 端 ;

  [root@m01 ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
  [root@m01 ~]# yum -y install zabbix-web zabbix-server-mysql zabbix-web-mysql 

已安装:
  php55w.x86_64 0:5.5.38-1.w6                            php55w-bcmath.x86_64 0:5.5.38-1.w6        php55w-common.x86_64 0:5.5.38-1.w6             
  php55w-devel.x86_64 0:5.5.38-1.w6                      php55w-gd.x86_64 0:5.5.38-1.w6            php55w-mbstring.x86_64 0:5.5.38-1.w6           
  php55w-mcrypt.x86_64 0:5.5.38-1.w6                     php55w-mysql.x86_64 0:5.5.38-1.w6         php55w-xml.x86_64 0:5.5.38-1.w6                
  wqy-microhei-fonts.noarch 0:0.2.0-0.14.beta.el6        zabbix-get.x86_64 0:3.0.9-1.el6           zabbix-java-gateway.x86_64 0:3.0.9-1.el6       
  zabbix-server-mysql.x86_64 0:3.0.9-1.el6               zabbix-web.noarch 0:3.0.9-1.el6           zabbix-web-mysql.noarch 0:3.0.9-1.el6          

作为依赖被安装:
  dejavu-fonts-common.noarch 0:2.33-1.el6  dejavu-sans-fonts.noarch 0:2.33-1.el6  fping.x86_64 0:2.4b2-16.el6      iksemel.x86_64 0:1.4-2.el6      
  libmcrypt.x86_64 0:2.5.8-9.el6           pcre-devel.x86_64 0:7.8-7.el6          php55w-cli.x86_64 0:5.5.38-1.w6  php55w-pdo.x86_64 0:5.5.38-1.w6 
  t1lib.x86_64 0:5.1.2-6.el6_2.1          

完毕!
 

========================至此服务端的安装完成开始配置并启动zabbix等服务 ======================

六 、 配置Zabbix服务端

 6.1 、 Apache 、HTTP  不需要配置

 6.2  、mysql配置
    \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf                     ---->> 备份一下 mysql 的配置文件 

    /etc/init.d/mysqld start                                                               ---->>  启动mysql 的服务 

mysql -uroot -e"create database zabbix character set utf8 collate utf8_bin;"            --->> 创建一个 zabbix 的数据库 
mysql -uroot -e"grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';"    --->>   创建用户zabbix  密码和授权 
mysql -uroot -e"flush privileges;"                                                                                      --->>  刷新使配置生效 

 zcat /usr/share/doc/zabbix-server-mysql-3.0.9/create.sql.gz |mysql -uzabbix -pzabbix zabbix    --->> 不解压查看压缩文件,上传到mysql中


6.3  、 php配置

sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini

egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /etc/php.ini

            PHP 修改的一些值都是在这里体现的 

            

6.4 、 配置zabbix server连接数据库

   sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf         ---->> 配置了zabbix 连接数据库的密码 


6.5  、配置Zabbix网页

  # 网页文件 
   cp -R /usr/share/zabbix/ /var/www/html/          ---->> zabbix web 的源代码复制到  /var/www/html/  这个目录  默认站点目录 

  # 文件授权
  chmod -R 755 /etc/zabbix/web
  chown -R apache.apache /etc/zabbix/web 

6.6  、 启动zabbix
  # 启动apache && zabbix
    echo "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf
    /etc/init.d/mysqld start
    /etc/init.d/zabbix-server start
    /etc/init.d/httpd start
   

   ******************************************************************************************************

    正在启动 mysqld:                                                       [确定]                                          
    正在启动 httpd:                                                            [确定]
    Starting Zabbix server:                                                    [确定]            

  ******************************************************************************************************  

# 加入开机自启动
  cat>>/etc/rc.local<<EOF
 /etc/init.d/mysqld start
 /etc/init.d/httpd start
 /etc/init.d/zabbix-server start
 EOF

 
都完成后测试;在浏览器中 输入   “  http://10.0.0.61/zabbix  ”     可以访问到 Zabbix  的 WEB 界面离成功就进了一步 ;

     

七  、Zabbix 的网页配置  ;

   7.1  、Zabbix 的欢迎界面   直接点击  Next step 

      

       7.2  、这里需要确保 全部是   “OK”   才能进行下一步 ,如果出现错误就哪里出错改哪里 ,在PHP的配置文件中 。

    

     7.3  、 配置Zabbix 连接数据库

    

     7.4  、 填写网站的站点名称用于展示 ,自定义

   

   7.5  、 Zabbix  填写 信息确认,如不确认可返回上一步 。

  

   7.6  、 表示已经安装成功的界面  。

  

   7.7  、zabbix 的登陆界面  吼吼  ;

                                               

   7.8   、 登陆 Zabbix  后的WEB 展示界面 ,英文 的 Ծ‸Ծ

  7.9  、这里可以更改为中文  “  点击小人头  ”;

  

更新之后就是中文的了  ;

      

八  、 安装  Zabbix -agent 客户端  ;

      只要是你所有想要监控的服务器都需要安装 Agent 客户端  ,这里我只安装两台   

[root@web01 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
Retrieving http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
warning: /var/tmp/rpm-tmp.XI5XON: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent           ########################################### [100%]

 

[root@m01 ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
Retrieving http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
warning: /var/tmp/rpm-tmp.idlhql: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing...                ########################################### [100%]
   1:zabbix-agent           ########################################### [100%]

 

8.1 、配置 Agent  客户端配置文件  ;

修改这个“  /etc/zabbix/zabbix_agentd.conf   ”配置文件 ,这行是表示告诉客户端他的服务端是谁允许谁来获取客户端服务器的信息 ;
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf                        ---->> 方法 1 修改  

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf                    ---->> 方法 2 修改   

注意 : 所有设备执行  ;

8.2  、 启动 zabbix-agent   ;

[root@m01 ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [确定]
 

[root@web01 ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:                                     [确定]
 

8.3  、 简单测试一下看能不能出现数据 ,如果不能正常显示这个数据说明配置有问题也可能是防火墙的问题 ;

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
0.500000
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
0.040000
[root@m01 ~]# 
 

问题1 ;
在执行以上命令的时候,出现以下报错,说明是防火墙和selinux 的问题关闭防火墙和 selinux 即可 ;
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get [4006]: Get value error: cannot connect to [[172.16.1.8]:10050]: [113] No route to host

九  、网页操作第二波 ;

 添加第一个主机,这里zabbix 有个模板,就改下模板即可,比较简单 ;

 在添加监控的时候   “ 主机名称这里需要填写设备真实的名称 ”  ,“ 可见名称 ”,用于展示给自己看,配置完后点击最下方的  “ 更新 ”

 配置完后 “ 状态 ”  那里显示的是 停用的点击启用设备即可, 刷新一下页面 “ 可用性 ” 那里 ZBX 绿色就表示添加监控成功 ;  

9.1 、 新添加主机 ;

点击 -- 配置 -- 主机 上角有个  “  创建主机  ”  点击创建主机 

其他默认不填,暂时不要点   “  添加  ”      点击  “  模板 ”  这里需要关联模板,因为我们是 linux 系统,直接关联linux 的模板,在链接指示器中直接   “linux”  会弹出 2条模板信息,我们选择 第1条,点击小的  “  添加 ” ,即可 

添加完成后,完成后点击最后的一个大的  “  添加 ”

这里就显示了 2 台主机了 ,后续在有服务器同样的添加步骤  ;

 9.2 、 查看监控数据 ;

zabbix  在2.0 的时候 默认是全部都展示的,这样比较耗费资源 ,3.0 后这里是可选项 自己想看那台设备通过过滤就可以 。

 9.3  、以图形的方式查看 ,并解决zabbix 中文乱码 

解决zabbix中文乱码
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 刷新页面字体可以正常显示 

查看网卡的监控状态

十  、Zabbix 自定义监控  ;

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf      --->>  在 被监控端操作 ;

UserParameter=login-user,who | wc -l      (who | wc -l  这条命令的结果会赋值给 login-user  )

[root@web01 ~]# /etc/init.d/zabbix-agent restart                   ----->> 重启zabbix-agent  ;
Shutting down Zabbix agent:                                [失败]
Starting Zabbix agent:                                         [确定]
 

在crt 中多复制几个窗口 ,  在zabbix监控端使用 zabbix_get 查看 ;

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"     

                                          指定IP地址    10050  是agent 的端口号     -k 表示是你要获取哪个  key 的数据
 

十一   、 zabbix 网页添加自定义监控 ;

   Zabbix网页添加自定义监控步骤 ;  ( 添加模板 - 添加应用集 - 添加监控项  - 添加触发器  - 添加图形 )

10.1  添加模板   ;

 完成以上步骤之后点击最下方的 “  添加 ”    即可完成 模板的创建  ;

 添加完成的模板  ;

10.2  、 添加应用集  ; 

 应用集: 一个目录,统一存放具有相关性的监控项  

添加一个应用集的目录名称 ;

10.3 、 添加监控项  ;

 历史数据最好保存的时间短一点  2周最多1个月 即可 ,添加完成的监控项 

10.4  、添加触发器  ;

  选择触发器, 名称是展示给自己看的自己能看明白就行,表达直接选择 添加 ,

添加表达式  ;

10.5 、 添加图形  ;

===========================至此模板创建流程结束=========================================

十一  、 把需要监控的主机关联模板  ;

查看监控数据  ;

监控方法 ;

监控备份服务器,简单的办法就是监控rsync 的端口 , ;

配置 - 模板 -创建模板 ,

添加应用集 “ 名称 ”

添加监控项 

在监控项的键值 这里 可以选择 zabbix 自带的 

2, 监控 MySQL 服务器 ,简单的方法是监控MySQL的 3306 端口 ,或者使用zabbix 提供的 MySQL 模板 ;

3,监控2 台 WEB 服务器简单的方法是监控 80 端口,

4, URL 地址监控   ;

监控的可用性 ;

监控常用命令 ;

[root@m01 ~]# lscpu                                  ----.>>>  查看CPU 信息 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
Stepping:              9
CPU MHz:               2501.000
BogoMIPS:              5002.00
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0
[root@m01 ~]# 
 

[root@m01 ~]# uptime                                --->>> 查看系统负载 
 18:03:02 up 1 day, 14:50,   2 users,   load average:   0.01, 0.03, 0.00
   什么时间开机                      用户           平均负载       1,5 and 15 分钟 

[root@m01 ~]# top                          ----->>>   查看实时负载 
top - 18:09:01 up 1 day, 14:56,  2 users,  load average: 0.00, 0.00, 0.00              ---->>> 负载信息
Tasks: 109 total,   1 running, 108 sleeping,   0 stopped,   0 zombie                 ----->>> 进程状态统计 
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st           --->> 显示CPU的使用率

us(表示用户使用CPU百分比),sy(系统使用CPU百分比),id(空闲CPU使用百分比)
在  top 下 按数字键 “1”  切换显示CPU 使用率和每个CPU使用率核数 , 

Mem:   1004112k total,   486060k used,   518052k free,    91544k buffers   
                     总使用             使用的                  剩余的                 buffers的 

Swap:   204796k total,        0k used,   204796k free,   212556k cached

PID   USER      PR  NI  VIRT  RES  SHR S   %CPU   %MEM     TIME+  COMMAND
PID值 用户        显示的进程信息            CPU    内存      进程运行时间      
22988 root      20   0 15028 1316 1004 R  0.3  0.1   0:00.04 top                                                        
     1 root      20   0 19364 1540 1236 S  0.0  0.2   0:01.54 init                                                       
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                   
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.32 ksoftirqd/0             

top 下的小技巧 ;

按字母 z 加底色 ,按字母 x 高亮排序 默认是以CPU 排序  “ <  > ”  大于和小于的符号  左右移动

[root@m01 ~]# hdparm -t /dev/sda    --->> 测试磁盘读的速度 

/dev/sda:
 Timing buffered disk reads: 224 MB in  3.01 seconds =  74.40 MB/sec
[root@m01 ~]#

 
[root@m01 ~]# iotop     ---->>>  动态的查看磁盘的  IO  读写  ,需要 yum 安装 

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                              
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
 

root@m01 ~]# iftop            ---->>  查看网络接口的实时流量   需要 yum 安装  或者 rpm  
interface: eth0        ---->>默认监控的是  eth0  
IP address is: 10.0.0.61    
MAC address is: 00:0c:29:28:ff:1a
[root@m01 ~]# 

[root@m01 ~]# nethogs     --->>查看每个进程的流量 (也是需要 yum安装 或者是rpm 包 )

猜你喜欢

转载自blog.csdn.net/sinat_41075146/article/details/81777450
今日推荐