Zabbix(一)介绍及安装部署zabbix

文章目录

  • Zabbix 介绍
  • Zabbix监控概述
    • zabbix架构
  • 安装部署zabbix
    • 安装数据库
    • Ubuntu 安装zabbix
      • 编译安装zabbix
      • apt安装 zabbix
      • apt安装 Zabbix agent
    • CentOS 7 安装 zabbix
      • yum安装 zabbix
      • yum安装 zabbix Agent

Zabbix 介绍

概述
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。

Zabbix 是一个企业级分布式开源监控解决方案。

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。

Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。

Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。

Zabbix 的用户
Zabbix的使用者包括不同行业,不同规模的企业,遍布全球,他们都选择Zabbix作为最主要的监控平台。

Zabbix监控概述

官网:https://www.zabbix.com

zabbix适用于任何IT基础架构、 服务、应用程序和资源的解决方案
Zabbix(一)介绍及安装部署zabbix_第1张图片

数据采集:周期性时序数据

  1. 主机/对象:服务器、路由器、交换机、存储、防火墙、 IP、 PORT、 URL、自定义监控对象…
  2. 采集目标:监控项,指标数据(metrics data)

数据存储:

  • 存储系统:
    • SQL: MySQL/MariaDB(Zabbix)
    • NoSQL: Redis(Open-falcon)
    • rrd: Round Robin Database(Cacti)
  • 数据:
    • 历史数据: 每个监控项采集到的每个监控值
    • 趋势数据: 趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
  • 阈值: severity,可按照等级实现层级报警
  • 告警: email, 短信, 微信,语音,故障自治愈

四大核心任务:

  • 采集: zabbix-server, zabbix-proxy,zabbix-agent
    • Agentless: SNMP,Telnet,ssh, IPMI, JMX,
    • Agent: zabbix agent
  • 存储: zabbix database
  • 展示: zabbix web
    • graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示)
  • 告警:
    • host (host groups) <- templates
    • host -> items -> triggers -> action (条件-conditions, 操作-operations)

zabbix架构

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 的配置变得更加灵活易用。

安装部署zabbix

安装数据库

  1. 安装数据库:
    过程略

  2. 更改配置文件

max_connections=10000 

my.cnf配置文件更改最大链接数

  1. 准备数据库:
# 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)

Ubuntu 安装zabbix

编译安装zabbix

  1. 安装依赖包:
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 
  1. 下载zabbix源码包
    下载地址:https://www.zabbix.com/download_sources
tar -zxvf zabbix-4.0.12.tar.gz

解压文档名看你下载的版本

  1. 创建用户账户
useradd zabbix
  1. 编译安装:
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

  1. 数据库初始化
    需要先安装mysql客户端
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导入的时候要按顺序

  1. 启动apache2:
systemctl restart apache2
systemctl enable apache2
  1. 编辑zabbix_server.con配置文件
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
  1. Zabbix Server systemd启动脚本
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
  1. Zabbix Agent systemd启动脚本
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
  1. 配置web界面
