一、Zabbix简介
- Zabbix是由Alexei Vladishev开发的一种网络监视、管理系统、基于Server-Client架构,可用以监视各种网络服务、服务器和网络机器等状态。
- 使用各种Database-end如MySQL,PostgreSQL,SQLite、Oracle或IBM DB2储存资料,server端基于C语言、web管理端frontend则是基于PHP所制作的
- Zabbix可以使用多种方式监控,可以只使用Simple Check不需要安装client端,亦可基于SMTP或HTTP各种协议定制监视
- 在客户端如UNIX,windows中安装Zabbix Agent之后,可监视CPU load、网络使用情况、硬盘容量等各种状态,而就算没有安装Agent在监视对象中,zabbix也可以经由SNMP、TCP、ICMP,利用IPMI、SSH、telnet对目标进行监视
- zabbix自带的Item足够满足普通小公司的监控需求,对于大公司也可以设定自定义的Item,自动生成报表,也有API可以和其他系统集成
二、为什么zabbix不是其他监控
zabbix就是可以满足理想化的监控系统需求
- 支持自定义监控脚本,提供需要输出的值即可
- zabbix存储的数据库表结构稍有复杂但是逻辑清晰
- zabbix存在模板概念,可以方便的将一组监控项进行部署
- zabbix每一个item也就是监控项,都可以看到历史记录,且web界面友好
- zabbix有强大的Trigger(触发器)定义规则,可以定义复杂的报警逻辑
- zabbix提供了ack报警确认机制
- zabbix支持邮件、短信、微信等告警
- zabbix在触发告警后,可以远程执行系统命令
- zabbix有原有的PHP绘图模块
三、zabbix参数
zabbix server,服务端,收集数据,写入数据
zabbix agent,部署在被监控的机器上,是一个进程,和zabbix server进行交互,以及负责执行命令·
Host,服务器的概念,指zabbix监控的实体,服务器,交换机等
Hosts,主机组
Applications,应用
Events,事件
Media,发送通知的通道
Remote command,远程命令
ltem,对于某一个指标的监控,称之为ltems,如某台服务器的内存使用状况,就是一个item监控项
Trigger,触发器,定义报警的逻辑,有正常,异常,未知三个状态
Action,当Trigger符合设定值后,zabbix指定的动作,如发个邮件给超哥,说服务器有问题了
四、zabbix组件
- zabbix_server ,服务端守护进程
- zabbix_agented, agent守护进程
- zabbix_proxy,代理服务器
- zabbix_databases,存储系统,mysql
- zabbix_web,web GUI图形化界面
- zabbix_get,命令行工具,测试向agent发起数据采集请求
- zabbix_sender,命令行工具,测试向server发送数据
- zabbix_java_gateway,Java网关
五、部署Zabbix监控
实验环境
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
ntpdate ntp.aliyun.com
hostnamectl set-hostname zabbix-server
5.1安装Zabbix
- 5.0版本对基础环境的要求有大的变化,最大的就是对PHP版本的要求,最低要求7.2.0版本对PHP扩展组件版本也有要求
- 官网https://www.zabbix.com/documentation/current/manual/installation/requirements
- 获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm //安装zabbix
ls /etc/yum.repos.d/
vim /etc/yum.repos.d/zabbix.repo
2. 修改zabbix.repo下载源,为阿里的
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
3. 清空缓存,安装zabbix—server和agent
yum clean all
yum makecache
yum install zabbix-server-mysql zabbix-agent -y //安装zabbix用于连接服务端的
- 安装software collections
便于后面安装高版本的PHP,默认yum安装的PHP版本为5.4过低,使用多个版本软件,并且不会影响到整个系统的依赖环境
yum install centos-release-scl -y
- 修改zabbix-front 前端源
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1 //开启这里的参数,将0修改为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
- 安装Zabbix前端源环境,且安装到scl环境下
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
- 安装zabbix所需的数据库,mariadb
yum install mariadb-server -y
- 配置数据库,开机启动
systemctl enable mariadb
- 初始化数据库,设置密码(abc123)
mysql_secure_installation
- 添加数据库用户,以及zabbix所需的数据库信息
mysql -uroot -pabc123
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; //创建zabbix数据库,设置编码
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create user zabbix@localhost identified by 'abc123'; //创建一个zabbix用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost; //授权给用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; //刷新一下授权表
Query OK, 0 rows affected (0.00 sec)
exit
- 使用zabbix-mysql命令,导入数据库信息
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
mysql -uzabbix -pabc123
- 修改zabbix-server配置文件,修改数据库密码
vim /etc/zabbix/zabbix_server.conf
DBPassword=abc123
grep '^DBPa' /etc/zabbix/zabbix_server.conf
13. 修改zabbix的PHP配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/shanghai //取消注释,将时区改为上海
grep 'timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf //检查修改的内容是否正确
- 启动zabbix服务器
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.27.136/zabbix界面
- 安装成功之后,默认账号密码
账号:Admin 密码;zabbix
5.2部署Zabbix客户端
- Zabbix5.0版本,agent2新版本采用golang语言开发的客户端,由于是go语言开发,部署起来方便,和之前的程序部署不同,agent2默认用10050端口,也就是zabbix客户端的端口
- 旧版本的客户端:zabbix-agent
- go语言新版客户端:zabbix-agent2
- 时间同步
ntpdate ntp.aliyun.com
- 时区的统一配置
mv /etc/localtime{,.bak} //时间做备份
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- Zabbix-agent2安装
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install zabbix-agent2
vim /etc/zabbix/zabbix_agent2.conf
ls -l /usr/sbin/zabbix_agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -antp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 30254/zabbix_agent2
- 修改agent2配置文件,查看配置信息
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
Server=192.168.27.136 //服务端IP
ServerActive=192.168.27.136 //服务端IP
Hostname=zabbix-agent01 //在客户端1修改
Hostname=zabbix-agent02 //在客户端2修改
systemctl restart zabbix-agent2
- 验证Zabbix-agent的连通性
yum install zabbix-get -y
zabbix_get -s '192.168.27.138' -p 10050 -k 'agent.ping'
zabbix_get -s '192.168.27.138' -p 10050 -k 'system.hostname'
- 解决zabbix-server查看的乱码问题
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
- 添加两台客户端
|