兰生幽谷,不为莫服而不芳;
君子行义,不为莫知而止休。
1 安装及准备
先决条件:建议使用CentOS8以上的操作系统。
CentOS8.5.2111内核版本为
图1- 1
华为OpenEuler24(以后简称OE24)的内核为
[root@zbxsvr ~]# uname -r 5.10.0-182.0.0.95.oe2203sp3.x86_64 |
因此,OE24完全可以满足。所以本系列实验选用华为OE24进行zabbix6的部署。先安装工具
dnf install -y gcc gcc-c++ curl-devel wget mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel tar make fping net-tools bash-completion yum -y update |
表1-1 Zabbix网络规划(用你们自己的特征网段规划)
主机名 | IP | 功能 | 备注 |
zbxsvr | 192.168.0.10 | zabbix服务器和前端 | |
zbxagt | 192.168.0.81 | zabbix agent | |
windows | 192.168.0.123 | zabbix agent |
1)下载
cd /opt #进入opt目录 wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.2.4.tar.gz |
#解压zabbix
tar -zxvf zabbix-*.tar.gz |
2)关闭SELinux
①临时关闭SELinux(不需要重启,立即生效,但重启后恢复,我们需要永久关闭SELinux)
将/etc/selinux/config中的SELINUX=enforcing改为SELINUX=disabled
setenforce 0 |
②永久关闭SELinux(重启后生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
查看是否修改成功
grep -n 'SELINUX=' /etc/selinux/config |
图1- 2
3)安装部署MySQL
(1)安装MySQL
dnf install -y mysql-server #安装MySQL |
(2)启动MySQL并查看MySQL启动状态
systemctl start mysqld && systemctl enable mysqld #启动和开机自启MySQL service mysqld status #查看MySQL启动状态 |
出现 active (running)代表安装并启动成功
图1- 3
(3)登录MySQL
默认没有密码,直接回车登录
mysql -uroot -p |
(4)修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123456'; |
将Admin@123456换成你想要的密码,密码要有一定的复杂度。
(5)创建数据库:
创建zabbix用户的并设置密码,此文档用的是Admin@123456(将Admin@123456换成你想要的密码,密码要有一定的复杂度)
#创建数据库
mysql> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected, 2 warnings (0.01 sec) |
#创建zabbix用户
mysql> create user zabbix@localhost identified by 'Admin@123456'; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on zabbix.* to zabbix@localhost; Query OK, 0 rows affected (0.00 sec) quit; Bye |
(6)初始化数据库
[root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/schema.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/images.sql mysql: [Warning] Using a password on the command line interface can be insecure. [root@localhost zabbix-7.2.4]# mysql -uroot -pAdmin@123456 zabbix < /opt/zabbix-*/database/mysql/data.sql mysql: [Warning] Using a password on the command line interface can be insecure. |
语句说明:-u后面是用户名;-p后面是密码;<后面是sql文件的绝对路径;
执行改语句会出警告:[Warning] Using a password on the command line interface can be insecure.
意思是:在命令行界面上使用明文密码可能不安全;此语句不影响命令执行。
4)安装Zabbix
(1)创建group,并添加虚拟用户zabbix
groupadd zabbix useradd -g zabbix -M -s /sbin/nologin zabbix |
(2)编译Zabbix Server和Zabbix agent
./configure --sysconfdir=/etc/zabbix/ \ --enable-server \ --enable-agent \ --with-mysql \ --with-net-snmp \ --with-libxml2 \ --with-ssh2 \ --with-openipmi \ --with-zlib \ --with-libpthread \ --with-libevent \ --with-openssl \ --with-ldap \ --with-libcurl \ --with-libpcre | 指定目录 IPMI监控所需要包 |
(4)安装工具
yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi |
出现下图代表编译成功
图1- 4
(3)安装Zabbix Server和Zabbix agent
make install #安装 zabbix_server --version #查看安装的zabbix_server版本 |
出现下图代表安装成功
图1- 5
4.修改 zabbix_server 配置文件,添加数据库登录密码
MySQL数据库zabbix用户的密码,此文档用的是Admin@123456
sed -i 's/# DBPassword=/DBPassword=Admin@123456/' /etc/zabbix/zabbix_server.conf |
查看是否修改成功
grep -n 'DBPassword=' /etc/zabbix/zabbix_server.conf |
图1- 6
5.编写Zabbix Server系统管理启动文件
vi /usr/lib/systemd/system/zabbix_server.service [Unit] Description=Zabbix Server with MySQL DB After=syslog.target network.target mysql.service [Service] Type=simple ExecStart=/usr/local/sbin/zabbix_server -f Restart=always KillSignal=SIGINT User=zabbix [Install] WantedBy=multi-user.target |
查看文件是否正确写入
cat /usr/lib/systemd/system/zabbix_server.service |
图1- 7
6.编写Zabbix agent系统管理启动文件
echo "[Unit] Description=Zabbix Agent After=syslog.target After=network.target [Service] Type=forking ExecStart=/usr/local/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf Restart=always RestartSec=10s KillSignal=SIGINT User=zabbix [Install] WantedBy=multi-user.target">/usr/lib/systemd/system/zabbix_agent.service |
查看文件是否正确写入
cat /usr/lib/systemd/system/zabbix_agent.service
图1- 8
7.关闭zabbix_server 进程,开启 zabbix-server 并设置开机自启
systemctl daemon-reload && pkill zabbix_server systemctl start zabbix_server && systemctl enable zabbix_server |
8.查看zabbix_server 是否启动成功
systemctl status zabbix_server |
如图代表成功:
图1- 9
9.关闭zabbix_agent进程,开启 zabbix-agent 并设置开机自启
systemctl daemon-reload && pkill zabbix_agent systemctl restart zabbix_agent && systemctl enable zabbix_agent |
10.查看abbix_agent 是否启动成功
systemctl status zabbix_agent |
图1- 10
11.开启防火墙Zabbix服务端10051端口
sudo firewall-cmd --zone=public --add-port=10051/tcp --permanent #开启指定端口(10051) sudo firewall-cmd --reload #重新加载配置文件 |
四、搭建web前端
1.安装php8.0
sudo dnf install -y php-8.* cp /opt/zabbix-*/ui/* /var/www/html/ -R #将源码中的ui文件复制到php目录 chown apache:apache /var/www/html -R systemctl start httpd && systemctl enable httpd sudo dnf install -y php-bcmath php-gd php-xml php-mbstring php-mysqlnd php-ldap |
2.修改/etc/php.ini文件
修改php.ini文件
默认值为:
post_max_size = 8M
max_execution_time = 30
max_input_time = 60
Zabbix要求最低值为:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
sed -i 's/post_max_size = 8M/post_max_size = 16M/' /etc/php.ini sed -i 's/max_execution_time = 30/max_execution_time = 300/' /etc/php.ini sed -i 's/max_input_time = 60/max_input_time = 300/' /etc/php.ini |
查看是否修改成功
grep -n 'post_max_size =' /etc/php.ini grep -n 'max_execution_time =' /etc/php.ini grep -n 'max_input_time =' /etc/php.ini |
图1- 11
3.重新加载配置文件
sudo service php-fpm reload #重新加载配置 |
4.开启防火墙http端口
sudo firewall-cmd --permanent --zone=public --add-service=http #打开http端口 sudo firewall-cmd --reload #重新加载防火墙 |
五、web页面配置
1.浏览器输入服务器ip,出现此界面
图1- 12
2.设置语言为中文:Chinese(zh_CN),点击下一步
图1- 13
3.确认都显示OK,点击下一步
图1- 14
4.输入 MySQL数据库zabbix用户的密码,此文档用的是Admin@123456,点击下一步
图1- 15
5.输入主机名(可以中文),时区选(UTC+08:00)Asia/Shanghai,点击下一步
图1- 16
6.确认信息,下一步
图1- 17
7.设置完成,点击完成
图1- 18
有可能会出现php设置错误,点击下载zabbix.conf.php并按指示信息,上传到/var/www/html/conf/重新启动浏览器即可。
8.默认用户名为:Admin ;密码为:zabbix ;登录
图1- 19
图1- 20
5)zabbbix-agent2的安装
Zabbix agent是Zabbix监控系统中的关键组件,负责在被监控的主机上定期收集数据并发送到Zabbix server。而zabbix agent2则是agent的升级版,旨在提供更多附加功能,如增加的采集指标、改进的采集逻辑以及简化的自定义监控插件开发。
zabbix agent与zabbix agent2的区别:
①编程语言与架构:
zabbix agent主要使用C语言编写,具有稳定且高效的特点。
zabbix agent2则部分使用Go语言开发,Go语言的模块化、并发性和简洁性使得agent2在扩展性和灵活性方面更具优势。
②TCP连接数:
zabbix agent在与server通信时,可能需要较多的TCP连接。
zabbix agent2降低了与server之间的TCP连接数,从而提高了通信效率。
③并发性:
zabbix agent在主动监控项的检查上,一次只能采集一个指标。
zabbix agent2则支持并发检查,能够同时采集多个主动检查指标,提高了数据采集的效率。
④扩展性:
zabbix agent的扩展通常依赖于C语言开发的模块。
zabbix agent2则易于通过插件进行扩展,无论是新的原生指标还是自定义插件的开发都更加便捷。
⑤配置与部署:
zabbix agent在配置监控MySQL等数据库时,需要在配置文件中指定相关参数。
zabbix agent2则更加简化,只需在模板中修改相关参数即可。
⑥应用场合:
zabbix agent:
优势:稳定、高效,适用于对性能要求不是特别高、监控需求相对固定的场景。
适用场景:小型监控系统、对资源消耗敏感的环境。
zabbix agent2:
优势:灵活、易于扩展,适用于需要监控大量指标、对监控系统有较高灵活性要求的场景。
适用场景:大型监控系统、需要频繁更新和扩展监控功能的环境。
我最开始随便下载了一个版本,结果安装过程总出错。后来折腾了很久,都会出问题。后来考虑到版本问题,找了百度AI,如下:
图1- 21
我信了,结果还是出错。后来就死马当活马,把OpenEuler22当作CentOS8,下载Agent,如下图。
图1- 22
安装CentOS8的Agent还是出错。在几近崩溃的情况下,安装了CentOS8的Agent2,居然很顺利地装上了。估计是我的Zabbix选的版本太新了。以前选低版本,一路顺畅地完成了。下面分享我的安装过程。
(1)linux下zabbbix-agent2安装
①安装依赖环境
sudo dnf install -y gcc-c++ curl-devel wget mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel tar make fping net-tools bash-completion |
②安装Zabbix agent 2
Agent
zabbix-agent安装失败,此处略过。 |
Agent2(版本号尽量与server版本号一致)
rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/centos/8/noarch/zabbix-release-latest-7.2.el8.noarch.rpm yum install -y zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql |
③创建zabbix-agent 日志目录
mkdir -p /usr/local/zabbix/logs //创建 chown -Rf zabbix:zabbix /usr/local/zabbix //赋权 |
④修改配置文件
vi /etc/zabbix/zabbix_agent2.conf …… # 被动模式下的 Zabbix-Server/Proxy 地址 Server=192.168.0.10 …… # 主动模式下的 Zabbix-Server/Proxy 地址 ServerActive=192.168.0.10 …… #主机名,设定 Zabbix-Agent 主机名,确保唯一且在 Zabbix-Server web 中一致 Hostname=192.168.0.81 …… # 允许使用不安全的用户参数,允许创建自定义监控项 UnsafeUserParameters=1 …… # 指定 Zabbix-Agent 的日志文件路径 LogFile=/usr/local/zabbix/logs/zabbix_agent2.log …… |
⑤启动zabbix-agent
systemctl daemon-reload systemctl enable zabbix-agent2 systemctl start zabbix-agent2 |
⑥查看zabbix状态
systemctl status zabbix-agent 图1- 23 netstat -ntlup | grep 10050 tcp6 0 0 :::10050 :::* LISTEN 3632/zabbix_agent2 |
⑦firewalld防护墙放行端口
firewall-cmd --permanent --zone=public --add-port=10050/tcp firewall-cmd --reload firewall-cmd --list-all systemctl status firewalld |
(2)Windows下zabbbix-agent2安装
① Zabbix 代理(Agent)简介
Zabbix 代理安装在被监控的主机上,负责收集本地系统的性能和状态数据,并将这些数据发送给 Zabbix 服务器。
- 主要功能:
- 数据采集:采集本地主机的 CPU、内存、磁盘、网络等性能指标。
- 数据发送:将采集到的数据定期发送给 Zabbix 服务器。
- 被动模式:等待 Zabbix 服务器的请求后发送数据。
- 主动模式:主动将数据发送给 Zabbix 服务器。
②安装和配置
- 安装:
- Linux:通过包管理器(如 apt、yum)安装。
- Windows:下载安装包进行安装。
- 配置:
- 配置文件:zabbix_agentd.conf
主要配置项包括服务器地址(Server=)、主机名(Hostname=)等。
服务器版本是7.2.4,因此agent也下载7.2.4
图1- 24
双击安装
图1- 25
填写主机名,以及zabbix服务器的ip,由于没有代理,暂时把代理填为服务器ip。
图1- 26
③检查是否启动
打开windows命令行终端使用命令netstat -an 查看
图1- 27
看到在监听10050端口就是正常启动啦,下面手动启动就不用管啦,做个了解。因为windows安装好会自行启动的。
在windows中安装zabbix-agent默认会自己启动,如果没启动的话这时候就需要手动启动。
在cmd命令终端进入安装的目录里,我的示例如下:
C:\Users\Administrator>d:
D:\>cd / D:\Program Files\Zabbix Agent
D:\ Program Files\Zabbix Agent >
现在就要输入命令进行一些操作
//启动服务: net start "Zabbix Agent" //停止服务: net stop "Zabbix Agent" //查看服务状态: sc query "Zabbix Agent" # D:\Program Files\Zabbix Agent>目录就是我的安装目录里,这里我进入到我的安装目录里执行 卸载服务: D:\Program Files\Zabbix Agent> zabbix_agentd.exe --uninstall 日志查看 D:\Program Files\Zabbix Agent> zabbix_agentd.log |
⑤服务器上监控
服务器浏览器前端:监测/主机
图1- 28
⑥新建主机
图1- 29
填写主机名称,新建一个群windows,增加接口
图1- 30
填写agent端的ip,并按添加
图1- 31
主机就进来了。
图1- 32
这样就是成功添加啦,具体的监控项需要自己定义或需要更多的配置步骤,但是我们可以添加一些通用模板来简单测试与使用。