zabbix-3.4.4安装手册
什么是zabbix
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
zabbix的概述
Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性的功能。
数据收集
可用性和性能检查
自定义检查
实时图表绘制
Web监控功能
报表
数据库数据
PHP Web前端
Zabbix API
安全用户认证
部署在被监控对象上
为了性能和更少内存的占用,用C语言编写
使用Zabbix proxy代理服务器,使得远程监控更简单
zabbix的组件
- SERVER
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 - 数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。 - WEB界面
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 - PROXY代理服务器
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。 - AGENT监控代理
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。 - 数据流
此外,了解Zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你必须: 1. 为Server X创建一个host并关联一个用于对CPU进行监控的监控项(Item)。 2. 创建一个Trigger,设置成当CPU负载过高时会触发 3. Trigger被触发,发送告警邮件 虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单,Zabbix这样的设计使得配置机制非常灵活易用
zabbix安装步骤
-
源码包的获取方式:
1>百度网盘
链接:https://pan.baidu.com/s/1u4Ci3oOvvmn_eacFdEB9_Q
提取码:5n0g
2>官方源码库 -
通过百度网盘下载源码离线包,xftp上传到服务器或者是云服务器上
-
源码编译安装nginx(selinux和防火墙请关闭 )
yum -y install gcc pcre-devel openssl-devel tar httpd-tools #安装相应的依赖包
tar -xvf nginx-1.17.6.tar.gz -C /root/ # 把nginx源码包解压放到/root/下
cd nginx-1.17.6 #相对路径进行源码编译安装
./configure --with-http_ssl_module --with-http_stub_status_module
make && make install #源码编译安装
- 使用system管理nginx服务
在 /usr/lib/systemd/system/路径下创建nginx.service,内容如下
[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT ${MAINPID}
[Install]
WantedBy=multi-user.target
- 安装php模块
yum -y install php php-mysql php-fpm
在nginx的主配置文件中,修改如下
fastcgi_buffers 8 16k; #缓存php生成的页面内容,8个16k
fastcgi_buffer_size 32k; #缓存php生产的头部信息,32k
fastcgi_connect_timeout 300; #连接PHP的超时时间,300秒
fastcgi_send_timeout 300; #发送请求的超时时间,300秒
fastcgi_read_timeout 300; #读取请求的超时时间,300秒
在location上添加如上几行
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#使nginx支持PHP模块
- 启动nginx服务
systemctl enable --now nginx.service
ss -ntulp | grep 80 #检测到80端口,表示nginx服务启动成功,启动失败绝大部分是配置文件书写错误,请详细检查
- 源码安装zabbix server
yum -y install net-snmp-devel curl-devel autoconf libevent-devel
tar -xf zabbix-3.4.4.tar.gz -C /root/
cd zabbix-3.4.4/
./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
#--enable-server安装部署zabbix服务器端软件
#--enable-agent安装部署zabbix被监控端软件
#--enable-proxy安装部署zabbix代理相关软件
#--with-mysql指定mysql_config路径
#--with-net-snmp允许zabbix通过snmp协议监控其他设备(如交换机、路由器等)
#--with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
make && make install #编译安装
#修改配置文件zabbix_server.conf
#85行,定义哪台主机为数据库主机,localhost为本机
sed -i '85s/# DBHost=localhost/DBHost=localhost/' /usr/local/etc/zabbix_server.conf
#95行,设置数据库名称
#sed -n '95p' /usr/local/etc/zabbix_server.conf
#111行,设置数据库账户
sed -i '111s/DBUser=zabbix/DBUser=zabbix/' /usr/local/etc/zabbix_server.conf
#119行,设置数据库密码
sed -i '119s/# DBPassword=/DBPassword=zabbix/' /usr/local/etc/zabbix_server.conf
#38行,日志的位置,排错使用,该行仅查看即可
#编写service文件
echo "
[Unit]
Description=zabbix server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target" > /usr/lib/systemd/system/zabbix_server.service
#启动zabbix_service服务
systemctl start zabbix_server.service
systemctl enable zabbix_server.service
- 安装mariadb数据库相关软件包
yum -y install mariadb mariadb-server mariadb-devel
systemctl enable --now mariadb
ss -ntulp |grep 3306 #检测到3306端口,则服务启动成功
mysql -e 'create database zabbix character set utf8;' #创建mariadb的zabbix库
mysql -e 'grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";' #授权用户
cd /root/zabbix-3.4.4/database/mysql #相对路径下导入数据
mysql -uzabbix -pzabbix zabbix < schema.sql #导入数据表,顺序不能乱哦!!!
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
- 设置网站的页面
useradd -s /sbin/nologin zabbix
cd /root/zabbix/lnmp_soft/zabbix-3.4.4/frontends/php/
cp -r * /usr/local/nginx/html/
chown -R apache:apache /usr/local/nginx/html/
- 满足Zabbix_server的环境要求
yum -y install php-gd php-xml php-bcmath php-mbstring &> /dev/null
sed -i '384s/30/300/' /etc/php.ini
sed -i '672s/8/32/' /etc/php.ini
sed -i '394s/60/300/' /etc/php.ini
echo "date.timezone = Asia/Shanghai" >> /etc/php.ini
systemctl restart php-fpm
- 为服务端安装agent被监控端(IP地址根据自己的实际情况更改)
yum -y install gcc pcre-devel autoconf
yum -y install /root/zabbix/lnmp_soft/zabbix-3.4.4-22.x86_64.rpm
##93行,谁可以监控本机(被动监控模式)
sed -i '93s/127.0.0.1/127.0.0.1,192.168.1.55/' /usr/local/etc/zabbix_agentd.conf
#134行,谁可以监控本机(主动监控模式)
sed -i '134s/127.0.0.1/127.0.0.1,192.168.1.55/' /usr/local/etc/zabbix_agentd.conf
#145行,被监控端自己的主机名(根据实际情况 )
sed -i '145s/Zabbix server/mysql_11/' /usr/local/etc/zabbix_agentd.conf
#69行,监控异常后,是否允许服务器远程过来执行命令,如重启某个服务
sed -n '69s/^# EnableRemoteCommands=0/EnableRemoteCommands=1/' /usr/local/etc/zabbix_agentd.conf
#280行,是否允许自定义key传参
sed -i '280s/# UnsafeUserParameters=0/UnsafeUserParameters=1/' /usr/local/etc/zabbix_agentd.conf
#编写zabbix_agentd的service文件,通过systemd管理服务
echo "
[Unit]
Description=zabbix agent
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/tmp/zabbix_agentd.pid
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target" > /usr/lib/systemd/system/zabbix_agentd.service
#启动zabbix_agent服务
systemctl enable zabbix_agentd.service
systemctl start zabbix_agentd.service
ss -ntulp | grep 10050 #检测端口,有则服务启动成功。
- 浏览器访问http://192.168.1.55/index.php
点击进入下一步检查是否有报错;有报错进行解决
输入用户名/密码/端口
输入账号/密码
登录后出现
表示zabbix安装成功