说到探针,估计大家最熟悉的还是哪吒了。哪吒的优势在于简单方便,但是你如果你想要的更完整的数据图表,更多的监控项目,那么zabbix也是一个不错的选择。只不过要注意,当你选择了zabbix的时候,就注定要鼓捣和折腾。
本文记录一下zabbix的部署方法,以及一些简单的操作。
一、部署主控端
1.1 安装前准备
首先去 zabbix官网 查看各个系统的安装指导,我就以 Debian 11 为例
安装主控端时, ZABBIX COMPONENT
选择第一项, 数据库
需要自己安装,你用的哪个就选哪个, WEB SERVER
随便选,我喜欢 Nginx。
程序的安装过程按照官网给出的命令,例如我的就是
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
dpkg -i zabbix-release_6.4-1+debian11_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
接下来创建初始数据库,执行
mysql -uroot -p
输入你的root密码,如果你没有安装mysql,那么就会报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)
只需要安装MySQL就可以了,下面给出mariadb的安装方法:
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
sudo apt-get install mariadb-server mariadb-client mariadb-backup
初次安装后记得设置root密码,将 YOUR PASSWORD
替换为你的密码
mysql -uroot
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR PASSWORD';
FLUSH PRIVILEGES;
MySQL没问题的话,给zabbix创建新数据库, YOUR ZABBIX PASSWORD
替换为你的zabbix密码
mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'YOUR ZABBIX PASSWORD';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
MariaDB [(none)]> quit;
导入初始架构和数据
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
输入刚才设置的密码,稍等一会就完成了。
导入完成后禁用log_bin_trust_function_creators
mysql -uroot -p
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
MariaDB [(none)]> quit;
编辑zabbix的数据库配置
/etc/zabbix/zabbix_server.conf
找到 DBPassword
选项,配置为你的zabbix数据库密码
DBPassword='YOUR ZABBIX PASSWORD'
编辑zabbix的nginx配置
/etc/zabbix/nginx.conf
找到并修改
listen 8080;
server_name example.com;
listen
是网页端口, server_name
是网址
设置开机自启
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
1.2 安装zabbix
访问你配置好的IP:端口,就可以看到安装界面了
zabbix是支持中文的,不过你可能无法选择中文,而是看到提示
You are not able to choose some of the languages, because locales for them are not installed on the web server.
如果遇到这种情况,就先安装中文支持
sudo dpkg-reconfigure locales
选中zh_CN.UTF-8并安装
安装后重启zabbix服务
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
再刷新页面,就可以选择中文了。
随后会检查环境
验证数据库连接
设置时区和主题
程序就安装完成了
zabbix的默认用户名是 Admin ,密码是 zabbix 。登录后就能看到管理端主页了
登录后首先修改密码,点击用户设置->配置
立即修改密码
二、添加被控端
2.1 被控端安装zabbix
被控端有两种模式:主动模式和被动模式
- 主动模式:被控端主动向主控端汇报信息
- 被动模式:主控端向被控端发送请求,从而获得信息
作为探针使用,还是主动模式比较方便,但是主动模式无法自定义一些监控项,被动模式则没有问题。本文演示的为主动模式和被动模式混合使用
首先 下载被控端 程序。
这里 ZABBIX COMPONENT
选择 Agent
,同样按照官网的命令安装。
例如Debian 11的安装命令为:
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1+debian11_all.deb
dpkg -i zabbix-release_6.4-1+debian11_all.deb
apt update
apt install zabbix-agent -y
systemctl restart zabbix-agent
systemctl enable zabbix-agent
安装完成后,修改Agent的配置文件
nano /etc/zabbix/zabbix_agentd.conf
修改以下几个地方:
Server
:这里改为主控端的IP地址或域名ServerActive
:这里改为主控端的IP地址加10051端口,例如1.1.1.1:10051或example.com:10051Hostname
:可以自定义主机名,但不要与其它被控端重复ListenPort
:默认10050就可以StartAgents
:写1就可以了
修改完成后检查一下:
cat /etc/zabbix/zabbix_agentd.conf |grep -v ^$ |grep -v ^#
应该看到类似输出
修改完成后重启zabbix
systemctl restart zabbix-agent
如果要查看被控端的日志,可以执行
tail -f /var/log/zabbix/zabbix_agentd.log
到这里,被控端的安装就完成了
2.2 主控端添加监控
在主控端中选择监测->主机
选择右上角的创建主机
模板选择 Linux by Zabbix agent active,主机群组添加 Linux servers ,主机名称填写被控端中设置的Hostname
添加后,监控很快就会变成绿色,代表一切正常
点击图形,应该就能以图表形式看到详细的监控信息了
到这里,被控端的添加就完成了。
三、解决图表汉字乱码
如果你足够细心,你可能已经注意到了图表里存在乱码。这是由字体缺失引起的。
解决方法也很简单,进入 C:\Windows\Fonts ,将 黑体 拷贝出来,
黑体在Windows下的名称为simhei.ttf,将其重命名为DejaVuSans.ttf
把这个字体上传到目录/usr/share/fonts/truetype/dejavu去,覆盖以前的字体
现在乱码的问题应该就不会出现了
到这里,你就可以监控zabbix默认所提供的监控项了。对于更多自定义操作,请期待下节。