最近需要了解安全监控平台,所以提前了解一下如何进行部署。
简介

Zabbix是企业级开源监控解决方案,支持实时监控数万台服务器、虚拟机和网络设备,采集百万级监控指标,实现了企业级设备的安全监测。一次用来监控设备防止out of memory等报错。

部署系统环境
部署也是十分简答,在我提前给debian环境配置了mysql+php+nginx环境,只需要我们拉取zabbix源码配置即可。
debian镜像站:mirrors.ustc.edu.cn/debian/dist...
环境为debian12.10+mysql+php+nginx
默认电脑其他环境都有
创建数据库并授权新用户权限:
sql
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
从官网下载zabbix源码
ruby
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb
dpkg -i zabbix-release_7.0-1+debian12_all.deb
apt update
apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
导入zabbix官方指定的初始数据
vbscript
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
对MYSQL进行进一步设置:
ini
mysql> set global log_bin_trust_function_creators = 0;
对zabbix里面一些配置文件的修改
ini
DBPassword=password //etc/zabbix/zabbix_server.conf
对zabbix里面nginx的一些参数设置
bash
# listen 8080;
# server_name example.com;
//etc/zabbix/nginx.conf uncomment and set 'listen' and 'server_name' directives.
启动服务
bash
# systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
# systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
WEB界面

用户名 Admin
密码 zabbix
新建主机:

添加监控项:在新建的主机里添加监控项,之后通过可视化图标查看是否正常运行。
仪表小部件配置
扩展所有仪表板小部件的基类 - CWidget。且Widget类应位于小部件的根目录中(例如,zabbix/ui/modules/test_widget) 通过添加小部件,可以进一步优化可视化界面, Widget.php 示例
scala
class Widget extends CWidget {
public const MY_CONSTANT = 0;
public function getTranslationStrings(): array {
return [
'class.widget.js' => [
'No data' => _('No data')
]
];
时区
对于对时间要求严格的安全生产,我们通常不向微软ntp服务器进行请求时间,而是自己搭建ntp服务器来请求自己的服务器。

同时可以设置定时的请求频率来确保时间同步。
仪表盘
图形界面需要创建一个仪表盘,(object/array)
待创建的仪表盘的信息
创建一个名为 "My dashboard" 的仪表盘,仪表盘中包含一个带有标签的问题组件,并使用了两种类型的共享(用户组和用户)。
请求
json
{ "jsonrpc": "2.0", "method": "dashboard.create", "params": { "name": "My dashboard", "display_period": 30, "auto_start": 1, "pages": [ { "widgets": [ { "type": "problems", "x": 0, "y": 0, "width": 36, "height": 5, "view_mode": 0, "fields": [ { "type": 1, "name": "tags.0.tag", "value": "service" }, { "type": 0, "name": "tags.0.operator", "value": 1 }, { "type": 1, "name": "tags.0.value", "value": "zabbix_server" } ] } ] } ], "userGroups": [ { "usrgrpid": "7", "permission": 2 } ], "users": [ { "userid": "4", "permission": 3 } ] }, "id": 1}
响应:
json
{ "jsonrpc": "2.0", "result": { "dashboardids": [ "2" ] }, "id": 1}