组件结构

  • Zabbix_Server:整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、统计数据及操作数据都由它组织。
  • 数据库存储:所有配置信息和Zabbix收集到的数据都被存储在数据库中。
  • Web界面:为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是 Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上(!如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。)
  • Zabbix_Proxy(可选):用于监控节点非常多的分布式环境中,它可以代理zabbix-server的功能,减轻zabbixserver的压力。
  • Zabbix_Agent:zabbix-agent为客户端软件,用于采集各监控项目的数据,并把采集的数据传输给zabbixproxy或zabbix-server。

安装zabbix 服务端(server1)

PS:关闭selinux、防火墙

准备yum源,安装服务的组件

[root@server1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@server1 ~]# yum install zabbix-server-mysql zabbix-web-mysql  -y

准备数据库

安装数据库

[root@server1 ~]# yum install mariadb-server -y
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb

创建zabbix用户

[root@server1 ~]# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by '000000';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

修改服务的配置

导入初始架构数据

[root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -D zabbix -p000000
#-D zabbix为导入的数据库为zabbix

为zabbix配置数据库

 vim /etc/zabbix/zabbix_server.conf

DBPassword=000000
#添加密码,可通过/查找位置

编辑前端php配置

[root@server1 ~]# vim /etc/httpd/conf.d/zabbix.conf

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data ‐1
php_value date.timezone Asia/Shanghai #前面的都有,仅添这一行

启动服务

[root@server1 ~]# systemctl restart zabbix-server httpd
[root@server1 ~]# systemctl enable zabbix-server httpd

完成zabbix 服务端的部署,可以通过http://192.168.106.10/zabbix进行访问,初始化完成之后使用用户Admin 密码zabbix

初始界面:

在Configure DB connection页面输入zabbix用户的密码

在Zabbix server details页面输入Name Zabbix-server

其他均为Next step

PS:在右上角用户界面点开可以切换中文

解决报错

安装zabbix 服务端(server1)

安装软件包

[root@server1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@server1 ~]# yum install zabbix-agent -y

修改配置文件

 [root@server1 ~]# vim /etc/zabbix/zabbix_agentd.conf 
# 修改以下三个参数

Server=192.168.106.10
ServerActive=192.168.106.10
Hostname=Zabbix server

[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
# 修改以下参数

ListenIP=0.0.0.0

在web上手动修改配置

仅仅修改配置文件仍会报错,需要web上再改一次

重启服务

[root@server1 ~]# systemctl restart zabbix-server zabbix-agentd httpd
#[root@server1 ~]# tailf /var/log/zabbix/zabbix_server.log
#[root@server1 ~]# tailf /var/log/zabbix/zabbix_agentd.log
#要是仍然报错就看两个日志都看看

安装zabbix 客户端(server2)

PS:关闭selinux、防火墙

安装软件包

[root@server2 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
[root@server2 ~]# yum install zabbix-agent -y

修改配置文件

 [root@server1 ~]# vim /etc/zabbix/zabbix_agentd.conf 
# 修改以下三个参数

Server=192.168.106.20
ServerActive=192.168.106.20
Hostname=Zabbix server

启动服务

[root@server2 ~]# systemctl start zabbix-agent

监控主机

添加主机

添加监控项

名称可以自拟,键值需要使用默认自带的或者自定义的

添加自定义监控项

检测nginx的status的监控项

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
UserParameter=nginx_process_num,ps -ef |  grep -c nginx
#检查nginx进程数量的监控项,加上此行
UserParameter=mysql_process_num, mysqladmin -uroot -predhat  ping 2>/dev/null |grep -c alive
UserParameter=mysql_connections, mysql -uroot -predhat -e "show processlist;" 2>/dev/null | sed -n "2,$"p |wc -l
UserParameter=mysql_max_connections,mysql -uroot -predhat -e 'show variables like "max_connections";' 2>/dev/null |awk '{print $2}' |sed -n 2p

键值要与配置文件中的相同

添加触发器

名称自拟,选择严重性,添加监控项比较的数值

邮件告警

配置Email:管理->报警媒介类型->Email->修改对应Email参数

修改admin用户的报警媒介Email:管理->用户->Admin->报警媒介->添加接收报警邮件的邮箱->点击更新

配置发送异常报警邮件:配置->动作->创建动作->添加新的触发条件->添加新的操作->更新