zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。

  Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置。Zabbix Agent监控端口10050。

(1).zabbix的主要特点

  安装配置简单,学习成本低,支持多语言(包括中文),免费开源,自动发现服务器与网络设备分布式监视,Web集中管理,可以无agent监视,用户安全认证和柔软的授权方式,通过Web设置或查看监视结果,email等功能。

(2).zabbix的主要功能

  监控CPU负载、内存使用、磁盘使用、网络状态、端口监控、日志监控、插件开发自定义

(3).zabbix运行机制

  zabbix由zabbix server与可选组件zabbix agent两部分组成。

  Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OS X,Windows多平台。

  Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU 等信息收集。

  Zabbix Server可以单独监视远程服务器的服务状态,同时也可以与Zabbix Agent结合。可以轮询Zabbix Agent主动接收监视数据(trapping传递 方式),同时还可以被动接收Zabbix Agent发送的数据。

(4).准备安装包和部署环境

  注意:日志文件在/tmp/目录下。

  下载Zabbix的源码包:https://www.zabbix.com/download_sources。注意下,下载提供了两种版本:LTS版和标准版。LTS是长期支持(Long Term Support)的缩写,Zabbix将为客户提供5年的支持服务。前三年完全支持与后两年有限制支持。前三年包括一般、关键、安全性问题解决,后两年包括关键、安全性问题解决。超出时间不提供技术支持服务;标准版只提供6+1月支持。

  现在自己电脑上的C:\Windows\Fonts目录下查看是否存在微软雅黑字体,如果有上传一份(ttf格式),如果没有网上下载微软雅黑字体的ttf格式文件。

  Zabbix自带了数据库导入包,其中包括ibm_db2、mysql、oracle、postgresql和sqlite3。但是Web界面只提供了PHP。所以我这里选择在LNMP环境下部署。

(5).Zabbix监控端部署

  主机名:youxi1  IP地址:192.168.5.101  环境:LNMP(Mysql5.7.19、PHP7.1.24)

  在Zabbix监控服务器上部署Zabbix Server和Zabbix Agent(监控本身)。

 1)解压文件,进行数据库操作

[root@youxi1 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/  //解压
[root@youxi1 ~]# mysql -uroot -p12345678
mysql> create database zabbix;  //创建zabbix需要的数据库
Query OK, 1 row affected (0.01 sec) mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';  //授权
Query OK, 0 rows affected, 1 warning (0.06 sec) mysql> flush privileges;  //刷新
Query OK, 0 rows affected (0.03 sec) mysql> use zabbix;  //选择数据库
Database changed
mysql> source /usr/local/src/zabbix-3.4.3/database/mysql/schema.sql  //导入数据,如果不是mysql可以选择其他数据库类型
mysql> source /usr/local/src/zabbix-3.4.3/database/mysql/images.sql  //数据导入顺序不可变。
mysql> source /usr/local/src/zabbix-3.4.3/database/mysql/data.sql mysql> show tables;  //最后查看下,我是出现了140行
mysql> exit
Bye
[root@youxi1 ~]# mysql -uzabbix -pzabbix  //mysql登录测试
mysql>

 2)创建zabbix用户

[root@youxi1 ~]# useradd -M -s /sbin/nologin zabbix

  也可以groupadd zabbix && useradd -s /sbin/nologin -g zabbix zabbix。

 3)安装依赖包

[root@youxi1 ~]# yum install -y net-snmp-devel libevent libevent-devel

 4)编译安装Zabbix

