平台信息:

[root@localhost ~]#uname -a
Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m

iptables和SELinux全部关闭

官网http://www.zabbix.com



所需包:

http://pan.baidu.com/s/1i5G6T6H



1.监控系统



    1.1 主流监控工具

    【cacti】只是个PHP网页程序,依赖于SNMP和RRDTool,有很强的数据处理能力,能够采集保存展示数据,给予动态反馈。但数据分析及报警功能较弱

    【nagios】独立的监控工具,只关心专用agent监控内容正常与否的状态,agent也能主动反馈,对数据没有太多处理,但报警功能强大

    【zabbix】

    cacti由于RRDTool存储数据,很难对大量指标进行监控,也无法高并发的处理,nagios缺少对数据动态直观的展示。

    zabbix支持大规模分布式集群的监控,既是强大的数据功能,也能报警,还可以自动发现监控设备予以增设。



    1.2 zabbix

    Zabbix,可以从网络收集几乎无限类型的数据。高性能实时监控意味着可同时监控数万台服务器,虚拟机和网络设备。除了存储数据之外,还提供可视化功能(概览,地图,图形,屏幕等),以及用于警报目的的非常灵活的分析数据的方式。

    Zabbix为数据收集提供了巨大的性能,可以扩展到非常大的环境。分布式监视选项可用于使用Zabbix代理。Zabbix具有基于Web的界面,安全的用户身份验证和灵活的用户权限模式。支持轮询和陷阱,本地高性能代理从几乎任何流行的操作系统收集数据。

    使用Zabbix可以进行Web监控以及监控VMware虚拟机。Zabbix可以自动发现网络服务器和设备,以及通过对发现的实体自动分配性能和可用性检查的方法执行低级发现。

    【系统架构】

zabbix配置ldap集成_php

    【逻辑架构】

zabbix配置ldap集成_zabbix配置ldap集成_02



2. 安装zabbix监控端(server1和server2)

server1

zabbix服务器和web服务器

192.168.195.202:10051

server2

数据库服务器

192.168.195.203:3306


    2.1 LNMP




    2.2 创建zabbix用户(server1和server2)

[root@localhost ~/zabbix]#tar -zxvf zabbix-3.2.3.tar.gz # 解压源码包
[root@localhost ~/zabbix]#groupadd zabbix # 创建zabbix用户用以运行zabbix
[root@localhost ~/zabbix]#useradd -g zabbix zabbix



    2.3 创建初始数据库(server2)

[root@localhost ~]#service mysqld status # 开启mysql
mysqld (pid  3333) 正在运行...
# 创建初始数据库
[root@localhost ~/zabbix]#mysql -uroot -p123456 
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
# 授权mysql远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix' WITH GRANT OPTION;
mysql> quit;
[root@localhost ~/zabbix]#cd zabbix-3.2.3 # 导入数据库模板
[root@localhost ~/zabbix/zabbix-3.2.3]#mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@localhost ~/zabbix/zabbix-3.2.3]#mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 
[root@localhost ~/zabbix/zabbix-3.2.3]#mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
# 重启mysql
[root@localhost ~/zabbix_mysql/zabbix-3.2.3]#service mysqld stop
停止 mysqld:                                              [确定]
[root@localhost ~/zabbix_mysql/zabbix-3.2.3]#/usr/local/mysql/bin/mysqld_safe
# 在server1上测试连接
[root@localhost ~]#mysql -uzabbix -p -h192.168.195.203
Enter password: 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| zabbix             |
+--------------------+
5 rows in set (0.01 sec)

mysql> quit
Bye



    2.4 安装snmp(server1)

[root@localhost ~/zabbix/zabbix-3.2.3]#yum install net-snmp net-snmp-utils
[root@localhost ~/zabbix/zabbix-3.2.3]#service snmpd start



    2.5 编译安装(server1)

[root@localhost ~/zabbix/zabbix-3.2.3]#yum install net-snmp-devel # 必要组件,没有需要安装
[root@localhost ~/zabbix/zabbix-3.2.3]#./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@localhost ~/zabbix/zabbix-3.2.3]#make
[root@localhost ~/zabbix/zabbix-3.2.3]#make install



    2.6 启动zabbix_server(server1)

[root@localhost ~/zabbix/zabbix-3.2.3]#zabbix_server



    2.7 安装zabbix web界面(server1)

[root@localhost ~/zabbix/zabbix-3.2.3]#cp -a frontends/php/ /usr/local/nginx/html/zabbix



    2.8 web安装界面(server1)

zabbix配置ldap集成_前端_03

    【安装先决条件不满足】

zabbix配置ldap集成_php_04

    【先决条件列表】

先决条件

最小值

描述

PHP版本

5.4.0

 

PHP memory_limit选项

128MB

在php.ini:

memory_limit的= 128M

