2

zabbix介绍

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
zabbix官网: https://www.zabbix.com
zabbix 主要由2部分构成 zabbix serverzabbix agent
zabbix proxy是用来管理其他的agent,作为代理。

zabbix进程构成

zabbix有多个进程分别是:zabbix_agentdzabbix_getzabbix_senderzabbix_serverzabbix_proxy等。

zabbix_agentd
客户端守护进程,此进程可以收集客户端数据,CPU负载,网络带宽等。因此在被监控的主机上只需要安装zabbix_agentd服务即可。

zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server。这里的提交数据分为被监控主机主动提交数据给服务端和服务端主动去被监控主机提取数据(主动模式与被动模式)。

zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。

zabbix编译安装

1.1 环境说明

[root@moli_linux1 ~]$ cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 
[root@moli_linux1 ~]$ uname -r
3.10.0-862.6.3.el7.x86_64
[root@moli_linux1 ~]$ getenforce
Disabled
[root@moli_linux1 ~]$ 
[root@moli_linux1 ~]$ hostname -I
192.168.30.3 

安装的前提是基于lnmp架构,因此本机已经安装nginx-1.13.8+mysql-5.6.35+php-7.1.6,安装详情可参考CentOS7安装LNMP(nginx1.14.2、mariadb10.3.13、php7.3.3),下面开始安装zabbix:

1.2 安装依赖包

yum install net-snmp-devel libxml2-devel libcurl-devel
yum install libevent-devel

1.3 修改php.ini配置文件参数

max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1

1.4 下载源码包,解压,安装
下载地址:https://sourceforge.net/proje...
下载后解压,安装。

tar -xvf zabbix-3.4.9.tar.gz
cd zabbix-3.4.9
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make
make install

注:如果mysql是yum安装的,用find找到mysql_config的路径,通常在/usr/bin/mysql_config下,编译安装zabbix选用这个路径。

1.5 创建zabbix用户

groupadd zabbix
useradd zabbix

1.6 初始化zabbix_server数据库
创建zabbix数据库与用户

mysql -uroot -p
mysql>create database zabbix;
mysql>grant all on zabbix.* to 'zabbix'@localhost identified by 'zabbix'with grant option;

导入三张表到zabbix库

cd /usr/local/src/zabbix-3.4.9
mysql -uroot -p zabbix < database/mysql/schema.sql
mysql -uroot -p zabbix < database/mysql/images.sql
mysql -uroot -p zabbix < database/mysql/data.sql

1.7 配置zabbix_server
编辑zabbix_server配置文件,修改配置如下:vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/log/zabbix/zabbix_server.pid
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
StartDiscoverers=5
Timeout=30
CacheSize=16M
ValueCacheSize=16M

1.8 配置zabbix_agent
编辑zabbix_agent配置文件,修改配置如下:vim /usr/local/zabbix/etc/zabbix_agentd.conf


LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/var/log/zabbix/zabbix_agentd.pid
Server=192.168.30.3
ServerActive=192.168.30.3
ListenPort=10050
ListenIP=0.0.0.0
Hostname=192.168.30.3

1.9 添加web前段php文件

cp -rf /usr/local/src/zabbix-3.4.9/frontends/php/ /data/wwwroot/zabbix
chown -R zabbix:zabbix /data/wwwroot/nginx/zabbix/
mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix

2.0 添加系统服务

cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_server 
chmod +x /etc/init.d/zabbix_agentd 

修改开启自动文件

vim /etc/init.d/zabbix_server 
vim /etc/init.d/zabbix_agentd

将其中的basedir=/usr/local修改为/usr/local/zabbix
PIDFILE=/tmp/zabbix/$BINARY_NAME.pid改为PIDFILE=/var/log/zabbix/$BINARY_NAME.pid
或者执行:

sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd

添加开机自启列表:

chkconfig --add zabbix_agentd
chkconfig --add zabbix_server
chkconfig zabbix_server on
chkconfig zabbix_agentd on

2.1 添加nginx虚拟主机
vim /usr/local/nginx/conf/extra/zabbix_server.conf

server
{
    listen 80 default_server;
    server_name www.mori.com;
  
    location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/zabbix$fastcgi_script_name;
    }
    index index.html index.htm index.php;
    root /data/wwwroot/zabbix;
    access_log /data/nginx_logs/nginx_aaa_access.log combined_realip;
}

2.2 重新加载nginx服务,启动zabbix_agent,zabbix_server服务

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
/etc/init.d/zabbix_agentd start
/etc/init.d/zabbix_server start

2.3 检查端口进程

clipboard.png

2.3 web界面安装
浏览器访问192.168.30.3/setup.php进行安装

clipboard.png
点击下一步即可。

如果出现报错:
PHP bcmath extension missing(PHP configuration parameter --enable-bcmarth)
PHP sockets extension missing(PHP configuration parameter --enable-sockets)
是因为zabbix的使用依赖php的bcmath模块和sockets模块,但是zabbix检测出系统的php没有这两个模块,因此只需要对php安装一下这两个模块即可。
clipboard.png

解决缺少bcmath.so问题:

# 进入php包路径
cd /usr/local/src/php-7.1.6/ext/bcmath/

# 执行命令
/usr/local/php-fpm/bin/phpize

若执行/usr/local/php-fpm/bin/phpize出现以下报错:

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script

解决方法:

yum install -y autoconf m4

解决上诉报错再次执行:

/usr/local/php-fpm/bin/phpize
# 安装php扩展模块:
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make 
make install

执行完会生成一个路径,/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so(每个人的路径都不一样,可以用find / -name bcmath.so找出)

然后在php.ini添加

extension=/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so

最后重启php-fpm即可。

解决缺少sockets.so问题:

cd /usr/local/src/php-7.1.6/ext/sockets/
/usr/local/php-fpm/bin/phpize
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make 
make install

编辑php.ini,添加extension=sockets.so,重启php-fpm服务即可。

接下来就继续安装,检测都是OK,下一步:

clipboard.png

这一步填写数据库相关信息:

clipboard.png

填写zabbix服务端信息:
clipboard.png

查看你填写的信息,没有错误就下一步:
clipboard.png

这一步报错是因为zabbix无法创建zabbix.conf.php文件,直接点击第一点的下载链接,下载zabbix.conf.php,然后拷贝到第二点的目录里面即可,解决就点击下一步:
clipboard.png

大功告成!!
clipboard.png


syushin
948 声望316 粉丝