之前为了维护博客网站的稳定性,特意给自己的网站搭建了一个zabbix监控系统,主要监控了网站的nginx状态、数据库状态、数据库连接数等,并配置了通过企业微信发送告警通知。在此将整个搭建过程记录下来。
zabbix介绍
Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位并解决存在的各种问题。
zabbix的有很多优点,开源、无软件成本投入;Server 对设备性能要求低;支持设备多、自带多种监控模板;支持分布式集中管理、有自动发现功能、可以实现自动化监控。但同时它也有一些缺点,需在被监控主机上安装 agent,所有数据都存在数据库里,产生的数据很大,瓶颈主要在数据库;项目批量修改不方便;系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多,并且自定义的项目报警需要自己设置,过程比较繁琐。
搭建过程
1.安装zabbix服务端
准备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
关闭selinux、防火墙
[root@server1 ~]# setenforce 0
[root@server1 ~]# systemctl stop firewalld
2.准备数据库
安装数据库
[root@server1 ~]# yum install mariadb-server -y
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb
创建zabbix用户
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;
3.修改服务的配置
导入初始架构数据
[root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -D zabbix -p
为zabbix配置数据库
[root@server1 ~]# 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://IP/zabbix 进行访问,即可进入如下页面进行zabbix页面的安装设置。
初始化完成之后使用默认初始用户Admin,密码 zabbix。
4.客户端配置
客户端安装软件包
[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@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
# 主要修改以下三个参数
Server=192.168.175.10
ServerActive=192.168.175.10
Hostname=server1
关闭selinux、防火墙、启动服务
[root@server1 ~]# setenforce 0
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# systemctl start zabbix-agent.service
至此,客户端的agent已经安装、配置完成,已经将客户端和服务端关联起来了,就可以在zabbix网页上进行相关的设置使服务端对客户端主机上的服务进行监控了。
5.其他方法
以上我的搭建方法是基于yum的方式去安装的,比较简单便捷,但在实际生产环境中大部分都会采用编译安装的方式,那整个过程基本就会包括nginx、php、mysql、zabbix的编译安装,安装过程中可以选择自己想要的版本。