源代码编译zabbix4.0.2

2020-01-21 10:19:28 浏览数 (1)

简介:

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的官网下载编译包。 下载后解压

代码语言:javascript复制
➜  cd /home/     #进入下载文件目录
➜  tar -zxvf zabbix-4.0.4.tar.gz  #解压

然后创建用户

代码语言:javascript复制
➜  groupadd zabbix #创建用户组zabbix
➜  useradd zabbix -g zabbix -s /sbin/nologin #创建用户zabbix,并且把用户zabbix加入到用户组zabbix中

导入数据库

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

代码语言:javascript复制
➜  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;    #退出

进入数据库文件

代码语言:javascript复制
➜  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
代码语言:javascript复制
➜  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
代码语言:javascript复制
➜  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
代码语言:javascript复制
➜  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 #这里要和网页中主机的主机名称一样,不然服务器会找不到

其余默认就好

然后启动一下服务

代码语言:javascript复制
➜  zabbix_server
➜  zabbix_agentd
安装前端

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

代码语言:javascript复制
➜  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的配置文件就好

代码语言:javascript复制
➜  vi /home/php/etc/php.ini  #修改
post_max_size =16M
max_execution_time =300
max_input_time =300

重启一下php服务

代码语言:javascript复制
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文件

解决办法

添加软链

代码语言:javascript复制
ln /home/mysql/lib/libmysqlclient.so.20 /usr/lib/

然后更新一下配置

代码语言:javascript复制
/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 人点赞