概述
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。
Zabbix 的用户
Zabbix的使用者包括不同行业,不同规模的企业,遍布全球,他们都选择Zabbix作为最主要的监控平台。
官网:https://www.zabbix.com
zabbix适用于任何IT基础架构、 服务、应用程序和资源的解决方案
数据采集:周期性时序数据
数据存储:
四大核心任务:
Zabbix 由几个主要的功能组件组成,其功能介绍如下所示。
Server
Zabbix server 是 Zabbix软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以代替 Zabbix server采集性能和可用性数据。Zabbix proxy在Zabbix的部署是可选部分;但是proxy的部署可以很好的分担单个Zabbix server的负载。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
数据流
另外,回过头来整体的了解下 Zabbix 内部的数据流对Zabbix的使用也很重要。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action)。因此,如果您想要收到类似“X个server上CPU负载过高”这样的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监控其 CPU的监控项,最后创建一个触发器,用来触发 CPU负载过高这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,实际操作非常简单。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
安装数据库:
过程略
更改配置文件
max_connections=10000
my.cnf配置文件更改最大链接数
# mysql
mysql> create database zabbix_server character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix_server.* to zabbix@"192.168.99.%" identified by '123456';
Query OK, 0 rows affected (0.00 sec)
apt-get install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli php7.2-common php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl libcurl4-openssl-dev php-gettext php-xml php-net-socket php-gd
tar -zxvf zabbix-4.0.12.tar.gz
解压文档名看你下载的版本
useradd zabbix
cd zabbix-4.0.12
./configure --prefix=/usr/local/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--enable-java
make && make install
安装proxy时,–enable-proxy
单独安装agent:./configure --enable-agent
apt install mysql-client
# cd ./database/mysql/
# ls
data.sql images.sql Makefile Makefile.am Makefile.in schema.sql
cd ./database/mysql/
mysql -uzabbix -p123456 -h192.168.99.21 zabbix_server < schema.sql
mysql -uzabbix -p123456 -h192.168.99.21 zabbix_server < images.sql
mysql -uzabbix -p123456 -h192.168.99.21 zabbix_server < data.sql
database/mysql/目录相对于zabbix解压后的包的目录
3个sql导入的时候要按顺序
systemctl restart apache2
systemctl enable apache2
mkdir /var/log/zabbix
chown -R zabbix.zabbix /var/log/zabbix
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=192.168.99.21
DBName=zabbix_server
DBUser=zabbix
DBPassword=123456
DBPort=3306
Timeout=30
LogSlowQueries=3000
ln -s /usr/local/zabbix/sbin/zabbix_server /usr/sbin/
vim /lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server (MySQL/MariaDB)
Documentation=man:zabbix_server
After=network.target mysql.service
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/sbin/zabbix_server --foreground
ExecReload=/usr/sbin/zabbix_server -R config_cache_reload
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
启动
systemctl daemon-reload
systemctl start zabbix-server
systemctl enable zabbix-server
ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/sbin/
vim /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/sbin/zabbix_agentd --foreground
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
启动
systemctl daemon-reload
systemctl start zabbix-agent
systemctl enable zabbix-agent
mkdir /var/www/html/zabbix
cp -a zabbix-4.0.12/frontends/php/* /var/www/html/zabbix
vim /etc/php/7.2/apache2/php.ini
...
post_max_size = 16M
...
max_execution_time = 300
...
max_input_time = 300
...
date.timezone = Asia/Shanghai
...
date.timezone 可能为注释项
systemctl restart apache2
设置中文
apt install language-pack-zh*
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
echo 'LANGUAGE="zh_CN:zh:en_US:en"' >> /etc/environment
dpkg-reconfigure locales
systemctl restart apache2
# vim /var/www/html/zabbix/include/defines.inc.php
70 graphfont 改为 simkai
111 graphfont 改为 simkai
https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/
wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb
dpkg -i zabbix-release_4.0-2+bionic_all.deb
apt update
apt install zabbix-server-mysql
安装 Zabbix proxy 并使用 MySQL 数据库:
apt install zabbix-proxy-mysql
安装 Zabbix 前端:
apt install zabbix-frontend-php
mkdir /var/log/zabbix
chown -R zabbix.zabbix /var/log/zabbix
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=192.168.99.21
DBName=zabbix_server
DBUser=zabbix
DBPassword=123456
DBPort=3306
Timeout=30
LogSlowQueries=3000
systemctl start zabbix-server
systemctl enable zabbix-server
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p123456 -h192.168.99.21 zabbix_server
vim /etc/php/7.2/apache2/php.ini
date.timezone = Asia/Shanghai
systemctl restart apache2
systemctl restart zabbix-server
设置中文
apt install language-pack-zh*
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
echo 'LANGUAGE="zh_CN:zh:en_US:en"' >> /etc/environment
dpkg-reconfigure locales
systemctl restart apache2
# vim /usr/share/zabbix/include/defines.inc.php
70 graphfont 改为 simkai
111 graphfont 改为 simkai
apt install zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf
...
Server=192.168.99.21
...
ServerActive=192.168.99.21
...
Hostname=192.168.99.110
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum-config-manager --enable rhel-7-server-optional-rpms
yum install zabbix-server-mysql
安装 Zabbix proxy 并使用 MySQL 数据库:
yum install zabbix-proxy-mysql
安装 Zabbix 前端(适用于 RHEL 7,在 RHEL 6 上弃用)并使用 MySQL 数据库:
yum install zabbix-web-mysql
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
对于 Zabbix proxy,导入初始的数据库 schema:
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
systemctl start zabbix-server
systemctl enable zabbix-server
vi /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
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum install zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.99.21
StartAgents=3
ServerActive=192.168.99.21
Hostname=192.168.99.110
Include=/etc/zabbix/zabbix_agentd.d/*.conf
systemctl start zabbix-agent
systemctl enable zabbix-agent