PHP post_max_size选项

16MB

在php.ini:

的post_max_size = 16M

2MB

在php.ini:

的upload_max_filesize = 2M

PHP max_execution_time选项

300秒(允许值0和-1)

在php.ini:

的max_execution_time = 300

PHP max_input_time选项

300秒(允许值0和-1)

在php.ini:

max_input_time设置= 300

PHP session.auto_start选项

必须禁用

在php.ini:

session.auto_start = 0

数据库支持

IBM DB2,MySQL,Oracle,PostgreSQL,SQLite

其中以下模块必须安装:

IBM_DB2,MySQL和OCI8,pgsql的,sqlite3的

bcmath

 

php-bcmath

mbstring

 

php-mbstring

PHP mbstring.func_overload选项

必须禁用

在php.ini:

中的mbstring.func_overload = 0

PHP always_populate_raw_post_data选项

必须禁用

仅适用于PHP 5.6.0或更高版本。

在php.ini:

always_populate_raw_post_data = -1

插座

 

php-net-socket。需要用户脚本支持。

gd

2.0以上

php-gd。PHP GD扩展必须支持PNG图像(--with-PNG-DIR),JPEG(--with-JPEG-DIR)的图像和FreeType 2的(--with-的FreeType-DIR)。

libxml

2.6.15

php-xml或php5-dom

xmlwriter

 

php-xmlwriter

xmlreader

 

php-xmlreader

ctype

 

php-ctype

会话

 

php会话

gettext

 

PHP-gettext的

自2.2.1的zabbix,PHP的gettext扩展不是用于安装的zabbix的强制性要求。如果没有安装gettext,前端将照常工作,但是,翻译将不可用。

PHP upload_max_filesize选项

    【修改不满足配置】

# 修改/etc/php.ini,安装需要组件
[root@localhost ~/zabbix/zabbix-3.2.3]#yum install php-bcmath
[root@localhost ~/zabbix/zabbix-3.2.3]#yum install php-gd
[root@localhost ~/zabbix/zabbix-3.2.3]#service php-fpm restart
[root@localhost ~/zabbix/zabbix-3.2.3]#service nginx restart
# 扩展php,以gd为例
[root@localhost ~/lnmp/php-5.5.38/ext]#pwd # 下载php同版本源码包,解压进入ext
/root/lnmp/php-5.5.38/ext
[root@localhost ~/lnmp/php-5.5.38/ext]#cd gd # 进入要扩展组件文件夹
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#/usr/local/php/bin/phpize # php安装路径下phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
# 编译
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#./configure --with-gd --with-php-config=/usr/local/php/bin/php-config # =两边不能有空格
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make # 编译
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make test # 测试编译结果
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make install # 安装
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
Installing header files:          /usr/local/php/include/php/
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#vim /etc/php.ini # 编辑php配置文件支持,修改以下内容
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"
extension=gd.so
# 重启web服务器
[root@localhost ~]#service nginx restart
# 对于gd,没有支持jpeg,需要显示添加
# 支持jpeg
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#./configure --with-gd --with-jpeg-dir=/usr/local/ --with-php-config=/usr/local/php/bin/php-config
# 支持freetype
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#rpm -ql freetype
/usr/lib64/libfreetype.so.6
/usr/lib64/libfreetype.so.6.3.22
/usr/share/doc/freetype-2.3.11
/usr/share/doc/freetype-2.3.11/CHANGES
/usr/share/doc/freetype-2.3.11/FTL.TXT
/usr/share/doc/freetype-2.3.11/GPL.TXT
/usr/share/doc/freetype-2.3.11/LICENSE.TXT
/usr/share/doc/freetype-2.3.11/README
/usr/share/doc/freetype-2.3.11/VERSION.DLL
/usr/share/doc/freetype-2.3.11/formats.txt
/usr/share/doc/freetype-2.3.11/ft2faq.html
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#./configure --with-gd --with-jpeg-dir=/usr/local/ --with-freetype-dir=/usr/lib64/ --with-php-config=/usr/local/php/bin/php-config
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make clean
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#make install
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#service nginx restart
[root@localhost ~/lnmp/php-5.5.38/ext/gd]#service php-fpm restart

zabbix配置ldap集成_前端_05

    【输入连接server2数据库的详细信息】

zabbix配置ldap集成_数据库_06

    【设置Zabbix服务器详细信息】

zabbix配置ldap集成_数据库_07

    【查看设置摘要】

zabbix配置ldap集成_php_08

    【下载配置文件】

zabbix配置ldap集成_数据库_09

