zabbix搭建以及优化教程
摘要:最近搭建一个zabbix用于监控服务器的资源情况,这里记录一下搭建以及优化过程
监控系统搭建
1.安装zabbix监控系统
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
2.更换linux源
使用国内的源速度会快一点
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
3.安装zabbix组件
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent
//zabbix-server-mysql:这是Zabbix监控系统的重要组件,提供了与 MySQL 数据库的集成功能,负责接收来自 Zabbix 代理的监控数据,并将其存储到 MySQL 数据库中。
//zabbix-frontend-php:这是Zabbix前端的PHP版本。它提供了一个用户友好的界面,用于管理和监控Zabbix系统。
//zabbix-nginx-conf:这是Zabbix使用的Nginx配置文件。Nginx是一个流行的Web服务器,用于提供Zabbix前端的访问。
//zabbix-agent:这是Zabbix代理组件,用于在被监控的主机上收集系统信息并将其发送到Zabbix服务器。
4.安装mysql、nginx
apt-get install nginx mysql-server -y
5.初始化mysql数据库
1. 启动mysql
systemctl start mysql
2. 创建初始化数据库以及用户
mysql -uroot -p
ysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
3. 执行创建表的sql语句
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
6.zabbix服务器配置数据库
编辑文件/etc/zabbix/zabbix_server.conf
DBName=刚刚设置的数据库用户名
DBPassword=刚刚设置的mysql数据库密码
DBHost=localhost
如果直接执行上面的命令就是
DBName=zabbix
DBPassword=password
DBHost=localhost
7.zabbix前端配置php
编辑文件/etc/zabbix/nginx.conf,取消注释并设置"listen"和"server_name"指令
listen 80; # 你要设置的端口号
server_name example.com; #域名或者ip地址
编辑文件/etc/zabbix/php-fpm.conf,取消注释设置正确的时区。一般都是设置为亚洲上海
php_value[date.timezone] = Asia/Shanghai
8.启动zabbix服务器和zabbix监控客户端
启动Zabbix服务器和代理进程,并设置开机启动
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
然后打开游览器输入zabbix服务器的http://ip:端口/zabbix,进入zabbix的web界面,根据提示输入刚刚的MySQL数据密码完成安装,初始化管理员账号为Admin 密码为:zabbix
9.安装中文语言
apt-get -y install language-pack-zh-hant language-pack-zh-hans
然后重启服务
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
然后进入zabbix的web界面找到用户设置,点击语言,切换中文即可。
zabbix优化以及bug解决
network traffic图形显示异常
我用的版本是Zabbix 5.0.15,在network traffic图形中总是no data,看不到网卡的带宽大小。见下图。
后面搜索了很久,发现了是 Template Module Windows network by Zabbix agent 这个模板的问题,获取到的网卡名称是形如E1017C77-A3D8-4C59-A4B1-B1978F1C4512这样的,这种格式是错的。我找了一个Zabbix 5.0.0的模板替换一下就可以了。
替换教程如下:
Zabbix 5.0.0模板资源这里分享一下:
Template Module Windows network by Zabbix agent 模板.rar
也可自行去这个链接Zabbix-Templates下载。
PS:这个问题查阅资料发现zabbix很久都没处理,见这个帖子Zabbix template don't detect network interface on windows
图形显示不全
zabbix默认是显示20个图形,如果超过20个图形,超过的不显示。见下图
修改defines.inc.php文件中的ZBX_MAX_GRAPHS_PER_PAGE选项的值为50即可。
用到的命令如下:
//查找defines.inc.php文件
root@ubuntu:~# find / -name defines.inc.php
/usr/share/zabbix/include/defines.inc.php
//编辑defines.inc.php文件,找到ZBX_MAX_GRAPHS_PER_PAGE改为50即可
root@ubuntu:~# nano /usr/share/zabbix/include/defines.inc.php
修改主机名称支持中文
Zabbix默认不支持主机名中存在中文字符的,要让Zabbix主机名支持中文,需要修改Zabbix的defines.inc.php代码文件
找到defines.inc.php文件位置(一般在/usr/share/zabbix/include/defines.inc.php)将
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-]+)');
改成
define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)');/* !!! Don't forget sync code with C !!! */
即可
zabbix中文乱码问题解决
在zabbix的web界面将语言切换到中文后,有的地方例如 grap 显示会乱码口口 ,这是因为zabbix的web前端没有中文字库,把中文字库加上就行了。
在zabbix服务器上面搜索到graphfont.ttf这个文件
root@ubuntu:~# find /usr/share/zabbix/ -iname graphfont*
/usr/share/zabbix/assets/fonts/graphfont.ttf
在windows系统下,从C:\Windows\Fonts文件夹中,找个顺眼的字体。这里我选择微软雅黑。
把微软雅黑.tff文件拷贝出来重命名为 graphfont.ttf ,替换zabbix服务器上面的 graphfont.ttf 即可。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。