mkdir /var/www/html/zabbix
cp -a zabbix-4.0.12/frontends/php/* /var/www/html/zabbix
  1. 找到相应的项,做如下更改
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 可能为注释项

  1. 重启apache2:
systemctl restart apache2
  1. 访问zabbix
    http://192.168.99.21/zabbix/setup.php
    Zabbix(一)介绍及安装部署zabbix_第2张图片

  2. 开始安装,Next step
    Zabbix(一)介绍及安装部署zabbix_第3张图片

  3. 填写你的数据库
    Zabbix(一)介绍及安装部署zabbix_第4张图片

  4. 添加zabbix服务端(在本机上)
    Zabbix(一)介绍及安装部署zabbix_第5张图片

  5. 确认配置后开始安装
    Zabbix(一)介绍及安装部署zabbix_第6张图片

  6. 点链接下载php配置文件,放到/var/www/html/zabbix/conf/zabbix.conf.php
    Zabbix(一)介绍及安装部署zabbix_第7张图片

  7. 刷新页面,Finish
    Zabbix(一)介绍及安装部署zabbix_第8张图片

  8. 进入登录界面
    默认帐号Admin,密码zabbix
    Zabbix(一)介绍及安装部署zabbix_第9张图片

设置中文

  1. 安装中文包
apt install language-pack-zh*
  1. 配置相关环境变量
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
echo 'LANGUAGE="zh_CN:zh:en_US:en"' >> /etc/environment
  1. 重新设置本地的配置
dpkg-reconfigure locales

空格选中,回车
Zabbix(一)介绍及安装部署zabbix_第10张图片
再选择 zh_CN.UTF-8
Zabbix(一)介绍及安装部署zabbix_第11张图片

  1. 重启apache2
systemctl restart apache2
  1. 修改apache2的字体
# vim /var/www/html/zabbix/include/defines.inc.php 
70   graphfont	改为  simkai
111  graphfont	改为  simkai

Zabbix(一)介绍及安装部署zabbix_第12张图片

Zabbix(一)介绍及安装部署zabbix_第13张图片

  1. 提取主机上的字体
    Zabbix(一)介绍及安装部署zabbix_第14张图片

Zabbix(一)介绍及安装部署zabbix_第15张图片

  1. 将字体放在/var/www/html/zabbix/assets/fonts/

  2. 网页更改为中文
    Zabbix(一)介绍及安装部署zabbix_第16张图片

apt安装 zabbix

https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/

  1. 配置源
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
  1. 安装zabbix
    安装zabbix server 并使用 MySQL 数据库:
apt install zabbix-server-mysql 

安装 Zabbix proxy 并使用 MySQL 数据库:

apt install zabbix-proxy-mysql

安装 Zabbix 前端:

apt install zabbix-frontend-php
  1. 编辑zabbix_server.con配置文件
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
  1. 启动zabbix
systemctl start zabbix-server
systemctl enable zabbix-server
  1. 导入数据
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p123456 -h192.168.99.21 zabbix_server
  1. 访问web
    http://192.168.99.22/zabbix/setup.php
    Zabbix(一)介绍及安装部署zabbix_第17张图片

  2. 上图有个Fail,需要修改配置文件

vim /etc/php/7.2/apache2/php.ini
date.timezone = Asia/Shanghai
  1. 重启apache2
systemctl restart apache2
  1. 刷新网页
    Zabbix(一)介绍及安装部署zabbix_第18张图片

  2. 设置数据库
    Zabbix(一)介绍及安装部署zabbix_第19张图片

  3. 名字随意
    Zabbix(一)介绍及安装部署zabbix_第20张图片

  4. 确认配置
    Zabbix(一)介绍及安装部署zabbix_第21张图片

  5. 完成
    Zabbix(一)介绍及安装部署zabbix_第22张图片

  6. 登录
    Zabbix(一)介绍及安装部署zabbix_第23张图片

  7. 如果遇到这个zabbix server is running=No
    Zabbix(一)介绍及安装部署zabbix_第24张图片

  8. 重启下zabbix server

systemctl restart zabbix-server

设置中文

  1. 安装中文包
apt install language-pack-zh*
  1. 配置相关环境变量
echo 'LANG="zh_CN.UTF-8"' >> /etc/environment
echo 'LANGUAGE="zh_CN:zh:en_US:en"' >> /etc/environment
  1. 重新设置本地的配置
dpkg-reconfigure locales

空格选中,回车
Zabbix(一)介绍及安装部署zabbix_第25张图片
再选择 zh_CN.UTF-8
Zabbix(一)介绍及安装部署zabbix_第26张图片

  1. 重启apache2
systemctl restart apache2
  1. 修改apache2的字体
# vim /usr/share/zabbix/include/defines.inc.php 
70   graphfont	改为  simkai
111  graphfont	改为  simkai

Zabbix(一)介绍及安装部署zabbix_第27张图片
Zabbix(一)介绍及安装部署zabbix_第28张图片

  1. 提取主机上的字体
    Zabbix(一)介绍及安装部署zabbix_第29张图片
    Zabbix(一)介绍及安装部署zabbix_第30张图片

  2. 将字体放在 /usr/share/zabbix/assets/fonts/ 下

  3. 网页更改为中文
    Zabbix(一)介绍及安装部署zabbix_第31张图片

apt安装 Zabbix agent

apt install zabbix-agent
  1. 配置文件
vi /etc/zabbix/zabbix_agentd.conf
...
Server=192.168.99.21
...
ServerActive=192.168.99.21
...
Hostname=192.168.99.110

CentOS 7 安装 zabbix

yum安装 zabbix

  1. 添加 Zabbix 软件仓库
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  1. Zabbix 前端web界面需要额外的基础安装包
yum-config-manager --enable rhel-7-server-optional-rpms
  1. 安装 Server/proxy/web前端
    安装 Zabbix server(适用于 RHEL7,在 RHEL 6 上弃用)并使用 MySQL 数据库:
yum install zabbix-server-mysql

安装 Zabbix proxy 并使用 MySQL 数据库:

yum install zabbix-proxy-mysql

安装 Zabbix 前端(适用于 RHEL 7,在 RHEL 6 上弃用)并使用 MySQL 数据库:

yum install zabbix-web-mysql
  1. 导入数据
    使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据,
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
  1. 编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
  1. 启动 Zabbix server 进程
    CentOS 7
systemctl start zabbix-server
systemctl enable zabbix-server
  1. Zabbix 前端配置
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

Zabbix(一)介绍及安装部署zabbix_第32张图片

yum安装 zabbix Agent

  1. 添加 Zabbix 软件仓库
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
  1. yum安装agent
yum install zabbix-agent
  1. 配置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
  1. 启动
systemctl start zabbix-agent
systemctl enable zabbix-agent

你可能感兴趣的:(zabbix)