一、 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 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方 案。借助 Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持 续运行。下面会逐步介绍 Zabbix 分布式监控系统的部署及使用 配置好 IP、 DNS 、网关,确保使用远程连接工具能够连接服务器 zabbix 监控服务器: 192.168.130.76 #zabbix 的服务端(若要监控本机,则需要配置本机的 zabbix agent) Zabbix agent 被监控主机: 192.168.130.78#zabbix 的客户端(被监控端,需要配置 Zabbix agent

一. 部署lnmp 1. 上传所需安装包

2.安装nginx

(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   (查看接口)

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  (查看端口)

(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
<?php
phpinfo();
?>

<4>浏览器测试nginxIp

3.安装mysql

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

二. 安装Zabbix Serve 先上传所需安装包 (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

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 的解压目录下

   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;

<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 解决方法: 在 ld.so.conf 中加入/usr/local/mysql/lib 106 find / -name libmysqlclient.so.20

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

<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

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

可以看到端口还开着,所以我们要杀进程,删除pid文件

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

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

(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. 2.

可以看到这里有错误,我们需要去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

浏览器刷新一下,继续运行 3.现在看到因为浏览器解析不到主机名,所以我们要在MySQL数据库授权IP 1.解决方法 mysql -u root -p123 grant all on zabbix.* to zabbix@'192.168.1.%' identified by '123.com'; 4.解决之后浏览器刷新,继续 5. 解决方法 6.解决之后浏览器刷新,继续 7.登陆

8.登陆之后修改成中文

查看一下 9.解决 zabbix 绘图中出现中文乱码问题: 从 windows 下控制面板->字体->选择一种中文字库例如“楷体”

把它拷贝到 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

并且将之前的字体文件 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 监控图形中的中文字就不会出现乱码了