一、 zabbix 简介:
zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性
附: SNMP(udp 161 udp 162)
众多网络工具都支持此协议,比如常见路由交换,常见 OS
其既可以做管理端也可以做被管理端
snmp 协议大致有 3 个版本分别是 v1 v2 v3
无论是 v1 和 v2 的安全性是比较差的,因为传输是明文的, V3 的认证密码用 MD5/SHA 摘
要算法加密
很多工具支持网络管理的功能,而对于非网络设备(操作系统),可以完全抛开 snmp 这种
不安全的架构来实现监控的。所以很多工具都是控制端和 agent 架构,他们有专属的 agent
Zabbix 的主要功能:
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、 FTP
等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
支持分布式,能集中展示、管理分布式的监控点,扩展性强
server 提供通用接口(api 功能), 可以自己开发完善各类监控(根据相关接口编写程序实
现),编写插件容易,可以自定义监控项,报警级别的设置。
数据收集, 支持 snmp(包括 trapping and polling ), IPMI, JMX, SSH, TELNET;
自定义的检测;自定义收集数据的频率;
服务器/代理和客户端模式;
灵活的触发器; 可以定义非常灵活的问题阈值, 称为触发器;
高可定制的报警;发送通知,可定制的报警升级,收件人,媒体类型。
CPU 负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视等等。
硬件监控: Zabbix IPMI Interface
系统监控: ZabbixAgent Interface
Java 监控: Zabbix JMX Interface
网络设备监控: Zabbix SNMP Interface
应用服务监控: Zabbix Agent UserParameter
MySQL 数据库监控: percona-monitoring-plulgins
URL 监控: Zabbix Web 监控
zabbix 重要组件说明:
1) zabbix server:负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数
据都由它组织进行;
2) database storage:专用于存储所有配置信息,以及由 zabbix 收集的数据;
3) web interface: zabbix 的 GUI 接口;
4) proxy:可选组件,常用于监控节点很多的分布式环境中,代理 server 收集部分数据转发
到 server,可以减轻 server 的压力;
5) agent:部署在被监控的主机上,负责收集主机本地数据如 cpu、内存、数据库等数据发
往 server 端或 proxy 端;
另外, zabbix server、 proxy、 agent 都有自己的配置文件以及 log 文件,重要的参数需要在这
里配置,后面会详细说明。
一个监控系统运行的大概的流程是这样的:
agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server 端,
zabbix server 将数据存储到数据库中, zabbix web 根据数据在前端进行展现和绘图。这里
agentd 收集数据分为主动和被动两种模式:
主动: agent 请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给
server/proxy
被动: server 向 agent 请求获取监控项的数据, agent 返回数据。
zabbix 常用的监控架构平台
1、 server-agentd 模式:
这个是最简单的架构了,常用于监控主机比较少的情况下。
2、 server-proxy-agentd 模式:
这个常用于比较多的机器,使用 proxy 进行分布式监控,有效的减轻 server 端的压力。
zabbix 的系统架构:
zabbix监控系统安装_第1张图片
Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方
案。借助 Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持
续运行。下面会逐步介绍 Zabbix 分布式监控系统的部署及使用
配置好 IP、 DNS 、网关,确保使用远程连接工具能够连接服务器
zabbix 监控服务器: 192.168.130.76 #zabbix 的服务端(若要监控本机,则需要配置本机的
zabbix agent)
Zabbix agent 被监控主机: 192.168.130.78#zabbix 的客户端(被监控端,需要配置 Zabbix agent

一. 部署lnmp
1. 上传所需安装包
zabbix监控系统安装zabbix监控系统安装_第2张图片

2.安装nginx
zabbix监控系统安装_第3张图片

(1)安装依赖包

   20  tar zxf pcre-8.39.tar.gz 
   21  tar zxf zlib-1.2.8.tar.gz 
   22  yum -y install openssl-devel
(2)安装nginx
   20  cd
  19  tar zxf nginx-1.14.0.tar.gz 
   23  cd nginx-1.14.0/
   25   ./configure --prefix=/usr/local/nginx1.14 --with-http_dav_module  --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/root/pcre-8.39  --with-zlib=/root/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module 
   26  make && make install
   27  ln -s /usr/local/nginx1.14/sbin/nginx  /usr/local/sbin/  (链接命令目录)
   28  nginx   (开启)
   29  netstat -anpt | grep nginx   (查看接口)

