当我们在企业中,必须随时关注各服务器和网络的运行状况,以便及时发现问题,减少故障发生的情况。当网络中的设备服务器数量较多时,为了方便,快速的获得各种监控信息,就要用到集中监控软件-----zabbix(应用较多的)。

1>>>>>:zabbix:是一个基于web界面的企业级开源(免费)监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控,网络设备的监控,数据库的监控,监控对象多元化,多种警告方式等。

zabbix监控系统运行流程:(捡重要组件来说)

(1):zabbix server:负责接收agent发送报告信息的核心组件,所有配置数据统计数据操作都由它组织进行。

(2):database storage:负责存储所有配置信息以及收集的数据

(3):pxory:可选组件常用于分布式监控环境中

(4):agent:部署在被监控的主机(客户端)上,负责收集被监控端主机的数据。

 

Agent部署在被监控端上----> 将监控收集到的信息发送给----> pxory,pxory相当于一个中转站,把agent发送的信息转交给----> zabbix server;server服务端将收集到的信息存储在----> database storage数据收集库中。

Zabbix 的主要功能:

具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、 FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)

支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)

支持分布式,能集中展示、管理分布式的监控点,扩展性强

server  提供通用接口(api  功能),可以自己开发完善各类监控(根据相关接口编写程序实现),编写插件容易,可以自定义监控项,报警级别的设置。

数据收集,支持  snmp(包括  trapping and polling ),IPMI,JMX,SSH,TELNET

自定义的检测;自定义收集数据的频率;

服务器/代理和客户端模式;

灵活的触发器;可以定义非常灵活的问题阈值,称为触发器;

高可定制的报警;发送通知,可定制的报警升级,收件人,媒体类型。CPU 负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视等等。

agentd 收集数据分为主动和被动两种模式:

主动:agent 请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server 向 agent 请求获取监控项的数据,agent 返回数据。

二、Zabbix 部署前的 LNMP 环境的搭建过程

实验环境:lnmp   and zabbix 同在一台服务器上操作

需要安装的软件包:

 

zabbix的搭建及使用 ubuntu zabbix安装部署linux_php

1):安装nginx服务(过程略过)

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_02

2):安装mysql(过程略过)

3):安装php

[root@localhost ~]## tar zxf libmcrypt-2.5.7.tar.gz

[root@localhost ~]# cd libmcrypt-2.5.7/

[root@ localhost libmcrypt-2.5.7]# ./configure && make && make install

# ln -s /usr/local/mysql/lib/libmysqlclient.so.20.3.0 /usr/local/mysql/lib/libmysqlclient_r.so

[root@ localhost ~]# tar zxf php-5.6.27.tar.gz

[root@ localhost ~]#cd php-5.6.27/

[root@ localhost php-5.6.27]#  ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --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

会出现报错,安装缺少的依赖包:

yum -y install libxml2-devel

yum -y install bzip2-devel

yum -y install libcurl-devel

yum -y install libmcrypt

yum -y install libpng-devel

yum -y install freetype-devel

[root@ localhost php-5.6.27]#make && make isntall

[root@mysqla php-5.6.27]# cp php.ini-production /etc/php.ini

编辑配置文件/etc/php.ini ,修改后的内容如下:

找到:

;date.timezone =

修改为:

date.timezone = PRC #设置时区

找到:

expose_php = On

修改为:

expose_php = Off #禁止显示 php 版本的信息

找到:

short_open_tag = Off

修改为:

short_open_tag = On //支持 php 短标签

找到:

post_max_size = 8M

修改为:

post_max_size = 16M  //上传文件大小

找到:

max_execution_time = 30

修改为:

max_execution_time = 300 //php 脚本最大执行时间

找到:

max_input_time = 60

修改为:

max_input_time =  300  //以秒为单位对通过 POST、GET 以及 PUT 方式接收数据时间进行限

always_populate_raw_post_data = -1

mbstring.func_overload = 0

创建 php-fpm 服务启动脚本:

[root@ localhost php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@ localhost php-5.6.27]# chmod +x /etc/init.d/php-fpm

[root@ localhost php-5.6.27]# chkconfig --add php-fpm

[root@ localhost php-5.6.27]# chkconfig php-fpm on

提供 php-fpm 配置文件并编辑:

#cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

[root@ localhost php-5.6.27]# vi /usr/local/php5.6/etc/php-fpm.conf

修改内容如下:

pid = run/php-fpm.pid

user = www

group = www

listen =127.0.0.1:9000

pm.max_children = 300

pm.start_servers = 10

pm.min_spare_servers = 10

pm.max_spare_servers =50

启动 php-fpm 服务:

[root@ localhost  ~]# service php-fpm start

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_03

配置 nginx 支持 php

[root@ localhost ~]# cat /usr/local/nginx1.10/conf/nginx.con

45             index  index.php index.html index.htm;(添加优先访问php网页)

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_04

进入 nginx 默认的网页根目录,创建.php 的测试页

[root@ localhost html]# vim /usr/local/nginx1.10/html/index.php

<?php

phpinfo()

?>

开例外

[root@ localhost] #firewall-cmd  --add-port=9000/tcp --permanent

