Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
开源,无软件成本投入
Server 对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
开放式接口,扩展性强,插件编写容易
当监控的 item 比较多服务器队列比较大时可以采用被动状态,被监控客户端主动 从server 端去下载需要监控的 item 然后取数据上传到 server 端。 这种方式对服务器的负载比较小。
Api 的支持,方便与其他系统结合
需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据很大,瓶颈主要在数据库。
数据库: MySQL,MariaDB,Oracle,SQL Server agent
应用软件:Nginx,Apache,PHP,Tomcat agent
-------------------------------------------------------------------------------------------------------------------------------
集群: LVS,Keepalived,HAproxy,RHCS,F5 agent
虚拟化: VMware,KVM,XEN ,docker,k8s agent
操作系统:Linux,Unix,Windows性能参数 agent
-------------------------------------------------------------------------------------------------------------------------------
硬件: 服务器,存储,网络设备 IPMI
网络: 网络环境(内网环境,外网环境) SNMP
-------------------------------------------------------------------------------------------------------------------------------
一台zabbix-server
三台zabbix-agent(包括server端自身也是一个agent)
操作系统:centos7.6
关闭防火墙
systemctl stop firewalld.service
systemctl stop iptables firewalld
关闭selinux
临时:
setenforing 0
永久:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
主机名修改,并设置hosts本地解析:
hostnamectl --static set-hostname zabbix-server
hostnamectl --static set-hostname zabbix-agent1
hostnamectl --static set-hostname zabbix-agent2
vim /etc/hosts
..............
开启邮件服务,设为自启:
systemctl start postfix
systemctl enable postfix
安装yum仓库:(server和agent端都要安装)
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更新yum仓库:(server和agent端都需配置)
yum repolist
先下个epel源:
yum -y install epel-release.noarch
然后安装 Zabbix server和agent:(agent端只需安装agent)
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql
yum -y install centos-release-scl
开启前端安装源仓库配置
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1 //设置启用就OK
...
安装zabbix前端:
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
创建mariadb.repo:
vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.5/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
使用yum安装最新版本mariadb:
yum install -y MariaDB-server MariaDB-clien
修改配置文件:
vim /etc/my.cnf.d/server.cnf
```sql
[mysqld]
skip_name_resolve = ON # 跳过主机名解析
innodb_file_per_table = ON # 开启独立表空间
innodb_buffer_pool_size = 256M # 缓存池大小
max_connections = 2000 # 最大连接数
log-bin = master-log # 开启二进制日志
启动数据库服务:
systemctl restart mariadb
mysql_secure_installation # 初始化mariadb
进入数据库,创建授权账号:
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.37.%' identified by '123.sehn'; # 注意授权网段
MariaDB [(none)]> flush privileges; # 刷新授权
导入zabbix服务表:
rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-5.0.2
/usr/share/doc/zabbix-server-mysql-5.0.2/AUTHORS
/usr/share/doc/zabbix-server-mysql-5.0.2/COPYING
/usr/share/doc/zabbix-server-mysql-5.0.2/ChangeLog
/usr/share/doc/zabbix-server-mysql-5.0.2/NEWS
/usr/share/doc/zabbix-server-mysql-5.0.2/README
/usr/share/doc/zabbix-server-mysql-5.0.2/create.sql.gz // 生成表的各种脚本
/usr/share/doc/zabbix-server-mysql-5.0.2/double.sql
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
使用 create.sql.gz 生成所需要的表:
gzip -d /usr/share/doc/zabbix-server-mysql-5.0.2/create.sql.gz
head /usr/share/doc/zabbix-server-mysql-5.0.2/create.sql
CREATE TABLE `users` (
`userid` bigint unsigned NOT NULL,
`alias` varchar(100) DEFAULT '' NOT NULL,
`name` varchar(100) DEFAULT '' NOT NULL,
`surname` varchar(100) DEFAULT '' NOT NULL,
`passwd` varchar(60) DEFAULT '' NOT NULL,
`url` varchar(255) DEFAULT '' NOT NULL,
`autologin` integer DEFAULT '0' NOT NULL,
`autologout` varchar(32) DEFAULT '15m' NOT NULL,
`lang` varchar(5) DEFAULT 'en_GB' NOT NULL,
查看表头发现没有创建数据库的命令,这正是手动创建数据库的原因。把所需表导入数据库就ok:
mysql -uzabbix -h192.168.37.111 -p'123.sehn' zabbix < /usr/share/doc/zabbix-server-mysql-5.0.2/create.sql
导入以后查看数据库:
mysql -uzabbix -h192.168.37.111 -p'123.sehn'
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| zabbix |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
……
| users_groups |
| usrgrp |
| valuemaps |
| widget |
| widget_field |
+----------------------------+
166 rows in set (0.001 sec)
数据已经导入成功
先备份一下:
cp /etc/zabbix/zabbix_server.conf{,.bak}
配置文件内要修改的内容:
[root@zabbix-server zabbix]# cat zabbix_agentd.conf | grep -v "^[[:space:]].*#" | grep -v "^#" | grep -v "^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
SourceIP=192.168.37.112 //agent
EnableRemoteCommands=1
Server=192.168.37.111 //server
ListenPort=10050
ListenIP=192.168.37.112 //agent
ServerActive=192.168.37.111 //server
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
//server端数据库相关配置
DBHost=192.168.37.111 #数据库对外的主机
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户
DBPassword=123.sehn #数据库密码
DBPort=3306 #数据库启动端口
修改后就可以启动了:
systemctl start zabbix-server.service
查看端口验证一下:
ss -nutl |grep 10051
tcp LISTEN 0 128 *:10051 *:*
tcp LISTEN 0 128 :::10051 :::*
php 监听用户增加nginx,设置时区:
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai //最后为一条设置时区,我这里设置为上海
启动 httpd 服务:
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
//建议设置为自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
浏览器访问http://192.168.37.111/zabbix,第一次访问时需要进行一些初始化的设置,按照提示操作:
全部为ok,执行下一步
下一步:
下一步:
完事!
最后会跳转到登录页面,使用账号密码登录即可:
默认用户名为:Admin ,密码为:zabbix ,登录后进入仪表盘