文章目录

  • 一、编译安装zabbix
  • 1.环境
  • 2.编译安装过程
  • 二、修改agent配置文件,启动Agent


一、编译安装zabbix

1.环境

1.系统:阿里云Centos7
2.确保已安装LNMP环境

LNMP环境:linux+Nginx + Mysql + PHP
①编译安装MySQL数据库5.7教程:

②搭建nginx服务

③阿里云centos7.6安装php7.3的详细教程(超级详细)

下载zabbix-5.0.7源码包

①访问网址:https://www.zabbix.com/cn/download

②选择Zabbix Source,如下图:

zabbix client Server ServerActive 说明 zabbix server启动_mysql


③选择Zabbix 5.0 LTS,然后点击下载即可

zabbix client Server ServerActive 说明 zabbix server启动_mysql_02

2.编译安装过程

打算将zabbix安装在~/opt目录下,将源码压缩包移动到~/opt目录下。。。
①解压源码包
[ops@test1 ~/opt]$ tar -zxvf zabbix-5.0.7.tar.gz
[ops@test1 ~/opt]$ cd zabbix-5.0.7/

②安装依赖包
[ops@test1 ~/opt/zabbix-5.0.7]$ sudo yum -y install unixODBC-devel net-snmp-devel libevent-devel libxml2-devel libcurl-devel java-1.6.0-openjdk-devel
如果配置添加了--enable-java,则需要安装依赖包java-1.6.0-openjdk-devel③编译安装
[ops@test1 ~/opt/zabbix-5.0.7]$ ./configure --prefix=/home/ops/opt/zabbix-server --enable-server --enable-agent --enable-proxy --with-mysql=/home/ops/opt/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --enable-java

--prefix=/home/ops/opt/zabbix-server 				//编译安装路径
--enable-server  									//启动服务端 ,安装部署zabbix服务器端软件
--enable-agent  									//安装部署zabbix被监控端软件
--enable-proxy 										//安装部署zabbix代理相关软件
--with-mysql=/home/ops/opt/mysql/bin/mysql_config   //编译连接mysql相关依赖包,并指定mysql_config的路径
--with-net-snmp 				//启动snmp相关,用于snmp监控设备,允许zabbix通过snmp协议监控其他设备
--with-libcurl 					//安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
--with-libxml2 					//启动xml相关
--with-unixodbc 				//启动odbc相关,用于监控数据库
--enable-java 					//启动java相关

[ops@test1 ~/opt/zabbix-5.0.7]$ make && make install

④初始化数据库信息,创建数据库,上线Zabbix的Web页面
数据库文件在解压后的zabbix-5.0.7目录下,具体路径:zabbix-5.0.2/database/mysql,分别按顺序导入:
schema.sql
images.sql
data.sql

[ops@test1 ~/opt/zabbix-5.0.7]$ mysql -uroot -p’123456’
mysql> create database zabbix_server character set UTF8 collate utf8_bin; //创建数据库,支持中文字符集,以及指定排序规则utf8_bin

#mysql> grant all on zabbix.* to zabbix@‘localhost’ identified by ‘zabbix’;
//创建可以访问数据库的账户与密码,我使用的是root用户,所以我就不需要这一步了

[ops@test1 ~/opt/zabbix-5.0.7]$ mysql -uroot -p’123456’ zabbix_server < database/mysql/schema.sql
[ops@test1 ~/opt/zabbix-5.0.7]$ mysql -uroot -p’123456’ zabbix_server < database/mysql/images.sql
[ops@test1 ~/opt/zabbix-5.0.7]$ mysql -uroot -p’123456’ zabbix_server < database/mysql/data.sql

⑤配置zabbix_server.conf配置文件
[ops@test1 ~/opt/zabbix-5.0.7]$ cd /home/ops/opt/zabbix-server/
[ops@test1 ~/opt/zabbix-server]$ vim etc/zabbix_server.conf
搜索以下几个字段修改:

DBHost=localhost
DBName=zabbix_server          //数据库名
DBUser=root                   //连接数据库的用户
DBPassword=123456             //密码
DBSocket=/home/ops/opt/mysql/mysql.sock                //数据库sock文件路径
DBPort=3306                   //端口
LogFile=/home/ops/opt/zabbix_server/zabbix_server.log  //日志文件
PidFile=/home/ops/opt/zabbix_server/zabbix_server.pid  //保存pid的文件
SocketDir=/home/ops/opt/zabbix                         //保存sock文件的目录

⑥将mysql lib目录添加到lib环境变量中
[ops@test1 ~/opt/zabbix-server]$ echo ‘/home/ops/opt/mysql/lib/’ > /etc/ld.so.conf.d/mysql.conf #因为使用的是普通用户安装,所以需要切换到root用户自行这一步,要不没权限,echo命令不支持sudo
[ops@test1 ~/opt/zabbix-server]$ ldconfig -v

