CentOS7搭建Zabbix4实现企业级监控系统


第一步 部署环境


基于LNMP之上搭建(LNMP一键安装包)

wget http://soft.×××er.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && LNMP_Auto="y" DBSelect="3" DB_Root_Password="lnmp.org" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ./install.sh lnmp

   https://lnmp.org/auto.html

lnmp1.png


第二步 源码安装Zabbix

下载zabbix源码到/root/目录,

cd /root/
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.4/zabbix-4.2.4.tar.gz


安装依赖程序

yum -y install net-snmp-devel libevent-devel


解压zabbix

tar -xf zabbix-4.2.4.tar.gz


服务端建立zabbix用户

groupadd  zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix


服务端编译参数

cd /root/zabbix-4.2.4
./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


第三步 创建zabbix的数据库


创建zabbixdb库

mysql -uroot -p (登陆数据库)

mysql>create database zabbixdb character set utf8;
mysql>grant all privileges on zabbixdb.* to zabbix@localhost identified by 'zpasswd';
mysql>flush privileges;
mysql>quit;


导入zabbix数据库

cd /root/zabbix-4.2.4
mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/schema.sql
mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/images.sql
mysql -uzabbix -pzpasswd zabbixdb <./database/mysql/data.sql
history -c  #清除历史命令


第四步 修改配置Zabbix文件


Zabbix 配置文件,把配置文件软链到/etc/zabbix目录下,方便维护。

ln -s /usr/local/zabbix/etc/ /etc/zabbix


修改配置文件中连接数据的用户名/密码

sed -i 's/^DBName=.*$/DBName=zabbixdb/g' /etc/zabbix/zabbix_server.conf
sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /etc/zabbix/zabbix_server.conf
sed -i 's/^.*DBPassword=.*$/DBPassword=zpasswd/g' /etc/zabbix/zabbix_server.conf

拷贝启动脚本

cp  /root/zabbix-4.2.4/misc/init.d/fedora/core/zabbix_*  /etc/init.d/
chmod +x /etc/init.d/zabbix_*


修改zabbix基本目录(根)

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

修改zabbix日志文件

sed -i 's/LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g' \
/etc/zabbix/zabbix_server.conf
sed -i 's/LogFile=\/tmp\/zabbix_agentd.log/LogFile=\/var\/log\/zabbix\/zabbix_agentd.log/g' \
/etc/zabbix/zabbix_agentd.conf


创建zabbix日志文件

mkdir /var/log/zabbix
touch /var/log/zabbix/zabbix_{server,agentd}.log
chown -R zabbix:zabbix /var/log/zabbix/


在配置文件末尾行加上自定义脚本存放目录

mkdir /etc/zabbix/script
sed -i '$a\AlertScriptsPath=\/etc\/zabbix\/script' /etc/zabbix/zabbix_server.conf

查看配置文件修改结果

grep -Ev "^$|^#" /etc/zabbix/zabbix_server.conf

### 提示 ###

LogFile=/var/log/zabbix/zabbix_server.log //日志文件目录
PidFile=/tmp/zabbix_server.pid //PID文件目录(默认)
DBHost=localhost      //数据库
DBName=zabbixdb        //数据库名
DBUser=zabbix          // 数据库用账户
DBPassword=zpasswd      // 数据库密码
AlertScriptsPath=/etc/zabbix/script //自定义脚本存放目录

################


启动Zabbix

服务端添加启动项

chkconfig --add zabbix_server
chkconfig zabbix_server on
service  zabbix_server start


服务端自身也需要监控,所以需要启动自己的agentd

chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
service  zabbix_agentd start



第五步 添加Nginx配置文件


cat /usr/local/nginx/conf/vhost/zabbix.conf 

server
 {
   listen       8099;
   server_name  92.168.20.10;
   index index.html index.htm index.php;
   root  /data/www/zabbix;
   
 
   location ~ .*\.(php|php5)?$
   {
     fastcgi_pass  unix:/tmp/php-cgi.sock;
     #fastcgi_pass  127.0.0.1:9000;
     fastcgi_index index.php;
     include fastcgi.conf;
   }
   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
     expires      30d;
   }
   location ~ .*\.(html|htm|js|css)?$
   {
     expires      8h;
   }
   
   location /5998153NginxStatus
   {
     stub_status on;
     access_log   off;
   }
   error_log    /home/wwwlogs/error.log;
   access_log   /dev/null;
  #access_log   /data/wwwlogs/access.log;
 }



拷贝Zabbix Web到/data/www/zabbix

cp -r /root/zabbix-4.2.4/frontends/php /data/www/zabbix


重启nginx


然后通过浏览器 进行WEB管理页面进行安装,

http://92.168.20.10:8099

zabbix1.png



Zabbix 管理页面是PHP语言,需要PHP服务的支持,安装过程中可能会出现一些错误。需要修改一些php参数。

zabbix2.png


第六步 PHP参数修改


注意:需要修改几个PHP的参数值

sed -i 's/post_max_size = 8M/post_max_size = 16M/g'  /usr/local/php/etc/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 300/g'  /usr/local/php/etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/g'  /usr/local/php/etc/php.ini


#sed -i 's/;date.timezone = /date.timezone = Asia\/Shanghai/g'  /usr/local/php/etc/php.ini
#sed -i 's/;always_populate_raw_post_data = -1/always_populate_raw_post_data = -1/g'  /usr/local/php/etc/php.ini


修改之后

service php-fpm restart


如果有 PHP ldap Warning

#出现告警是因为ldap模块不存在,须要编译生成此模块并重新加载

[root@DE5-2673v3-1287 ~]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-*/
opcache.a  opcache.so


#查看PHP版本

[root@DE5-2673v3-1287 ~]# php -v 
PHP 5.6.40 (cli) (built: Jul 15 2019 13:04:32) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2014, by Zend Technologies

#到源码包的解压目录下,没有保存源码文件的话 , 下载相同版本的php进行解压 , 进行源码编译ldap模块(其他模块如果缺失编译方法一样)

[root@DE5-2673v3-1287 ~]# cd /root/lnmp1.6-full/src/  #进入模块所在的源码位置
[root@DE5-2673v3-1287 src]# tar -xf php-5.6.40.tar.bz2 
[root@DE5-2673v3-1287 src]# cd /root/lnmp1.6-full/src/php-5.6.40/ext/ldap 
[root@DE5-2673v3-1287 ldap]# ls 
config.m4  config.w32  CREDITS  ldap.c  ldap.dsp  ldap.mak  LDAP_Win32_HOWTO.txt  php_ldap.h  tests

#编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件

[root@DE5-2673v3-1287 ldap]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@DE5-2673v3-1287 ldap]# ./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap  && make && make install


执行过程中可能会有如下报错

configure: error: Cannot find ldap.h  

解决办法 : 

yum -y install openldap-devel
cp -frp /usr/lib64/libldap* /usr/lib/


[root@DE5-2673v3-1287 ldap]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
ldap.so  opcache.a  opcache.so

[root@DE5-2673v3-1287 ~]# vim /usr/local/php/etc/php.ini  #编辑php.ini,5版本的php添加extension=ldap.so

保存退出 , 重启PHP服务


http://92.168.20.10:8099

页面配置

Database type   MySQL

Database server localhost

Database port   3306

Database name   zabbixdb

Database user   zabbix

Database password   zpasswd

 

Zabbix serverlocalhost

Zabbix server port10051

Zabbix server name



默认账号Admin

默认密码为zabbix

可以通过数据库中users表来查看,密码是经过MD5加密。zabbixdb.png