首先,需要前往Download Zabbix sources 下载所需的源码包,本文中将使用6.0LTS版本,因为6.2并没有附带LTS长期支持的标识,而6.4仍处于开发中的状态。
下载
使用Wget下载,并使用tar命令进行解压
wget -c https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.13.tar.gz
tar -zxvf zabbix-6.0.13.tar.gz
创建用户
由于Zabbix官方推荐将守护进程以非特权用户运行,所以此处我们需要创建两个非特权用户zabbix
与zabbix-agent
addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /home/zabbix zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /home/zabbix-agent zabbix-agent
配置数据库
Zabbix 6.0要求MySQL 8.0.X
或MariaDB 10.5.00-10.8.X
本文我们采用MariaDB10.5.10
创建数据库与用户
mysql -uroot -p<password>
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
导入数据库
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# 如果您正在为 Zabbix 代理创建数据库,请在此处停止
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> zabbix < data.sql
成功导入schema后,可以禁用 log_bin_trust_function_creators
mysql -uroot -p<password>
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;
编译
编译Server端
./configure --prefix=/home/zabbix --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
安装
make install
编译Agent2端
./configure --prefix=/home/zabbix-agent --enable-agent2 --enable-ipv6
安装
make install
此处我使用了Agent2,需要提前安装Go语言环境
/home/zabbix
与/home/zabbix-agent
目录下安装Go语言支持
wget -c https://go.dev/dl/go1.20.linux-arm64.tar.gz
tar -C /usr/local -xzf go1.20.linux-arm64.tar.gz
编辑/etc/profile
,最尾端增加下行
export PATH=$PATH:/usr/local/go/bin
重载当前环境
source ~/.profile
验证是否安装成功
root@instance:~# go version
go version go1.20 linux/arm64
杂项配置
配置Server端Systemctl文件
vi /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/home/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/home/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
配置Agent2 Systemctl文件
vi /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
User=zabbix-agent
Group=zabbix
Environment="CONFFILE=/home/zabbix-agent/etc/zabbix_agent2.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=simple
Restart=on-failure
PIDFile=/tmp/zabbix_agent2.pid
KillMode=control-group
ExecStart=/home/zabbix-agent/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
前端控制台配置
前端控制台其实是单独的一个PHP程序,与zabbix的运行相互独立,你只需要按照正常的PHP网页安装步骤即可
- 从源码包目录下的
ui
文件夹复制全部文件 - 配置Nginx网站,将文件全部复制到网站根目录
- 正常配置SSL等其他Web服务器设置即可
Agent2链接到主机配置
编辑/home/zabbix-agent/etc/zabbix_agent2.conf
搜索以下字段,并修改其值
Server=Server端IP地址 #被动模式,表示哪些主机可以到本机取数据
ServerActive=Server端IP地址 #主动模式的server IP地址(客户端主动发送数据给服务端)
Hostname=主机名 #客户端的hostname(在web界面上显示的名字)
此时,被控端设置完成,但我们仍需要前往Web端配置一下主机自动注册规则
1.点击配置-动作-自动注册动作-创建动作
2.设置任务名称,添加一个条件,例如匹配主机名称中包含的字段
添加要执行的动作
添加完成后
然后,启动客户端的Agent2,等待一两分钟后,新的客户端将被自动添加到主机列表
10050/10051
Grafana简单配置
Grafana是一个监控仪表系统,它只负责生成各种各样的展示图标与警报功能,并不关心数据来源,因为它支持市面上绝大部分的数据形式
这里我们使用Docker简化部署过程
docker run -d \
-p 3000:3000 \
--name=grafana \
-v /home/grafana/lib:/var/lib/grafana \
-v /home/grafana/etc/grafana.ini:/etc/grafana/grafana.ini \
-v /home/grafana/log:/var/log/grafana \
-e "GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app" \
grafana/grafana-oss
安装完成后,使用Nginx反向代理,默认地址是127.0.0.1:3000(此处不再赘述反向代理的配置)
首次安装时的用户名与密码均为admin,在第一次登录成功后会让你重设密码
如果你使用的是我上面的命令,那么zabbix的扩展已经安装完毕,进入控制台后点左下角齿轮图标-Plugins- 搜索zabbix-点击进入插件-点击enable
即可正常启用
一些小问题
configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h
缺少libopenipmi-dev
包,安装即可
apt install libopenipmi-dev
- 前端界面未检测到Zh-CN语言包,即使已经正确安装了语言包与PHP gettext 扩展
重启PHP即可
[Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
你的MySQL数据库链接地址不正确,请查看MySQL配置文件中socket
段的路径,并将其值复制,修改/home/zabbix/etc/zabbix_server.conf
中的DBSocket=
字段,删除前面的#
并将路径粘贴到=
后面,保存并重启即可
大问题:编译Agent2时出现make[3]: *** [Makefile:633: install-zabbix.com/cmd/zabbix_agent2] Error 1
此问题是由于机器本身通过yum/apt安装了golang包,请使用下面的命令完全卸载
apt-get remove golang
apt-get remove golang-go
apt-get remove --auto-remove golang-go
再从任意镜像下载最新版本安装即可,安装步骤可见上文
一些总结
ZABBIX的文档还是很详细的,有些细节点讲的也很清楚,不过还是有些意外问题会出来,大体来说编译还算顺利
而Grafana这玩意文档就没见到有中文,Docker镜像的持久化配置也很奇怪,总之就是非常的折磨
暂无评论内容