⑦启动zabbix-server
[ops@test1 ~/opt/zabbix-server]$ /home/ops/opt/zabbix-server/sbin/zabbix_server -c /home/ops/opt/zabbix-server/etc/zabbix_server.conf
如果遇到报错:/home/ops/opt/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory 是因为前面将mysql lib目录添加到lib环境变量中的时候命令输入有问题,注意中英文字符 ‘/home/ops/opt/mysql/lib/’,其中单引号是英文符号才是对的
⑧配置zabbix-server前端界面
前端界面在zabbix源码包下面的ui目录当中,复制前端文件到nginx的html中
[ops@test1 ~/opt/zabbix-server]$ cd /home/ops/opt/zabbix-5.0.7/ui
[ops@test1 ~/opt/zabbix-5.0.7/ui]$ cp -r * /home/ops/opt/nginx/html/

⑨配置nginx
开启nginx服务的php支持
[ops@test1 ~/opt/zabbix-server]$ vim /home/ops/opt/nginx/conf/nginx.conf

上面配置已省略:
     location / {
            root   html;
            index  index.php index.htm;
        }
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

⑩ 启动nginx
[ops@test1 ~/opt/zabbix-server]$ /home/ops/opt/nginx/sbin/nginx
当然,如果做了软链接可以直接使用软链接启动就好

11.配置php-fpm
编辑php.ini 文件,这个文件是在安装php的时候指定的,例如我的php.ini文件路径是/home/ops/opt/php/lib/php.ini
[ops@test1 ~/opt/zabbix-server]$ vim /home/ops/opt/php/lib/php.ini
修改以下参数:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
mysqli.default_socket = /home/ops/opt/mysql/mysql.sock     #此sock文件按mysql实际运行生成的sock文件为准
pdo_mysql.default_socket= /home/ops/opt/mysql/mysql.sock   #此sock文件按mysql实际运行生成的sock文件为准

12.重新启动php-fpm
[ops@test1 ~/opt/zabbix-server]$ sudo systemctl restart php-fpm

13.打开浏览器,访问zabbix

zabbix client Server ServerActive 说明 zabbix server启动_mysql_03


直接点Next step即可

没有显示红色字体的Fail则表示正确,可以直接点击Next step即可,但是如果出现红色字体的Fail,如下图:

zabbix client Server ServerActive 说明 zabbix server启动_nginx_04


这样说明php.ini文件配置有问题,需要将错误的字段修改post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone =Asia/Shanghai(这个也可以写其他的,一般使用这个)报错处理完毕之后点击Next step

zabbix client Server ServerActive 说明 zabbix server启动_mysql_05


在这里也遇到一个坑,点击Next step一直报错,不能跳到下一步,报错截图如下:

zabbix client Server ServerActive 说明 zabbix server启动_nginx_06


原因:这是因为创建zabbix数据库(上面创建的zabbix_server库)的时候字符集编码问题造成的

解决办法:删除mysql缘由的zabbix_server数据库,重新创建zabbix_server数据库,注意使用命令:

create database zabbix_server character set UTF8 collate utf8_bin;

新建zabbix_server数据库之后重新导入schema.sql、images.sql、data.sql文件

处理完之后点击Next step进行下一步这里正确填写数据库连接信息,填写完之后点击Next step

zabbix client Server ServerActive 说明 zabbix server启动_mysql_07

Name自己填,可选填

点击Next step

zabbix client Server ServerActive 说明 zabbix server启动_mysql_08


点击Next step

zabbix client Server ServerActive 说明 zabbix server启动_mysql_09


处理完之后点击Finish

zabbix client Server ServerActive 说明 zabbix server启动_php_10


点击Finish

zabbix client Server ServerActive 说明 zabbix server启动_mysql_11


账号:Admin

密码:zabbix

填写信息登录

zabbix client Server ServerActive 说明 zabbix server启动_mysql_12

二、修改agent配置文件,启动Agent

①修改配置
[ops@test1 ~/opt/zabbix-server]$ cd /home/ops/opt/zabbix/etc
[ops@test1 ~/opt/zabbix-server/etc]$ vim zabbix_agentd.conf
修改如下配置:

Server=127.0.0.1             //谁可以监控本机(被动监控模式),如果有多个主机可以监控本机,则填写ip使用逗号隔开,例如:127.0.0.1,192.168.2.5 
ServerActive=127.0.0.1       //谁可以监控本机(主动监控模式)
Hostname=web1   //被监控端自己的主机名,在zabbix web页面Monitoring->Configuration->Hosts 页面更改Host name和zabbix_agentd.conf里面的Hostname一样
#EnableRemoteCommands=1       //监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
UnsafeUserParameters=1       //是否允许自定义key监控

②启动Agent
[ops@test1 ~/opt/zabbix-server/etc]$ /home/ops/opt/zabbix/sbin/zabbix_agentd -c /home/ops/opt/zabbix/etc/zabbix_agentd.conf

③查看进程

zabbix client Server ServerActive 说明 zabbix server启动_nginx_13


④查看启动日志

zabbix client Server ServerActive 说明 zabbix server启动_php_14


无错误,正常

如果有如下图错误:

zabbix client Server ServerActive 说明 zabbix server启动_mysql_15


原因:在zabbix web页面Monitoring->Configuration->Hosts 页面更改Host name和zabbix_agentd.conf里面的Hostname不一至

解决:将两边的Hostname修改一致,重新启动过Agent即可