# 保存到相应conf位置,修改权限
[root@localhost ~/zabbix]#cp zabbix.conf.php /usr/local/nginx/html/zabbix/conf/
[root@localhost ~/zabbix]#ls -al /usr/local/nginx/html/zabbix/conf/
总用量 24
drwxr-xr-x  2   1000   1000 4096 2月   6 08:27 .
[root@localhost ~/zabbix]#chown -R zabbix:zabbix /usr/local/nginx/html/zabbix/conf/
[root@localhost ~/zabbix]#ls -al /usr/local/nginx/html/zabbix/conf/
总用量 24
drwxr-xr-x  2 zabbix zabbix 4096 2月   6 08:27 .
drwxr-xr-x 13   1000   1000 4096 2月   6 08:28 ..
-rw-r--r--  1 zabbix zabbix  163 12月 21 16:08 .htaccess
-rw-r--r--  1 zabbix zabbix 1036 12月 21 16:08 maintenance.inc.php
-rw-r--r--  1 zabbix zabbix  421 2月   6 08:27 zabbix.conf.php
-rw-r--r--  1 zabbix zabbix  411 12月 21 16:08 zabbix.conf.php.example

    【安装完成】

zabbix配置ldap集成_ViewUI_10

    【登录zabbix前端】默认用户名:Admin密码:ZABBIX

zabbix配置ldap集成_数据库_11



3.安装zabbix被监控端(node1)

node1

节点1

192.168.195.204:10050

[root@localhost ~/zabbix]#ls
zabbix-3.2.3.tar.gz
[root@localhost ~/zabbix]#tar xf zabbix-3.2.3.tar.gz 
[root@localhost ~/zabbix]#cd zabbix-3.2.3
[root@localhost ~/zabbix/zabbix-3.2.3]#./configure --enable-agent # 仅安装agent
[root@localhost ~/zabbix/zabbix-3.2.3]#make
[root@localhost ~/zabbix/zabbix-3.2.3]#make install
[root@localhost ~/zabbix/zabbix-3.2.3]#groupadd zabbix # 增加用户主组
[root@localhost ~/zabbix/zabbix-3.2.3]#useradd -g zabbix zabbix
[root@localhost ~]#vim /usr/local/etc/zabbix_agentd.conf # agent的配置文件
Server=192.168.195.202 # 修改server地址
[root@localhost ~/zabbix/zabbix-3.2.3]#zabbix_agentd
[root@localhost ~/zabbix/zabbix-3.2.3]#ps aux | grep zabbix
zabbix    9628  0.0  0.0  17704   752 ?        S    21:46   0:00 zabbix_agentd
zabbix    9629  0.0  0.0  17704   752 ?        S    21:46   0:00 zabbix_agentd: collector [idle 1 sec]
zabbix    9630  0.0  0.0  17704   648 ?        S    21:46   0:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix    9631  0.0  0.0  17704   656 ?        S    21:46   0:00 zabbix_agentd: listener #2 [waiting for connection]
zabbix    9632  0.0  0.0  17704   656 ?        S    21:46   0:00 zabbix_agentd: listener #3 [waiting for connection]
zabbix    9633  0.0  0.0  17716   824 ?        S    21:46   0:00 zabbix_agentd: active checks #1 [idle 1 sec]
root      9635  0.0  0.0 103324   888 pts/0    S+   21:46   0:00 grep zabbix
[root@localhost ~/zabbix/zabbix-3.2.3]#netstat -tnlp | grep zabbix
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      9628/zabbix_agentd



4.简单配置zabbix



    4.1 修改zabbix前端语言(可能造成乱码)

zabbix配置ldap集成_zabbix配置ldap集成_12

zabbix配置ldap集成_php_13

    修改zabbix配置

root@localhost ~]#vim /usr/local/nginx/html/zabbix/conf/zabbix.conf.php # 修改server地址
$ZBX_SERVER      = '192.168.195.202';
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#pwd # 到php源码包里的openssl组件
/root/lnmp/php-5.5.38/ext/openssl
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#/usr/local/php/bin/phpize 
Cannot find config.m4. 
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#mv config0.m4 config.m4
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#/usr/local/php/bin/phpize # phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config # 编译
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#make
[root@localhost ~/lnmp/php-5.5.38/ext/openssl]#make install # 安装
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
[root@localhost ~]#vim /etc/php.ini # 增加扩展
extension=openssl.so
[root@localhost ~]#ps aux | grep zabbix_server
[root@localhost ~]#netstat -tnlp 10051 # 发现10051端口没有打开
[root@localhost ~]#tail /tmp/zabbix_server.log # 查看server日志
25589:20170206:110853.582 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: NO)
 25589:20170206:110853.582 cannot set MySQL character set to "utf8"
 25589:20170206:110853.582 database is down: reconnecting in 10 seconds
编辑的zabbix服务器配置文件
[root@localhost ~]#vim /usr/local/etc/zabbix_server.conf
DBPassword=zabbix # 设置密码
[root@localhost ~]#kill 22844 # 杀死zabbix_server进程
[root@localhost ~]#zabbix_server # 启动zabbix_server