[root@youxi1 ~]# cd /usr/local/src/zabbix-3.4.3/
[root@youxi1 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/var/lib/mysql/bin/mysql_config --with-net-snmp --with-libcurl
//编译完会提示你直接make install
[root@youxi1 zabbix-3.4.3]# make install
[root@youxi1 zabbix-3.4.3]# echo $?
0
[root@youxi1 zabbix-3.4.3]# ls /usr/local/zabbix/
bin etc lib sbin share

  参数说明:

    --prefix  指定路径
    --enable-server  支持Zabbix Server
    --enable-agent  支持Zabbix Agent
    --with-mysql  指定mysql库,可以选择自定义路径mysql_config。mysql_config是脚本文件,用于编译 mysql 客户端程序。
    --with-net-snmp  支持SNMP协议(简单网络管理协议),需要依赖包net-snmp-devel
    --libcurl  libcurl库,libcurl当前支持http, https, ftp, gopher, telnet, dict, file,和ldap 协议

  其他参数:

    --enable-proxy  支持Zabbix proxy,一般代理服务器才会启用。

  zabbix proxy 是一个监控代理服务器,它收集到监控数据,先存放在缓冲区(保存时间可以通过配置文件设置),然后再发送到 zabbix server。监控代理服务需要一个独立的数据库。用 zabbix proxy的好处:进程监控,当监控的位置通信不便时或当通讯上千台设备的时候,使用zabbix_proxy可以简化维护分布式监控,降低 zabbix server 的负载。

 5)修改Zabbix Server的配置信息

[root@youxi1 zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_server.conf
# DBHost=localhost  //第85行,指定Mysql的地址,默认本地localhost,如果不是本地就写Mysql所在服务器的IP地址
DBName=zabbix  //第95行,指定使用的数据库
DBUser=zabbix  //第111行,指定登录数据库的用户
DBPassword=zabbix  //第119行,指定登录数据库的密码
# DBSocket=/tmp/mysql.sock  //第126行,如果不是yum安装的mysql需要注意修改,指向mysql.sock
# DBPort=3306  //第134行,指定登录数据库的端口号,默认3306

 6)修改Zabbix Agent的配值信息

[root@youxi1 zabbix-3.4.3]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1  //第93行,只接受这里指定的IP地址或主机名的传入连接,逗号分隔
# ListenPort=10050  //第101行,指定Zabbix Agent的监听端口号,默认10050
ServerActive=127.0.0.1  //第134行,主动连接的Zabbix Server的IP地址
Hostname=Zabbix server  //第145行,Zabbix Server查看时这台主机的名称
UnsafeUserParameters=1  //第280行,是否允许特殊字符存在于用户自定义的参数名称中。默认为0,不允许

  Server和ServerActive都是指向Zabbix Server服务器,但前者使用于被动模式(Zabbix Agent被动等待连接),后者使用于主动模式(Zabbix Agent主动连接Zabbix Server)。

  UnsafeUserParameters里的特殊字符包括\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

 7)启动Zabbix,并加入开机自启

  启动Zabbix Server时如果报错信息如下,这是找不到mysql文件中的libmysqlclient.so.20,则将地址添加到/etc/ld.so.conf

