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监控端配置的更多相关文章
-
CentOS7下搭建zabbix监控(四)——Zabbix报警设置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 CentOS7下搭建zabbix监控(三)——Zabbix ...
-
CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...
-
CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置
Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...
-
第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,
第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...
-
在Centos7下搭建Socks5代理服务器
在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776 采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...
-
Hyperledger超级账本在Centos7下搭建运行环境
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO).埃森哲(Accenture)等十几个不同利益体 ...
-
centos7下搭建ceph luminous(12.2.1)--无网或网络较差
本博客的主要内容是在centos7下搭建luminous,配置dashboard,搭建客户端使用rbd,源码安装ceph,最后给出一些较为常用的命令.本博客针对初次接触ceph的人群. 搭建环境: 主 ...
-
Linux系统:Centos7下搭建PostgreSQL关系型数据库
本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...
-
CentOS7下搭建yum仓库
服务端配置: 1.开启yum缓存 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@control /]# cat /etc/yum.c ...
随机推荐
-
php-cgi not found
错误描述 用PHPStorm运行PHP脚本的时候浏览器提示"502 Bad Gateway",PHPStorm提示"php-cgi not found". 系统 ...
-
二叉树遍历 空间复杂度为O(1)
http://blog.****.net/mxw976235955/article/details/39829973 http://www.tuicool.com/articles/zA7NJbj / ...
-
linux命令find应用
基本语法: find path -option [-print ] [-exec -ok command ] {} \; find命令的参数: pathname: find ...
-
SICP-1.7-递归函数
递归函数 函数内部直接或间接的调用函数自身 将复杂问题简单化 例子程序 def sum_digits(n): """Return the sum of the digit ...
-
ERROR : PHP中错误基础
1.错误 在进行PHP代码编辑的时候,容易碰到error错误提示,PHP中错误有两种:语法错误.逻辑错误. 2.错误报告类型 Notice : 通知 比如直接使用未定义的变量,这种错误不影响PHP脚本 ...
-
LOJ2831 JOISC2018 道路建设 LCT、树状数组
传送门 题目的操作大概是:求某个点到根的链的逆序对,然后对这条链做区间赋值 求某个点到根的链,就是LCT中的access操作,所以我们每一次把access过后的链打上标记,就可以做到区间赋值了. 计算 ...
-
c# mvc 在控制器中动态解析cshtml文件并获取对应的html代码
public static string GetViewHtml(ControllerContext context, string viewName, Object param) { if (str ...
-
彻底解决(Microsoft Visual C++ 14.0 is required)的步骤123
之前要用协程gevent,安装pip install gevent包时遇到Microsoft Visual C++ 14.0 is required的报错提示,各种下载没有解决很头疼, 前两天安装sc ...
-
NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)
NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展.目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块. tinywan@tinyw ...
-
再谈编码 decode和encode
1. ascii. 有: 数字, 字母, 特殊字符. 8bit 1byte 128 最前面是0 2. gbk. 包含: ascii, 中文(主要), 日文, 韩文, 繁体文字. 16bit, 2byt ...