zabbix配置ldap集成_ViewUI_14

    修改admin设置

zabbix配置ldap集成_ViewUI_15

    修改Language为中文,如果gettext没有扩展,这里不能选择,只是辅助扩展不影响

zabbix配置ldap集成_php_16



    4.2 增加新主机

zabbix配置ldap集成_前端_17

    当前本地主机停用状态,创建主机

zabbix配置ldap集成_数据库_18

    配置主机信息

zabbix配置ldap集成_php_19

zabbix配置ldap集成_数据库_20

zabbix配置ldap集成_zabbix配置ldap集成_21



    4.3 给主机增加监控项

    在配置->主机->主机记录的监控项->创建监控项

zabbix配置ldap集成_ViewUI_22

    配置监控项,键值标识监控内容,[]表示参数,<>表示默认参数

zabbix配置ldap集成_php_23

zabbix配置ldap集成_zabbix配置ldap集成_24

    查看数据

zabbix配置ldap集成_数据库_25

    没有数据的话检查server和agentd的log,一些配置修改需要重启nginx zabbix_server zabbix_agentd来验证,web页面配置->主机->的名称要和agentd的配置文件里的名称一致

    

zabbix配置ldap集成_前端_26

    路由不能通的,检查下agentd端的防火墙和SELinux。在server的主机配置,我把agentd的用node1.lock.com,在server的hosts里添加了这个域名的解析。在node的agentd配置里,把Hostname设置为node1.lock.com

zabbix配置ldap集成_前端_27

    查看相应图形

zabbix配置ldap集成_zabbix配置ldap集成_28

    查看该主机的数据图形

zabbix配置ldap集成_前端_29

    CPU是百分比数据,所以查看聚合图形

zabbix配置ldap集成_前端_30



    4.4 增加图形

    在配置->主机->在要添加图形的主机记录里->图形->创建图形->配置图形

zabbix配置ldap集成_前端_31

    预览图形

zabbix配置ldap集成_数据库_32



    4.5 配置触发器

    触发器表达式:

{<server>:<key>.<function>(<parament>)}<operator><constant>

    server:主机名称

    key:监控项的key

    function:对监控项的数据处理,评估采集到的数据是否在阈值下所使用的函数(sum,avg,count等)

    parameter:函数参数,大多数数值函数可以接收秒数为参数,在前面加'#'表示最近几次的取值.如sum(300)表示5分钟内所取值之和,sum(#10)表示最近10次取值之和,一次为最初定义函数更新时间

        avg,count,last,min,max,支持第二个参数,表示完成时间限定.如max(1h,7d)表示一个小时最大,返回一周前的最大值

        配置->主机->触发器

zabbix配置ldap集成_前端_33

    显示阈值线

zabbix配置ldap集成_php_34

    显示触发状态(稍等,)

zabbix配置ldap集成_前端_35



    4.6 接收问题通知

    管理->报警媒介类型->email,修改SMTP HELLO和SMTP email

zabbix配置ldap集成_php_36

    配置->操作->创建操作,设置名称,移除条件

zabbix配置ldap集成_ViewUI_37

    操作->新的

zabbix配置ldap集成_前端_38

    用户群组->添加->选择群组,用户->添加->添加用户,仅送到->邮件,添加操作

zabbix配置ldap集成_数据库_39

    测试接收通知

[root@localhost ~]#cat /dev/urandom | md5sum

    监测中->最新数据,选择CPU load->显示堆叠数据图,发现设置的阈值有点高,调整为0.009

zabbix配置ldap集成_数据库_40

    监测中->触发器->选择群组和主机

zabbix配置ldap集成_数据库_41

    此时,应该在设置的邮件里收到通知,如果没有,报表->动作日志

zabbix配置ldap集成_数据库_42

    因为本机没有设置邮箱服务



    4.7 设置新模板

    模板允许对有用项目,触发器和其他实体进行分组,以便通过在单个步骤中应用于主机,可以一次又一次地重复使用它们。当模板链接到主机时,主机继承模板的所有实体。所以,基本上一个预先准备的一堆检查可以很快应用。

    配置->模板->创建模板

zabbix配置ldap集成_前端_43

    模板是存在的,但它没有任何内容,没有项目,触发器或其他实体

zabbix配置ldap集成_数据库_44

    将项目添加到模板,在配置->主机中,单击'新主机'旁边的监控项,标记列表中“CPU负载”项的复选框,单击列表下面的复制,选择要复制项目的模板,单击复制

zabbix配置ldap集成_php_45

    配置->模板->新建的模板->单击->监控项

zabbix配置ldap集成_php_46

    将模板连接到主机,配置->主机,模板->选择,添加->更新

zabbix配置ldap集成_数据库_47

zabbix配置ldap集成_数据库_48