zabbix监控系统安装
2.安装php
(1)安装依赖包

   31  cd
   33  tar zxf libmcrypt-2.5.7.tar.gz 
   34  cd libmcrypt-2.5.7/
   35  ./configure  --prefix=/usr/local/libmcrypt && make && make install 
   39  yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel

(2)安装php

   36  cd
   37  tar zxf php-5.6.27.tar.gz   (解压)
   38  cd php-5.6.27/
   40 (编译安装) ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-gd --with-iconv --with-libxml-dir=/usr  --with-mhash --with-mcrypt=/usr/local/libmcrypt  --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc  --enable-zip --enable-soap --without-pear --with-gettext --enable-session  --with-curl  make && make install 

(3)优化一下php

   43  cp php.ini-production  /etc/php.ini  (复制配置文件到/etc)
   44  cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  (加入启动的目录)
   45   chmod +x /etc/init.d/php-fpm  (添加可执行权限)
   46 cp /usr/local/php5.6/etc/php-fpm.conf.default  /usr/local/php5.6/etc/php-fpm.conf   (把配置文件改名)
   49  /etc/init.d/php-fpm start     (启动)
   50  netstat  -anpt | grep 9000  (查看端口)

zabbix监控系统安装
(4)可以使用nginx解析到php页面
<1> 修改nginx配置文件

