zabbix系列之服务端的安装部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix系列之服务端的安装部署相关的知识,希望对你有一定的参考价值。

zabbix

1、zabbix的定义

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

 

2、zabbix的主要特点:

(1)、安装与配置简单,学习成本低

(2)、支持多语言(包括中文)

(3)、免费开源

(4)、自动发现服务器与网络设备

(5)、分布式监视以及WEB集中管理功能

(6)、可以无agent监视

(7)、用户安全认证和柔软的授权方式

(8)、通过WEB界面设置或查看监视结果

(9)、email等通知功能等等

 

3、Zabbix的主要功能:

(1)、CPU负荷

(2)、内存使用

(3)、磁盘使用

(4)、网络状况

(5)、端口监视

(6)、日志监视

(7)、服务监控

 

4、zabbix工作的原理

Zabbix支持四种工作方式分别是Snmp 、 zabbix(server/agent)、JMX、IPMI(基于硬件提供的专用接口)。

Snmp 协议介绍

Agent:代理在UDP的161端口接收NMS的读写请求消息,agent:161,被监控端

Manger:管理站在UDP的162端口接收代理的事件通告消息 ,NMS:162,监控端

工作原理图如图1所示

技术分享图片

                                  图1

5、zabbix的协议

Zabbix 是基于zabbix协议工作的,其底层是依赖于snmp的工作方式来工作的,它的模型是Server/agent 方式。Service : 10051 :由三部分组成(zabbix-web gui[依赖lamp平台、配置接口、展示数据]、zabbix-server[周期性去agent端采集数据]、service database[负责存储数据])。Agent: 10050:收集本机数据、暂时存储、监听等待server端来采集数据部署应用场景。如图2所示

技术分享图片

                                         图2

6、zabbix一次监控的全过程原理图

定义监控主机,主机添加到主机组,定义item(监控主机的监控项,[监控资源]),graphs绘图[不是必须、套用用模板就不用],teiggers:定义触发器,action:定义触发器触发后要执行的动作,比如服务重启,发邮件给管理员,动作升级,发邮件给部门主管。如图3所示

技术分享图片

                                    图3

7、zabbix一次全监控的工作流程

数据采集、数据存储、数据展示、服务报警与升级。如图4所示

技术分享图片

                                   图4


开始配置

环境:CentOS 7(最小化安装)


1、搭建LNMP环境

[[email protected] ~]# yum install make httpd php mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml unixODBC-devel OpenIPMI-devel libxml2-devel mariadb mariadb-server -y

注:我这里是使用之前编译安装的LNMP环境,如果不想那么麻烦,就直接按照上面的命令搭建LNMP环境


2、创建用户

[[email protected] ~]# useradd zabbix -s /sbin/nologin


3、创建zabbix数据库,并授权

[[email protected] ~]# mysql -uroot -p
Enter password: 

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on zabbix.* to [email protected] identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


4、下载zabbix,解压,并将zabbix导入数据库

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz
[[email protected] src]# tar -xf zabbix-3.2.7.tar.gz 
[[email protected] src]# cd zabbix-3.2.7
[[email protected] zabbix-3.2.7]#  cd database/mysql/
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql          
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[[email protected] mysql]# mysql -uzabbix -pzabbix zabbix < data.sql


5、编译安装zabbix


[[email protected] ~]# cd /usr/local/src/zabbix-3.2.7
[[email protected] zabbix-3.2.7]# ./configure --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --prefix=/usr/local/zabbix
[[email protected] zabbix-3.2.7]# make && make install

注:可能会遇到的问题

问题一:configure: error: unixODBC library not found
解决方法:yum install unixODBC-devel -y

问题二:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决方法:yum install net-snmp-devel -y

问题三:configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h 
解决方法:yum -y install OpenIPMI-devel

问题四:configure: error: Curl library not found
解决方法: yum install curl-devel -y


6、修改nginx.conf使其支持index.php

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf
            index  index.html index.htm index.php;


7、修改zabbix对应的数据库账号和密码

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix


8、配置启动脚本,并修改相关选项

