专栏首页kevin-blog源代码编译zabbix4.0.2

源代码编译zabbix4.0.2

简介:

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

简单的监控流程

一个监控系统运行的大概的流程是这样的: zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式: 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy 被动:server向agent请求获取监控项的数据,agent返回数据。

安装

然后我选着的安装版本是4.0.4LTS,至于为什么,因为是最新版本啊~ 话不都说,上安装教程!

前提

服务器要安装好LNMP环境,建议手动编译吧,因为用一键安装脚本会有一系列不可抗问题 先放上我的LNMP版本

  • CentOS Linux release 7.5.1804 (Core)
  • Nginx 1.9.9
  • Mysql 5.7.23 #PHP需要5.4.0以上
  • PHP 7.1.25

不需要和我一样的配置,但是nginx配置文件要添加php支持,简单来说能phpinfo()要有回显,然后php要安装基本的模块,能连接mysql等等,具体的安装方式我在下一篇博客会写

下载

去zabbix的官网下载编译包。 下载后解压

➜  cd /home/     #进入下载文件目录
➜  tar -zxvf zabbix-4.0.4.tar.gz  #解压

然后创建用户

➜  groupadd zabbix #创建用户组zabbix
➜  useradd zabbix -g zabbix -s /sbin/nologin #创建用户zabbix,并且把用户zabbix加入到用户组zabbix中

导入数据库

因为我用的是Mysql 所以这里命令是

➜  mysql -u root -p  #登录数据库
Enter password: 
mysql> create database zabbix character set utf8 collate utf8_bin; #创建一个名叫zabbix的数据库
mysql> grant all privileges on zabbix.* to zabbix@"%" identified by '<password>'; #创建用户并授权
mysql> flush privileges;  #刷新权限
mysql> quit;    #退出

进入数据库文件

➜  cd /home/zabbix-4.0.4/database/mysql/

➜ mysql -uzabbix -p zabbix < schema.sql ➜ mysql -uzabbix -p zabbix < images.sql ➜ mysql -uzabbix -p zabbix < data.sql #导入数据库文件

编译zabbix
➜  cd /home
➜  mkdir /home/zabbix    #创建zabbix的安装目录
➜  chown zabbix:zabbix -R zabbix  #授予zabbix用户权限
➜  ./configure --enable-server --enable-agent --with-mysql=/home/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2  #因为我的数据库是自己编译安装的,所以自己指定了一下mysql安装目录
➜  make&&make install #等待一会就好了

然后修改一下配置文件 首先创建日志文件 ➜ cd /home/zabbix ➜ mkdir {tmp,log} ➜ chowe -R zabbix:zabbix /home/zabbix

zabbix-server
➜  vi /home/zabbix/etc/zabbix_server.conf  #修改
LogFile=/home/zabbix/log/zabbix_server.log
PidFile=/home/zabbix/tmp/zabbix_server.pid  #去掉前面的注释
SocketDir=/home/zabbix/tmp
DBHost=192.168.30.106  #安装Mysql的服务器地址,注意最好不要填127.0.0或者localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
DBSocket=/home/mysql/tmp/mysql.sock
DBPort=3306

然后其余的参数 如果你的安装很小(最多十个受监控主机),其余参数将适合您的默认值。如果要最大化Zabbix服务器(或代理)的性能,则应更改默认参数。

zabbix-agent
➜  vi /home/zabbix/etc/zabbix_server.conf
PidFile=/home/zabbix/tmp/zabbix_agentd.pid
LogFile=/home/zabbix/log/zabbix_agentd.log
UnsafeUserParameters=1 #改用自定义的key
Server=192.168.30.106  #改成zabbix-server的地址
ServerActive=192.168.30.106
Hostname=Zabbix server #这里要和网页中主机的主机名称一样,不然服务器会找不到

其余默认就好

然后启动一下服务

➜  zabbix_server
➜  zabbix_agentd
安装前端

我这里用的是nginx 所以进入nginx安装目录