[root@youxi1 zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server  //启动
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
[root@youxi1 zabbix-3.4.3]# vim /etc/ld.so.conf
/var/lib/mysql/lib  //添加libmysqlclient.so.20所在的地址
[root@youxi1 zabbix-3.4.3]# ldconfig  //重载库文件

  之后再启动,并加入开机自启

[root@youxi1 zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_server  //Zabbix Server启动
[root@youxi1 zabbix-3.4.3]# echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local  //添加开机自启
[root@youxi1 zabbix-3.4.3]# ll /etc/rc.d/rc.local  //确保源文件有执行权限
-rwxr-xr-x 1 root root 516 7月 1 14:55 /etc/rc.d/rc.local
[root@youxi1 zabbix-3.4.3]# /usr/local/zabbix/sbin/zabbix_agentd  //Zabbix Agent启动
[root@youxi1 zabbix-3.4.3]# echo /usr/local/zabbix/sbin/zabbix_agentd >> /etc/rc.local  //添加开机自启
[root@youxi1 zabbix-3.4.3]# ss -antup | grep zabbix  //可以看到10050是Zabbix Agent,10051是Zabbix Server
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=16236,fd=4),("zabbix_agentd",pid=16235,fd=4),("zabbix_agentd",pid=16234,fd=4),("zabbix_agentd",pid=16233,fd=4)
,("zabbix_agentd",pid=16232,fd=4),("zabbix_agentd",pid=16231,fd=4))
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=16204,fd=4),("zabbix_server",pid=16203,fd=4),("zabbix_server",pid=16202,fd=4),("zabbix_server",pid=16201,fd=4)
,("zabbix_server",pid=16200,fd=4),("zabbix_server",pid=16199,fd=4),("zabbix_server",pid=16198,fd=4),("zabbix_server",pid=16197,fd=4),("zabbix_server",pid=16196,fd=4),
("zabbix_server",pid=16195,fd=4),("zabbix_server",pid=16194,fd=4),("zabbix_server",pid=16193,fd=4),("zabbix_server",pid=16192,fd=4),("zabbix_server",pid=16190,fd=4),
("zabbix_server",pid=16189,fd=4),("zabbix_server",pid=16188,fd=4),("zabbix_server",pid=16184,fd=4),("zabbix_server",pid=16183,fd=4),("zabbix_server",pid=16181,fd=4),
("zabbix_server",pid=16180,fd=4),("zabbix_server",pid=16179,fd=4),("zabbix_server",pid=16177,fd=4),("zabbix_server",pid=16175,fd=4),("zabbix_server",pid=16174,fd=4),
("zabbix_server",pid=16173,fd=4),("zabbix_server",pid=16171,fd=4),("zabbix_server",pid=16170,fd=4),("zabbix_server",pid=16169,fd=4),("zabbix_server",pid=16168,fd=4),
("zabbix_server",pid=16167,fd=4),("zabbix_server",pid=16166,fd=4),("zabbix_server",pid=16165,fd=4),("zabbix_server",pid=16164,fd=4),("zabbix_server",pid=16163,fd=4))

  另外,官方非常贴心的准备了启动脚本,所以也可以使用启动脚本来管理Zabbix

