一、zabbix结构介绍
#以下内容是zabbix自身结构和一些用到的中间件
zabbix-server:监控服务器
zabbix-agent:监控客户端
zabbix-web:监控网站服务
php:处理动态请求
mysql:数据库存储监控数据
zabix-proxy:负责收集agent信息汇总告知zabbix-server
二、编译前的准备工作
1、可以连接网络或者本地有对应版本的yum源;这个很重要,因为依赖包不对应安装上会存在不生效的问题。巨坑!!!
2、因为接触httpd少,所以使用的nginx做的代理
3、当前环境已安装对应yum源、mysql数据库和nginx(nginx部署在即将搭建的zabbix-server服务器)
三、下载源码包
#源码包下载地址:Download Zabbix sources
四、下载依赖包
#注:以下内容一定要都安装成功,这一步很坑,有的时候会出现下载不下来的情况;这部分出现问题的朋友可以留言聊聊
yum install -y libevent-devel net-snmp-devel libxml2-devel libcurl-devel
检查是否缺少依赖
#解压下载包并进入解压文件夹路径
#此处解压后的路径在/data/test/zabbix-4.0.44,指定prefix路径为/data/tools/zabbix;方面后面阅读
./configure --prefix=/data/tools/zabbix --enable-server --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libxml2 --with-libcur
#configure结束标志
#控制台出现以下日志
# ==========================================
# Now run 'make install'
# Thank you for using Zabbix
# <http://www.zabbix.com>
# ==========================================
五、编译安装
make && make install
六、创建用户和用户组
groupadd zabbix
useradd -g zabbix Zabbix
passwd Zabbix
#赋权
chown -R Zabbix:zabbix /data/tools/zabbix
七、修改zabbix_server.conf文件
#进入编译后的文件夹路径/data/tools/zabbix的etc文件夹
#以下为zabbix_server.conf文件的修改内容
# ===============================================
LogFile=/data/tools/zabbix/logs/zabbix_server.log
#数据库地址
DBHost=127.0.0.1
#数据库名字
DBName=zabbix
#数据库用户
DBUser=zabbix
#数据库密码
DBPassword=zabbix
#数据库端口
DBPort=3306
Timeout=30
LogSlowQueries=3000
#告警脚本存放位置
#告警脚本存放位置
AlertScriptsPath=/data/tools/zabbix/alertscripts
ExternalScripts=/data/tools/zabbix/externalscripts
#自定义监控配置文件
Include=/data/tools/zabbix/etc/zabbix_server.conf.d/*.conf
# ===============================================
#保存退出后在/data/tools/zabbix下创建logs文件夹
cd /data/tools/zabbix
mkdir logs
八、创建zabbix数据库和授权管理用户
#这部分看个人习惯,这里介绍的是mysql后台操作;也可以唉Navicat创建数据库
#后台登录mysql服务器,登录mysql
mysql -uroot -p
#回车后输入密码再回车
#下方命令按顺序执行;新建数据库【zabbix】账号【zabbix】密码【zabbix9T6c!a】
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'%' identified by 'zabbix9T6c!a';
grant all privileges on zabbix.* to 'zabbix'@'%';
quit;
九、导入zabbix数据库初始化信息
#在编译包路径下:
cd /data/test/zabbix-4.0.44/database/mysql
#按照顺序执行以下;此处执行命令略,有兴趣的可以自行查找mysql后台执行sql文件
schema.sql > images.sql > data.sql
#Navicat执行可以,后台命令执行也可以,此处随意
十、复制zabbix前端文件
#在nginx部署路径的html下创建zabbix文件夹
#nginx部署路径:/data/tools/openresty-1.19.9.1/nginx
cd /data/tools/openresty-1.19.9.1/nginx/html
mkdir zabbix
#从编译包路径下的frontends/php/路径下将全部内容复制到新建的zabbix文件夹中
cd /data/test/zabbix-4.0.44/frontends/php/
cp -r * /data/tools/openresty-1.19.9.1/nginx/html/zabbix/
十一、执行启动zabbix_server
#进入编译后的文件夹路径/data/tools/zabbix的sbin文件夹下
cd /data/tools/zabbix
./sbin/zabbix_server -c etc/zabbix_server.conf
#注 可以在./zabbix_server 跟参数-c [zabbix-server.conf]指定配置文件启动
#查看进程
ps -ef|grep zabbix
十二、安装配置php-fpm
yum install php-fpm -y
#安装后的php-fpm通过find命令找一下php-fpm启动文件
find / -name php-fpm
#我的是在 /usr/sbin/下
#php-fpm的配置文件默认在/etc下
vim /etc/php-fpm.conf
#另:在php-fpm.conf中可以看到配置了www.conf文件路径
include=/etc/php-fpm.d/*.conf
十三、修改php-fpm.conf配置
cd /etc
vim php-fpm.conf
#记录php-fpm.pid进程文件路径,可不修改
pid = /run/php-fpm/php-fpm.pid
#php-fpm错误日志路径,可不修改
error_log = /var/log/php-fpm/error.log
十四、修改www.conf配置
cd /etc/php-fpm.d
vim www.conf
#1.找到[www]下
#2.需要创建文件fpm-cgi.sock(后面步骤会有写,这里先配置上)
#listen原配置listen = /run/php-fpm/www.sock
#*.sock的路径可自行修改,下面是我改的路径,在自己配置的路径下创建fpm-cgi.sock即可
listen = /data/shm/fpm-cgi.sock
#保存www.conf后
#创建文件
touch /data/shm/fpm-cgi.sock
chmod 666 /data/shm/fpm-cgi.sock
#注此处还需要给www:www用户和用户组赋权;待php-fpm启动,然后将nginx重启后在执行下面命令注释了,也不用倒回来看,下面的步骤会写
#chown -R www:www /data/shm/fpm-cgi.sock
十五、配置nginx中php代理
cd /data/tools/openresty-1.19.9.1/nginx/conf
vim nginx.conf
#找到#location ~ \.php$ {部分;在当前{}闭合后粘贴以下内容
=========================分割线=========================
location ~ \.php$ {
try_files $uri =404;
#这里是十四步骤中创建的fpm-cgi.sock
fastcgi_pass unix:/data/shm/fpm-cgi.sock;
fastcgi_index index.php;
proxy_ignore_client_abort on;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
=========================分割线============================
十六、启动php-fpm和重载nginx
#启动php-fpm
cd /usr/sbin/
./php-fpm
#重载nginx
nginx -s reload
#手册是后补的,忘了为啥在这里执行不在十四执行了,感觉十四步骤执行也行, 有兴趣的小伙伴可以试试,23,33333
chown -R www:www /data/shm/fpm-cgi.sock
十七、访问zabbix_server页面
十八、根据页面提示进行修改
vim /etc/php.ini
#修改以下内容
post_max_size =16M
max_execution_time =300
max_input_time =300
date.timezone = Asia/Shanghai
#修改后重启php-fpm
#查看php-fpm进行
ps -ef|grep php
#kill -9 干掉所有进程后进行重启
cd /usr/sbin/
./php-fpm
#重新访问页面
http://{ip}/zabbix/setup.php
#没有报错即可点击Next step
#上方截图Configure DB connection页面填写数据库链接信息
#填写完成点击Next step
#上方截图确认无误后点击Next step
#下方截图Zabbix server details填写zabbix服务器ip 端口(默认) name随便写
#填写完成点击Next step
#点击Next step
#若出现以上报错,根据提示1.下载zabbxi.conf.php文件
#上传至页面2.Save it******中提示的路径
#或者直接进入2.中提示的路径复制zabbix.conf.php.example
cp zabbix.conf.php.example zabbix.conf.php
#建议用新下载的,因为已经在页面改好了配置
上传后点击Back返回上一页再次点击Next step
#弹出以上窗口,点击Login进入登录页面
#登录默认账号密码
Admin/zabbix
#点击Next step
#点击Finish
#至此zabbix_server安装成功
十九、安装zabbix_agent
#将编译好的zabbix包复制一份重命名为 zabbix_agent;发送至对应要监听的服务器
#因为编译的时候已经编译了zabbix_agent,可以直接复用;避免混淆复制一份新的,也可以直接用原来的zabbix也可以
cd /data/tools
cp -r zabbix zabbix_agent
二十、修改zabbix_agentd.conf配置
cd /data/tools/zabbix_agent/etc
vim zabbix_agentd.conf
#修改以下内容
==========================================
#zabbix_agent日志路径,可改可不改
LogFile=/data/tools/zabbix_agent/zabbix_agentd.log
#放开pid文件路径,路径可改可不改
PidFile=/data/tools/zabbix_agent/zabbix_agentd.pid
#最好和主机名一样,通过hostname查看即可
Hostname=host-172.31-***-***
#zabbix_server的ip地址
Server=172.31.***.***
#和Server一致
ServerActive=172.31.***.***
UnsafeUserParameters=1
#在Iclude位置添加下面这行,路径就是zabbix_agent/etc下,zabbix_agentd.conf.d启动时会自动创建
Include=/data/tools/zabbix_agent/etc/zabbix_agentd.conf.d/*.conf
==========================================
启动agent
cd /data/tools/zabbix_agent
./sbin/zabbix_agentd -c etc/zabbix_agentd.conf