[[email protected] ~]# cd /usr/local/src/zabbix-3.2.7
[[email protected] zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[[email protected] zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/ 
[[email protected] zabbix-3.2.7]# sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"\g' /etc/init.d/zabbix_agentd 
[[email protected] zabbix-3.2.7]# sed -i 's\ZABBIX_BIN="/usr/local/sbin/zabbix_server"\ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"\g' /etc/init.d/zabbix_server


9、启动服务

[[email protected] ~]# /etc/init.d/zabbix_server start
Reloading systemd:                                         [  OK  ]
Starting zabbix_server (via systemctl):                    [  OK  ]
[[email protected] ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl):                    [  OK  ]
[[email protected] ~]# chkconfig zabbix_server on
[[email protected] ~]# chkconfig zabbix_agentd on

注:

当启动zabbix服务端出现下面的问题时
[[email protected] zabbix-3.2.7]# /usr/local/zabbix/sbin/zabbix_server start
/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object 
file: No such file or directory
解决方法:
[[email protected] zabbix-3.2.7]# find / -name libmysqlclient.so.20
/usr/local/src/mysql-5.7.20/libmysql/libmysqlclient.so.20
/usr/local/mysql/lib/libmysqlclient.so.20
[[email protected] zabbix-3.2.7]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
[[email protected] zabbix-3.2.7]# ldconfig
[[email protected] zabbix-3.2.7]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl):                    [  OK  ]


10、需要修改php.ini支持的大小,不然web界面会报错

[[email protected] ~]# vim /usr/local/php/lib/php.ini
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M

##重启服务
[[email protected] ~]# systemctl restart nginx
[[email protected] ~]# service php-fpm restart


11、复制zabbix的PHP目录到Nginx的目录下


[[email protected] ~]# cd /usr/local/src/zabbix-3.2.7/frontends/
[[email protected] frontends]# cp -rf php /usr/local/nginx/html/zabbix
[[email protected] ~]# chown -R nginx:nginx /usr/local/nginx/html/zabbix


12、访问web界面(http://192.168.15.11/zabbix),如图5所示,一直默认下一步

技术分享图片

图5


13、下面的选项全部都要为OK,如图6所示

技术分享图片

图6

注:如果是yum安装的则缺少什么就直接使用yum安装什么,我的是编译安装的,所以解决方法如下

PHP LDAP      off      Warning
PHP gettext   off      Warning
ldap的解决方法:
首先查看源码安装的php模块中是否有ldap.so
[[email protected] ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
如果有就直接在php.ini文件里添加extension=ldap.so,如果没有,则
[[email protected] ~]# cd /usr/local/src/php-5.5.38/ext/ldap
[[email protected] ldap]# /usr/local/php/bin/phpize
[[email protected] ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[[email protected] ldap]# make && make install
[[email protected] ldap]# make test
[[email protected] ldap]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有没有模块
[[email protected] ldap]# vim /usr/local/php/lib/php.ini
extension=ldap.so
然后重启服务

gettext的解决方法:
首先查看源码安装的php模块中是否有gettext.so
[[email protected] ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

如果有就直接在php.ini文件里添加extension=gettext.so,如果没有,则
[[email protected] ~]# cd /usr/local/src/php-5.5.38/ext/gettext/
[[email protected] gettext]# /usr/local/php/bin/phpize
[[email protected] gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[[email protected] gettext]# make && make install
[[email protected] gettext]# make test
[[email protected] gettext]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有没有模块
[[email protected] gettext]# vim /usr/local/php/lib/php.ini
extension=gettext.so
然后重启服务


14、连接数据库的相关配置如图7所示

技术分享图片

图7

注:

(1)、在配置数据库连接时,如果出现如图8所示的问题,解决方法如下

技术分享图片

                                                  图8

解决方法:


[[email protected] zabbix]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBSocket=/usr/local/mysql/mysql.sock
[[email protected] ~]# vim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock

然后重启服务即可


(2)、在下一步时,如果遇到如图9所示的问题时,由于它提供了解决方法,所以我们按照它提供的解决方法来做就好了,把配置文件下载下来,然后上传并保存为/usr/local/nginx/html/zabbix/conf/zabbix.conf.php,最后刷新页面,如图10所示,则表示我们已经成功安装好zabbix了。

技术分享图片

                                                   图9

技术分享图片

                                                   图10

15、登录zabbix监控页面,如图11和图12所示,用户名默认为Admin,密码默认为zabbix。

技术分享图片

图11

技术分享图片

图12


16、修改相关选项,使zabbix页面支持中文

在我们的Windows电脑(C:\Windows\Fonts)里,如图13所示,随便找一种字体上传到网站目录里(/usr/local/nginx/html/zabbix/fonts/),并把原来的字体删除掉,把刚上传的字体名改为原本字体的名字(即DejaVuSans.ttf),如图14所示,即可支持中文。然后修改用户的属性,把语言改为中文,如图15所示,查看中文状态下的页面,如图16所示。

技术分享图片

图13

技术分享图片

                               图14

技术分享图片

图15

技术分享图片

图16


至此,zabbix服务端就已经搭建完成了。

以上是关于zabbix系列之服务端的安装部署的主要内容,如果未能解决你的问题,请参考以下文章

zabbix服务端的部署安装

zabbix服务端的部署安装

zabbix的安装避坑指南

Zabbix实战之部署篇Zabbix监控windows系统配置方法

ZABBIX最佳实践——客户端部署

电信云计算中心之监控zabbix项目