[root@youxi1 zabbix-3.4.3]# ls /usr/local/src/zabbix-.4.3/misc/init.d/fedora/core/
zabbix_agentd zabbix_server  //我选择的是fedora系统的启动脚本,因为这是与CentOS一脉的分支。
[root@youxi1 zabbix-3.4.3]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core/* /etc/init.d/
[root@youxi1 zabbix-3.4.3]# vim /etc/init.d/zabbix_server  //修改Zabbix Server启动脚本
BASEDIR=/usr/local/zabbix  //第22行,修改zabbix的基本目录
[root@youxi1 zabbix-3.4.3]# vim /etc/init.d/zabbix_agentd  //修改Zabbix Agent启动脚本
BASEDIR=/usr/local/zabbix  //第22行,修改zabbix的基本目录
//然后正常使用chkconfig命令添加到管理,设置开机自启,最后启动。

 8)复制Zabbix的php界面到指定目录,配置并重启nginx、Zabbix Server、php-fpm

  目录可以是nginx的默认目录,也可以是nginx里自定义的目录

[root@youxi1 zabbix-3.4.3]# cp -r frontends/php/* /usr/local/nginx/html/
[root@youxi1 zabbix-3.4.3]# vim /usr/local/nginx/conf/nginx.conf
location / {  //第43~46行
root html;
index index.php index.html index.htm;  //添加一个index.php
}
[root@youxi1 zabbix-3.4.3]# /usr/local/nginx/sbin/nginx -s reload
[root@youxi1 zabbix-3.4.3]# /etc/init.d/zabbix_server restart
Reloading systemd: [ 确定 ]
Restarting zabbix_server (via systemctl): [ 确定 ]
[root@youxi1 zabbix-3.4.3]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

 9)使用Web页面配置

  A.输入地址后应该显示如下页面

  B.按Next step(下一步),出现如下界面,此时需要检测全部通过,才能下一步

   可以根据提示一步步修改:

[root@youxi1 zabbix-3.4.3]# vim /usr/local/php/php.ini
//提示Minimum required size of PHP post is 16M (configuration option "post_max_size").
post_max_size = 16M  //第671行
//提示Minimum required limit on execution time of PHP scripts is 300 (configuration option "max_execution_time").
max_execution_time = 300  //第383行
//提示Minimum required limit on input parse time for PHP scripts is 300 (configuration option "max_input_time").
max_input_time = 300  //第393行
//提示Time zone for PHP is not set (configuration parameter "date.timezone").
date.timezone = Asia/Shanghai  //第939行,指定上海的时区
//另外还需要指定两个参数
mysqli.default_socket =/var/lib/mysql/mysql.sock  //第1170行,指定mysql.sock路径
always_populate_raw_post_data = -1  //必须禁用,php5.6.0及以上版本,需要自己添加,可以加在文件最后
[root@youxi1 zabbix-3.4.3]# /etc/init.d/php-fpm restart  //重启php-fpm
Gracefully shutting down php-fpm . done
Starting php-fpm done

   如果底下有一个PHP LDAP提示的Warning,这是由于在编译php时没有添加LDAP模块,需要添加这个模块

[root@youxi1 zabbix-3.4.3]# yum -y install openldap-devel openldap  //安装依赖包
[root@youxi1 zabbix-3.4.3]# rsync -avz /usr/lib64/libldap* /usr/lib/
sending incremental file list
libldap-2.4.so.2 -> libldap-2.4.so.2.10.7
libldap-2.4.so.2.10.7
libldap.so -> libldap-2.4.so.2.10.7
libldap_r-2.4.so.2 -> libldap_r-2.4.so.2.10.7
libldap_r-2.4.so.2.10.7
libldap_r.so -> libldap_r-2.4.so.2.10.7 sent 320,885 bytes received 66 bytes 641,902.00 bytes/sec
total size is 734,112 speedup is 2.29
[root@youxi1 zabbix-3.4.3]# cd /usr/local/src/php-7.1.24/ext/ldap/  //到php解压后的文件
[root@youxi1 ldap]# /usr/local/php/bin/phpize  //运行php内的phpize脚本
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
[root@youxi1 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[root@youxi1 ldap]# make && make install  //编译安装
[root@youxi1 ldap]# echo $?
0
[root@youxi1 ldap]# vim /usr/local/php/php.ini
extension=ldap.so  //添加一行,可以加在文件最后
[root@youxi1 ldap]# /etc/init.d/php-fpm restart  //重启php-fpm
Gracefully shutting down php-fpm . done
Starting php-fpm done

   刷新界面,如果全部ok就可以点击下一步了

   C.之后会出现如下界面,设置好后,点击下一步

   D.出现如下页面,默认即可。设置的是Zabbix Server服务器的主机名或IP地址、端口号、安装名称。下一步

   E.出现如下页面,这个页面是用于检查配置参数的。检测完成后下一步

   F.如下界面一般都会有,只需下载文件上传到指明的地址

    上传完成后刷新页面,如果出现如下页面则通过检测,按Finish结束

   G.最后跳转登录页面,默认用户名admin,密码zabbix

   H.成功登录后,可以在右上角的修改语言。Chinese(zh_CN),然后Update

   I.尝试监控本机。

    首先,启用自动发现

    然后,启用Zabbix server的监控

    启用之后等待几分钟,刷新页面,在可用性中必须至少有一个是绿色状态。如果可用性都是灰色,查看下Zabbix Agent是不是没有启动。

    最后就可以查看了

   J.解决中文图形出现方块字

[root@youxi1 ldap]# cd  //回到上传地址
[root@youxi1 ~]# mv msyh.ttf /usr/local/nginx/html/fonts/DejaVuSans.ttf  //将微软雅黑字体覆盖到指定文件,文件名固定
mv:是否覆盖"/usr/local/nginx/html/fonts/DejaVuSans.ttf"? y

    然后刷新页面

CentOS7下搭建zabbix监控(一)——Zabbix监控端配置的更多相关文章

  1. CentOS7下搭建zabbix监控(四)——Zabbix报警设置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...

  2. CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置

    CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...

  3. CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置

    Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...

  4. 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

    第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...

  5. 在Centos7下搭建Socks5代理服务器

    在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776   采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...

  6. Hyperledger超级账本在Centos7下搭建运行环境

    超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个不同利益体 ...

  7. centos7下搭建ceph luminous(12.2.1)--无网或网络较差

    本博客的主要内容是在centos7下搭建luminous,配置dashboard,搭建客户端使用rbd,源码安装ceph,最后给出一些较为常用的命令.本博客针对初次接触ceph的人群. 搭建环境: 主 ...

  8. Linux系统:Centos7下搭建PostgreSQL关系型数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...

  9. CentOS7下搭建yum仓库

    服务端配置: 1.开启yum缓存 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@control /]# cat /etc/yum.c ...

随机推荐

  1. 从Retrofit的源码来看 HTTP

    关于Retrofit是啥,这里就不多解释了,还是先来瞅下官网: 而这次主要是了解它的底层动作机制,而在了解底层之前先来回顾一下官网的整体使用步骤: 咱们也以官网的这个例子为例,先从简单的使用开始逐步深 ...

  2. linux网络编程之system v消息队列(二)

    今天继续学习system v消息队列,主要是学习两个函数的使用,开始进入正题: 下面则开始用代码来使用一下该发送函数: 在运行之前,先查看一下1234消息队列是否已经创建: 用上次编写的查看消息队列状 ...

  3. 题解 洛谷P1290 【欧几里德的游戏】

    这题没必要那么麻烦,只需要推理一下即可: 假设我们有两个数\(x,y\),先把\(x\)设为较大值,\(y\)设为较小值.现在分成三种情况: \(1\).若两数为倍数关系,操作的一方赢. \(2\). ...

  4. 服务器上 MySql 8.0.16创建远程连接账号、获取初始密码、修改密码、重启命令等

    一. 创建远程连接账号 1. 终端连接服务器 ssh -p 端口号 用户名@ip地址 例如:ssh -p 22 yyy@1.2.3.4 2.进入mysql mysql -u 用户名 -p 然后输入密码 ...

  5. 设置input 中placeholder的样式

    ::-webkit-input-placeholder { /* Chrome/Opera/Safari */ position: relative; top: 4px; } ::-moz-place ...

  6. ActionChains方法

    click(on_element=None) ——单击鼠标左键 click_and_hold(on_element=None) ——点击鼠标左键,不松开 context_click(on_elemen ...

  7. .NET Core初览

    .NET Core 初览的应用场景为游戏服务器开发.所以测试在侧重点上更强于IO和密集型计算 网络IO: NetCore:60%CPU QPS 56W C++:31%CPU QPS 58W C++:6 ...

  8. x006-函数和模块的使用

    来源:百度SEO公司 函数和模块的使用 在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的.在函数名后面的圆括号中可以放置传递给 ...

  9. MongoDB新存储引擎WiredTiger实现(事务篇)

    导语:计算机硬件在飞速发展,数据规模在急速膨胀,但是数据库仍然使用是十年以前的架构体系,WiredTiger 尝试打破这一切,充分利用多核与大内存时代,开发一种真正满足未来大数据管理所需的数据库.本文 ...

  10. 三十一.MySQL存储引擎 、 数据导入导出 管理表记录 匹配条件

    1.MySQL存储引擎的配置 查看服务支持的存储引擎 查看默认存储类型 更改表的存储引擎 设置数据库服务默认使用的存储引擎 1.1 查看存储引擎信息 mysql> SHOW ENGINES\G ...