最近公司2台服务器被黑了拿去挖矿,手上的服务器太多实在管理不过来,于是准备上集群监控。
zabbix看起来不错的样子,开源且有公司维护,而且支持的操作系统还都是最新的发布版本。
监控方面也有很多环境的模板。(没有的话github大概有)
部署方面,可以源码编译,也可以用包管理,还支持docker、虚拟机快速部署,而且清华源有镜像哟。
基本概念:
Agent:安装在被监控服务器的监控程序
Server:核心程序,与Agent通信获取被监控服务器状态
Agent Proxy:Agent代理,可以用于监控内网多台服务器
环境:
- 香蕉派 BPI M64
- Debian 10
- Mariadb
- Nginx
- PHP7.3
- Zabbix 4.0 LTS
Server安装:
下载和安装
由于
进入下载页面,下载
这里选择的是Zabbix 4.0 LTS,Debian 10,MySQL
下面会生成相应的安装流程
先把源配置好
[code]# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb
# dpkg -i zabbix-release_4.0-3+buster_all.deb
# apt update #先别急着update,可以把源换成国内镜像[/code]
注意安装 zabbix-frontend-php 的时候apt会依赖php,php会依赖apache2,如果想用nginx的话,有两个办法:
1、卸载zabbix源,使用debian源,先手动装一下php-fpm,再装zabbix-frontend-php,这样就可以避免依赖apache2了
2、去下载源码包,解压后的 frontends/php 就是用作webroot的目录
这里我选择了下载源码包
[code]# wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.12/zabbix-4.0.12.tar.gz
tar xvf zabbix-4.0.12.tar.gz
cp -r zabbix-4.0.12/frontends/php/ /webroot[/code]
[code]# apt install php-fpm nginx[/code]
[code]# apt install zabbix-server-mysql zabbix-agent[/code]
安装好后php文件路径在/usr/share/zabbix,自己拷走配nginx去,这里就不描述nginx配置了
记得对webroot进行权限配置
[code]chmod 777 webroot
chown -R www-data webroot
chgrp -R www-data webroot[/code]
php
整理了一下zabbix对php模块的依赖和需要对php.ini的修改。
[code]# apt install php-gd php-xml php-bcmath php-mbstring php-ldap php-mysql[/code]
php.ini需要修改如下
[code]vim /etc/php/7.3/fpm/php.ini
date.timezone =”Asia/Shanghai”
post_max_size = 64M
max_execution_time = 300
max_input_time = 300[/code]
数据库
创建数据库,并授权localhost密码登录,自己替换想用的用户名和密码
[code]# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘password‘;
mysql> quit;[/code]
导入schema
[code]zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix[/code]
如果用debian源安装,未发现官方文档描述的/usr/share/doc/zabbix-server-mysql*/create.sql.gz这个文件,但目录里有个REAMDE.Debian告诉我们应该用下面的方式
[code]zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz \
| mysql -uzabbix -pSECRETPASSWORD zabbix[/code]
如果发生下面这样的错误,请修改my.cnf
mariadb Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.[code][mysqld]
innodb_strict_mode = 0[/code]重启并DROP数据库
[code]# systemctl restart mysqld
# mysql -uroot -p
password
mysql> drop database zabbix;[/code]
zabbix
编辑 /etc/zabbix/zabbix_server.conf ,配置数据库,文件自带注释,自己改就行
[code]DBName=zabbix
DBUser=zabbix
DBPassword=password[/code]
启动
设置开机自启
[code]systemctl enable zabbix-server zabbix-agent nginx php7.3-fpm[/code]
重启zabbix、nginx、php
[code]systemctl restart zabbix-server zabbix-agent nginx php7.3-fpm[/code]
完成初始化
打开浏览器访问刚配的nginx地址
这里都在之前php配置的时候修改了,应该都是OK
配置数据库连接
配置php连接到server的端口,默认即可,除非web与server部署不在一起
没权限写入,按照前面说明要chown和chgrp,强烈反对chmod 777
如果特殊环境,不分配写入权限,可以安图上说明下载配置文件手动上传
默认用户名:Admin
默认密码:zabbix