一、zabbix介绍
1.什么是zabbix?
- zabbix是一个分布式开源的监控系统,支持多种采集信息方法,使它几乎可以采集和处理所有类型的监控数据,灵活的报警机制,可以实现各种自定义报警策略,强大的拓展性,可以自定义监控项、图形、模板,还支持自动注册和自动发现,使它可以快速构建一套大型的监控系统,还有丰富的api接口。
- 官网https://www.zabbix.com/
2.zabbix主要特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
3.Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
4.zabbix进程
zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
二、安装使用zabbix
1.下载zabbix源
[root@zabbix ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
[root@zabbix ~]#ll -l /etc/yum.repos.d/zabbix.repo
-rw-r--r--. 1 root root 401 Feb 15 2016 /etc/yum.repos.d/zabbix.repo
2.安装依赖
[root@zabbix ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-server zabbix-web mariadb-server mariadb -y
3.修改时区
[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
20 # php_value date.timezone Europe/Riga
21 php_value date.timezone Asia/Shanghai
4.启动数据库
[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 12642/mysqld
5.创建数据库
[root@zabbix ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '000000';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
[root@zabbix ~]# ll /usr/share/doc/zabbix-server-mysql-3.0.20/create.sql.gz
-rw-r--r--. 1 root root 1159237 Jul 30 19:09 /usr/share/doc/zabbix-server-mysql-3.0.20/create.sql.gz
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p000000 zabbix
[root@zabbix ~]# mysql -uzabbix -p000000 -e "use zabbix;show tables;"|head -5
Tables_in_zabbix
acknowledges
actions
alerts
application_discovery
6.修改配置文件
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
115 # DBPassword=
116 DBPassword=000000
7.启动服务
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# systemctl start httpd
[root@zabbix ~]# netstat -lntup|egrep "httpd|zabb"
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12817/zabbix_server
tcp6 0 0 :::80 :::* LISTEN 12875/httpd
tcp6 0 0 :::10051 :::* LISTEN 12817/zabbix_server
8.关闭防火墙,se
[root@zabbix ~]# systemctl stop firewalld
[root@zabbix ~]# setenforce 0
9.agent配置
因为server跟agent都配在同一个虚拟机,默认监控127.0.0.1可以不用修改。
[root@zabbix ~]# egrep -v "^$|#" /etc/zabbix/zabbix_agentd.conf |grep 127
Server=127.0.0.1
ServerActive=127.0.0.1
10.启动agent
[root@zabbix ~]# systemctl start zabbix-agent
[root@zabbix ~]# netstat -lntup|grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 13096/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12817/zabbix_server
tcp6 0 0 :::10050 :::* LISTEN 13096/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 12817/zabbix_server
11.网页访问
三、添加新的监控主机
1.下载安装源
[root@zabbix-01 ~]# rpm -ivh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
[root@zabbix-01 ~]# yum install zabbix-agent -y
2.修改配置文件
[root@zabbix-01 ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.6 ###服务端IP
ServerActive=10.0.0.6###服务端IP
Hostname=zabbix-01###客户端主机名
Include=/etc/zabbix/zabbix_agentd.d/
3.启动zabbix
[root@zabbix-01 ~]# systemctl start zabbix-agent
[root@zabbix-01 ~]# netstat -lntup|grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 12181/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 12181/zabbix_agentd
4.关闭防火墙,se
[root@zabbix-01 ~]# systemctl stop firewalld
[root@zabbix-01 ~]# setenforce 0
5.web页面查看