设为首页 收藏本站
查看: 1008|回复: 0

[经验分享] zabbix系列之服务端的安装部署(一)

[复制链接]

尚未签到

发表于 2019-1-18 11:47:00 | 显示全部楼层 |阅读模式
  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环境
[root@localhost ~]# 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、创建用户
[root@localhost ~]# useradd zabbix -s /sbin/nologin  3、创建zabbix数据库,并授权
  
[root@localhost ~]# 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 zabbix@localhost 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导入数据库

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

  5、编译安装zabbix
[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7
[root@localhost 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
[root@localhost 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
  
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
            index  index.html index.htm index.php;  

  7、修改zabbix对应的数据库账号和密码
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix  8、配置启动脚本,并修改相关选项
[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7
[root@localhost zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_server /etc/init.d/
[root@localhost zabbix-3.2.7]# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
[root@localhost zabbix-3.2.7]# sed -i 's\ZABBIX_BIN=&quot;/usr/local/sbin/zabbix_agentd&quot;\ZABBIX_BIN=&quot;/usr/local/zabbix/sbin/zabbix_agentd&quot;\g' /etc/init.d/zabbix_agentd
[root@localhost zabbix-3.2.7]# sed -i 's\ZABBIX_BIN=&quot;/usr/local/sbin/zabbix_server&quot;\ZABBIX_BIN=&quot;/usr/local/zabbix/sbin/zabbix_server&quot;\g' /etc/init.d/zabbix_server  9、启动服务
[root@localhost ~]# /etc/init.d/zabbix_server start
Reloading systemd:                                         [  OK  ]
Starting zabbix_server (via systemctl):                    [  OK  ]
[root@localhost ~]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd (via systemctl):                    [  OK  ]
[root@localhost ~]# chkconfig zabbix_server on
[root@localhost ~]# chkconfig zabbix_agentd on  注:
当启动zabbix服务端出现下面的问题时
[root@localhost 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
解决方法:
[root@localhost 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
[root@localhost zabbix-3.2.7]# echo &quot;/usr/local/mysql/lib&quot; >> /etc/ld.so.conf
[root@localhost zabbix-3.2.7]# ldconfig
[root@localhost zabbix-3.2.7]# /etc/init.d/zabbix_server start
Starting zabbix_server (via systemctl):                    [  OK  ]  10、需要修改php.ini支持的大小,不然web界面会报错

[root@localhost ~]# vim /usr/local/php/lib/php.ini
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
post_max_size = 32M
##重启服务
[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# service php-fpm restart  11、复制zabbix的PHP目录到Nginx的目录下
  
[root@localhost ~]# cd /usr/local/src/zabbix-3.2.7/frontends/
[root@localhost frontends]# cp -rf php /usr/local/nginx/html/zabbix
[root@localhost ~]# 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      Warningldap的解决方法:
首先查看源码安装的php模块中是否有ldap.so
[root@localhost ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
如果有就直接在php.ini文件里添加extension=ldap.so,如果没有,则
[root@localhost ~]# cd /usr/local/src/php-5.5.38/ext/ldap
[root@localhost ldap]# /usr/local/php/bin/phpize
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
如果出现configure: error: Cannot find ldap.h的报错,则执行yum install openldap-devel openldap -y
如果出现configure: error: Cannot find ldap libraries in /usr/lib.的报错,则执行cp -frp /usr/lib64/libldap* /usr/lib/
[root@localhost ldap]# make && make install
[root@localhost ldap]# make test
[root@localhost ldap]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有没有模块
[root@localhost ldap]# vim /usr/local/php/lib/php.ini
extension=ldap.so
然后重启服务
gettext的解决方法:
首先查看源码安装的php模块中是否有gettext.so
[root@localhost ~]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
如果有就直接在php.ini文件里添加extension=gettext.so,如果没有,则
[root@localhost ~]# cd /usr/local/src/php-5.5.38/ext/gettext/
[root@localhost gettext]# /usr/local/php/bin/phpize
[root@localhost gettext]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost gettext]# make && make install
[root@localhost gettext]# make test
[root@localhost gettext]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ ##查看有没有模块
[root@localhost gettext]# vim /usr/local/php/lib/php.ini
extension=gettext.so
然后重启服务  14、连接数据库的相关配置如图7所示

图7

  注:
  (1)、在配置数据库连接时,如果出现如图8所示的问题,解决方法如下
  
                                                    图8
  解决方法:
[root@localhost zabbix]# vim /usr/local/zabbix/etc/zabbix_server.conf
DBSocket=/usr/local/mysql/mysql.sock
[root@localhost ~]# 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服务端就已经搭建完成了。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-664778-1-1.html 上篇帖子: zabbix应用之获取监控项的graph曲线图 下篇帖子: Zabbix配置优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表