47  vim /usr/local/nginx1.14/conf/nginx.conf
        location / {    #45添加
            root   html;
            index index.php index.html index.htm;
        }
        location ~ \.php$ {    #65去注释,修改
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
<2>重启nginx
   48  nginx  -s reload
<3>创建php页面
   51  vim /usr/local/nginx1.14/html/index.php

<4>浏览器测试nginxIp
zabbix监控系统安装_第4张图片

3.安装mysql

 17  sh mysql.sh  (使用脚本安装)
netstat -anpt | grep mysql (查看接口)

zabbix监控系统安装_第5张图片
二. 安装Zabbix Serve
zabbix监控系统安装_第6张图片
先上传所需安装包
(2)安装依赖包

 59  rz 
   61  tar zxf fping-3.12.tar.gz 
   62  cd fping-3.12/
   63  ./configure  && make &&  make install
   64  whcih
   65  which fping

zabbix监控系统安装
71 yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
(3)编译安装

67  cd
   68  ls
   69  tar zxf zabbix-3.2.1.tar.gz 
   70  cd zabbix-3.2.1/
   76  ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent  --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl  --with-openipmi
   77  make && make install
(4)添加系统软连接
   79  ln -s /usr/local/zabbix/bin/* /usr/local/bin/
   80  ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

(5)Zabbix Server 配置与启动
<1>创建 Zabbix 数据库和 MySQL 用户:

mysql -u root -p123
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@'localhost' identified by '123.com';
exit

<2>导入 Zabbix 初始数据:
切换到 zabbix 的解压目录下
zabbix监控系统安装_第7张图片

   82  cd /root/
   83  cd zabbix-3.2.1/
   84  ls
   85  cd database/mysql/

<3>进行 zabbix 初始数据导入

  82  cd /root/
   83  cd zabbix-3.2.1/
   84  ls
   85  cd database/mysql/
   90   mysql -u zabbix -p123.com  -h localhost zabbix < schema.sql
   92   mysql -u zabbix -p123.com  -h localhost zabbix < images.sql
   93   mysql -u zabbix -p123.com  -h localhost zabbix < data.sql

数据库查看一下

mysql -u root -p123
use Zabbix
show tables;

zabbix监控系统安装_第8张图片
<4>编辑/usr/local/zabbix/etc/zabbix_server.conf:

LogFile=/usr/local/zabbix/logs/zabbix_server.log  #38
PidFile= /usr/local/zabbix/logs/zabbix_server.pid #68
DBHost=localhost #77
DBPassword=123.com #111 授权密码
DBSocket=/usr/local/mysql/mysql.sock  #118
DBPort=3306 #126
FpingLocation=/usr/local/sbin/fping  #463

创建所需目录

103  mkdir  /usr/local/zabbix/logs
  104  chown -R zabbix:zabbix  /usr/local/Zabbix/

<5>启动 Zabbix Server:
zabbix_server --help
zabbix监控系统安装
解决方法:
在 ld.so.conf 中加入/usr/local/mysql/lib
106 find / -name libmysqlclient.so.20
zabbix监控系统安装

  107  vim /etc/ld.so.conf  添加
/usr/local/mysql/lib/
  108  ldconfig  刷新一下
再次执行 zabbix_server 启动
  117  zabbix_server 
  118  netstat -anpt | grep 10051

zabbix监控系统安装
<6>添加开机启动脚本

  128  cd zabbix-3.2.1/misc/init.d/fedora/core
  129  cp zabbix_server  /etc/init.d/
  130  vim /etc/init.d/zabbix_server   修改
BASEDIR=/usr/local/Zabbix   #22
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  #31

执行一下关闭zabbix
zabbix监控系统安装

  133  /etc/init.d/zabbix_server  stop 
  134  netstat  -antp | grep 10051

可以看到端口还开着,所以我们要杀进程,删除pid文件
zabbix监控系统安装

157  rm -rf /usr/local/zabbix/logs/zabbix_server.pid 
  158  killall -9 zabbix_server
  159  netstat  -antp | grep 10051

现在再次开启一下,现已正常

zabbix监控系统安装_第9张图片
(6)配置 zabbix web 页面
在安装目录将 frontends 拷贝到指定的 web root:
29 cd zabbix-3.2.1/frontends/
30 cp -r php/ /usr/local/nginx1.14/html/Zabbix
浏览器测试:192.168.1.10/Zabbix

  1. zabbix监控系统安装_第10张图片
    2.zabbix监控系统安装_第11张图片

可以看到这里有错误,我们需要去php配置文件里修改

   32  vim /etc/php.ini  修改
post_max_size = 16M   #660
max_execution_time = 300  #372
max_input_time = 300   #382
date.timezone = Asia/Shanghai  #936
always_populate_raw_post_data = -1  #702
33  /etc/init.d/php-fpm  restart   #重启一下php

浏览器刷新一下,继续运行
zabbix监控系统安装_第12张图片
3.现在看到因为浏览器解析不到主机名,所以我们要在MySQL数据库授权IP
zabbix监控系统安装_第13张图片
1.解决方法
mysql -u root -p123
grant all on zabbix.* to zabbix@'192.168.1.%' identified by '123.com';
zabbix监控系统安装_第14张图片
4.解决之后浏览器刷新,继续
zabbix监控系统安装_第15张图片
zabbix监控系统安装_第16张图片
zabbix监控系统安装_第17张图片
5.
zabbix监控系统安装_第18张图片
解决方法
zabbix监控系统安装_第19张图片
6.解决之后浏览器刷新,继续
zabbix监控系统安装_第20张图片
7.登陆
zabbix监控系统安装_第21张图片

8.登陆之后修改成中文
zabbix监控系统安装_第22张图片
zabbix监控系统安装_第23张图片

查看一下
zabbix监控系统安装_第24张图片
9.解决 zabbix 绘图中出现中文乱码问题:
从 windows 下控制面板->字体->选择一种中文字库例如“楷体”
zabbix监控系统安装_第25张图片

把它拷贝到 zabbix 的 web 端的 fonts 目录下例如: /usr/local/nginx1.10/html/zabbix/fonts/,
并且把 TTF 后缀改为 ttf

 38  rz   (上传simkai.ttf)
   39  ls
   40  cd /usr/local/nginx1.14/html/zabbix/fonts/
   41  ls

zabbix监控系统安装_第26张图片
并且将之前的字体文件 DejaVuSans.ttf 移动到别处
c.然后,接着修改代码 include/defines.inc.php 文件中的字体配置,将里面关于字体设置从
DejaVuSans 替换成 simkai
44 vim /usr/local/nginx1.14/html/zabbix/include/defines.inc.php
在 vi 编辑器的末行模式下输入 :%s/DejaVuSans/simkai/g
zabbix监控系统安装_第27张图片
这样,修改后, zabbix 监控图形中的中文字就不会出现乱码了