[root@ localhost] #firewall-cmd  --add-port=80/tcp --permanent

 [root@ localhost] #systemctl restart firewalld.service

网页验证:

zabbix的搭建及使用 ubuntu zabbix安装部署linux_mysql_05

至此,LNMP 部署完毕

三、监控系统 Zabbix-3.2.1 的安装

zabbix-server 端的操作

zabbix 服务器端要提前安装好 LNMP 环境(mysql,nginx,php5 的安装目录均是/usr/local

创建 Zabbix 运行的用户:

[root@ localhost ~]#groupadd zabbix

[root@ localhost ~]#useradd -g zabbix zabbix

安装 libcurl 和 net-snmp:

[root@ localhost ~]#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

注:OpenIPMI-devel  和 libssh2-devel 软件包使用 centos 在线 yum 软件源安装

安装 Fping:

[root@ localhost ~]#rz

[root@ localhost ~]#  tar zxf fping-3.12.tar.gz

[root@ localhost ~]#cd fping-3.12/

[root@ localhost fping-3.12]# ./configure && make && make install

[root@ localhost fping-3.12]# chown :zabbix /usr/local/sbin/fping

安装 Zabbix Server:

[root@ localhost]#tar  zxf  zabbix-3.2.1.tar.gz

[root@ localhost  zabbix-3.2.1]# yum -y install net-snmp-devel curl-devel java-devel

[root@ localhost  zabbix-3.2.1]# yum -y install OpenIPMI-devel libssh2-devel

[root@ localhost  zabbix-3.2.1]#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql --with-net-snmp --with-libcurl --with-openipmi

注意:编译时最好带上--enable-java 这个参数,方便后续监控 tomcat 程序所用。

--with-ssh2  是不需要在客户端服务器上面安装 Zabbix agent,如果需要使用 ssh 检查,需要在编译的时候加上这项,最低需要 libssh2 1.0.0 版本,需要安装 ssh 开发包

--with-openipmi 用户可以利用  IPMI  监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应等。

如果添加了--enable-proxy,  那么会生成 get 和 sender 两条命令.  如下,  用于接收 agent 发生过来的信息,  同时发送给 server.

[root@ localhost  zabbix-3.2.1]#make && make install

添加系统软连接

 [root@ localhost  zabbix-3.2.1]#  ln -s /usr/local/zabbix/bin/* /usr/local/bin/

  [root@ localhost  zabbix-3.2.1]#  ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

连接数据库创建zabbix数据库和用户

mysql -u root -p123

mysql> create databse zabbix character set utf8;

mysql>  grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

导入 Zabbix 初始数据:

切换到 zabbix 的解压目录下

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_06

  147  mysql -u zabbix -p123.com -h localhost zabbix < schema.sql

  148  mysql -u zabbix -p123.com -h localhost zabbix < images.sql

  149  ls

  150  mysql -u zabbix -p123.com -h localhost zabbix < data.sql

  151  chown -R zabbix:zabbix /usr/local/zabbix/

  152  vim /usr/local/zabbix/etc/zabbix_server.conf

修改内容如下:

38 LogFile=/usr/local/zabbix/logs/zabbix_server.log

68  PidFile=/usr/local/zabbix/logs/zabbix_server.pid

77  DBHost=localhost

87 DBName=zabbixc

103 DBUser=zabbix

111  DBPassword=123.com

118 DBSocket=/usr/local/mysql/mysql.sock

126  DBPort=3306

407 Timeout=4

463  FpingLocation=/usr/local/sbin/fping

491 LogSlowQueries=3000

#mkdir -p /usr/local/zabbix/logs

#chown -R zabbix:zabbix /usr/local/zabbix

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_07

启动 Zabbix Server:

# /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf[root@mysqla zabbix-3.2.1]# netstat -anpt | grep zabbix

开例外,允许zabbix通过

firewall-cmd --permanent --add-port=10051/tcp

  firewall-cmd --reload

zabbix的搭建及使用 ubuntu zabbix安装部署linux_Linux_08

 

 

配置 zabbix web 页面

在安装目录将 frontends 拷贝到指定的 web root:

[root@mysqla ~]# cd /root/zabbix-3.2.1/

[root@mysqla zabbix-3.2.1]# cp -r frontends/php/ /usr/local/nginx1.10/html/zabbix

[root@mysqla zabbix-3.2.1]# chown    -R  zabbix:zabbix  /usr/local/nginx1.10/html/zabbix/

注:/usr/local/nginx/html 为 Nginx 默认站点目录  www 为 Nginx 运行账户

zabbix的搭建及使用 ubuntu zabbix安装部署linux_php_09

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_10

 

zabbix的搭建及使用 ubuntu zabbix安装部署linux_Linux_11

zabbix的搭建及使用 ubuntu zabbix安装部署linux_php_12

zabbix的搭建及使用 ubuntu zabbix安装部署linux_zabbix安装与 部署_13

zabbix的搭建及使用 ubuntu zabbix安装部署linux_php_14

zabbix的搭建及使用 ubuntu zabbix安装部署linux_mysql_15

 

密码为zabbix