➜  cd /home/nginx/html/
➜  mkdir zabbix
➜  chown nginx:nginx ./zabbix
➜  cp /home/zabbix-4.0.4/frontends/php/* ./zabbix/

然后打开浏览器,/zabbix/setup.php

显示这样的窗口 然后下一步 会警告下面选项的值过低

  • post_max_size
  • max_execution_time
  • max_input_time

修改一下php的配置文件就好

➜  vi /home/php/etc/php.ini  #修改
post_max_size =16M
max_execution_time =300
max_input_time =300

重启一下php服务

ps -ef |grep php #查看php的pid
kill -USR2 3734    #重启

然后刷新一下页面没有警告就好了。然后继续下一步,输入基本的信息,填写一下数据库的信息,就好了 到最后安装完成的时候,会有个php文件,你下载下来,然后scp发到服务器的指定目录就好,他会提示的! 然后浏览器输入<192.168.30.106>/zabbix/ 就能登入了

默认账户是Admin,密码是zabbix,主要A是大写的,登入成功后显示

在zabbix服务器那值如果是绿色的是的话表示连接成功了。然后后面的操作就自己去官网看教程吧。

遇到的问题

安装的时候也不是顺风顺水,一路磕磕碰碰,问题一大堆,不知道是最新版的缘故还是我误操作太多的缘故,反正照着官方文档来各种也各种问题

用rpm包安装

刚开始用rpm包安装,然后文件安装位置贼乱,然后前段还各种连不上zabbix服务器,10050端口也没有开启,但是我明明已经开启server服务了,然后查看日志,说什么无法连接到数据库,刚开始以为是配置文件的问题,然后查了一下zabbix-server配置文件,数据库设置也没有错误,数据库授权也是好的,也测试过,但就是连接不上,然后就放弃了,哎,如果知道问题出在哪里的可以联系我,最后卸载,换成现在的从源编译。

从源码包编译

从源代码编译,也有各种奇怪的问题,比如在启动zabbix-server的时候报error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such,然后试着百度解决问题,然后发现是因为我mysql是自己编译的zabbix找不到lib文件

解决办法

添加软链

ln /home/mysql/lib/libmysqlclient.so.20 /usr/lib/

然后更新一下配置

/sbin/ldconfig –v

然后就启动成功了

最后安装完以后,在问题处报错,提示我的Zabbix server的zabbix-agent搜索不到,然后看日志,显示failed to accept an incoming connection: connection from "192.168.30.106" rejected, allowed hosts: "192.168.30.105",我以为是我的配置文件出问题了,然后仔细查看了一遍,没有发现错误,最后想到,可能是官网给的agent包有问题,就卸载了,去官网重新下载了一个4.0的agent,编译安装,一样的配置文件,然后连接上了= =!

总结

就像老师说的,好事多磨,总的来说成功的感觉还是喜悦的,哈哈,只要不放弃就对了,要有一个坚定的信念,Anything is possible!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ImportError: No mod

      File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>

    用户2398817
  • sqlite3 批量insert的性能优

        在创建表的时候,可以不用指定主键,sqlite默认会有一个隐藏的rowid字段存在,只需要在select的时候在字段中将rowid as成一个字段名称就...

    用户2398817
  • 移植python到小米路由器记录。

    最近抢了一个小米路由器,研究了一下,总的来说现在看起来功能还很少。现在比较有用的功能就是,远程下载功能,支持迅雷,电驴等,不过现在看电影啥的都是直接在线看的,基...

    用户2398817
  • 我的python学习--第七、八天

    HTTP(与web应用会话的协议)有许多不同的URL方法。默认情况下,路由只回应GET请求,但是通过route()装饰器传递methods参数可以改变这个行为。

    用户2398817
  • Android使用SQLITE3 WAL

    sqlite是支持write ahead logging(WAL)模式的,开启WAL模式可以提高写入数据库的速度,读和写之间不会阻塞,但是写与写之间依然是阻塞的...

    用户2398817
  • sqlite3_exec函数的使用

    sqlite3数据库是一个小型的关系型的数据库,以文件的方式存在,打开文件即是打开数据库,它小巧且功能强大,在嵌入式领域内使用很广.现在就介绍一下其中一个重要函...

    用户2398817
  • Sublime3快捷键大全

     Sublime Text3比起Notepad++,UltraEdit之类Code编辑器来说配合着各种插件使用,Sublime Text在实际的使用中变得非常的...

    用户2398817

扫码关注云+社区

领取腾讯云代金券