前言

对于运维人员来说,服务器各个参数及性能指标对业务的运行至关重要,这些性能指标会因为种种原因发生变化,变化的指标很有可能不是所期望的,此时需要运维人员去处理这些问题。对于24小时不停运转的业务来说,运维人员不可能时时刻刻登录到服务器上查看相关信息,此时一套完整且功能强大的自动化监控系统能够大大提高运维人员的工作效率。那么了解主流监控产品及安装是每一个运维人员必备的知识和技能。

一、监控目的

监控是指对行为、活动或其他变动中信息的一种持续性关注,通常是为了对人达成影响、管理、指导或保护的目的。来自《维基百科》

在运维行业中也是如此,只不过对象变成了服务器、各种应用指标等,运维人员想通过监控去对业务达到管理、指导或保护的目的。

监控的目的就很明确:

  • 报告系统的运行状况:通过系统的运行状况能够及时的对系统性能进行调整

  • 及时发现系统问题:能够第一时间发现问题并及时处理

二、监控方式

过去传统的运维只能通过系统相关命令查看系统指标,这是个体力活。少量服务器及应用可能还能查看,当有大量服务器及应用时,这就是一个艰巨的任务,并且不能实时的告知系统异常,所以传统的运维目前逐步淘汰。另一种就是通过自动化监控系统,监控系统就能很好的规避传统运维手动操作的痛点,同时也能实现自动化监控,及时发现问题进行预警,大大提高运维人员的工作效率。

三、主流监控系统

一套完整的业务系统要有网络设备、服务器、应用服务等,市面上就有应对不同设备及应用的监控系统,当然目前很多监控系统都结合在一起各有优缺点。具体可百度,这里大致说明以下三种监控系统:

  • Zabbix:基于WEB界面提供监视数据,有着美观的WEB界面及容易上手是目前主流的监控产品,能够监控服务器信息、应用信息、网络设备、自定义监控等等。
  • Cacti:更善于监控网络流量、网络设备。
  • Nagios:和Zabbix一样,都是能够监控服务器信息、应用信息、网络设备、自定义监控等等。

四、Zabbix介绍

Zabbix中国官网:https://www.zabbix.com/cn/

Zabbix产品手册:https://www.zabbix.com/cn/manuals

Zabbix是一个企业级分布式开源监控系统,Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。

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

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

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

以上,来自Zabbix 官方手册

总的来说Zabbix是一个企业级的开源监控系统,能够监控很多内容,且有着灵活的告警机制,重点是开源免费!

Zabbix组成

  • 监控服务器

    • 监控服务器可以通过SNMP或Agent采集数据
    • 数据可以写入MySQL、Oracle等数据库中
  • 被监控主机\网络设备
    • 被监控主机需要安装Agent
    • 常见的网络设备一般支持SNMP

Zabbix默认端口

  • Server端:10051
  • Agent端:10050

既然这么好,不多说直接开始安装体验!

五、Zabbix服务端安装

5.1 环境介绍

  • 操作系统:CentOS 7.9.2009 Minimal
  • WEB服务:Nginx 1.20.1
  • 数据库:MySQL 5.7.26
  • Zabbix版本:4.0.32
  • PHP:7.0
  • PHP-FPM:7.0
  • 网络环境:互联网

安装前自然不必多说,首当其冲就是配置YUM源,使用的是阿里云EPEL(Extra Packages for Enterprise Linux) YUM源、Centos-7镜像YUM源、Webtatic的YUM源。

参考链接

# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum -y install epel-release
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

5.2 准备系统环境

安装依赖包

Nginx依赖包
# yum -y install gcc pcre-devel openssl-devel MySQL依赖包
# yum -y install perl-JSON perl-Data-Dumper mysql-devel Zabbix依赖包
# yum -y install net-snmp-devel curl-devel libevent-devel php70w-gd php70w-xml php70w-bcmath php70w-mbstring 关闭防火墙、selinux
# iptable -F ; setenforce 0

5.3 安装Nginx(源码编译安装)

# wget http://nginx.org/download/nginx-1.20.1.tar.gz
# tar -xf nginx-1.20.1.tar.gz && cd nginx-1.20.1
# ./configure --with-http_ssl_module
# make && make install
启动Nginx
# /usr/local/nginx/sbin/nginx
开机自启动
#
测试Nginx
# curl http://127.0.0.1
......
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
.....

5.3.1 配置Nginx

# vim /usr/local/nginx/conf/nginx.conf
了解Nginx的读者可能知道以下配置的含义,不了解也没关系,照样能搭建网页服务,具体可自行百度学习。
在65行添加以下内容,并按照以下内容去掉注释,注意75行是修改配置文件参数的。
43 location / {
44 root html;
45 index index.html index.htm index.php; # 新增index.php
46 }
.......
65 fastcgi_buffers 8 16k; # 缓存php生成的页面内容,8个16k,缓存越大速度越快
66 fastcgi_buffer_size 32k; # 缓存php生产的头部信息
67 fastcgi_connect_timeout 300; # 连接PHP的超时时间
68 fastcgi_send_timeout 300; # 发送请求的超时时间
69 fastcgi_read_timeout 300; # 读取请求的超时时间
70 location ~ \.php$ {
71 root html;
72 fastcgi_pass 127.0.0.1:9000;
73 fastcgi_index index.php;
74 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
75 include fastcgi.conf;
76 } 重新加载配置文件
# /usr/local/nginx/sbin/nginx -s reload

5.4 PHP、PHP-FPM(YUM安装)

首先由于EPEL源和镜像源的PHP版本是5版本,无法满足Zabbix对PHP 版本的要求,Zabbix 4.0需要PHP 7版本,为了避免源码安装PHP 的各种复杂操作,通过YUM源安装是最高效和选择。

5.4.1 安装PHP7、PHP-FPM

# yum -y install php70w-fpm php70w php70w-mysql

5.4.2 启动PHP-FPM

# systemctl start php-fpm
# systemctl enable php-fpm

5.4.3 测试PHP环境

# php -v
PHP 7.0.33 (cli) (built: Dec 6 2018 22:30:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies # vim /usr/local/nginx/html/test.php
<?php
$i=100;
echo $i;
?>
# curl http://127.0.0.1/test.php
100

5.5 安装MySQL(通用二进制版本)

5.5.1 准备MySQL环境

# useradd  -s /sbin/nologin mysql
# mkdir /database/ /data/
# chown -R mysql:mysql /database/ /data/ # wget -O /database/mysql-5.7.26.tar.gz https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-el7-x86_64.tar.gz
# tar -xf /database/mysql-5.7.26.tar.gz
# ln -s /database/mysql-5.7.26 /database/mysql # vim /etc/profile
export PATH=$PATH:/database/mysql/bin/
# source /etc/profile # mysql -V
mysql Ver 14.14 Distrib 5.7.26, for el7 (x86_64) using EditLine wrapper

5.5.2 初始化MySQL、添加配置文件、启动MySQL、添加管理员密码

# mysqld --initialize-insecure --user=mysql --basedir=/database/mysql --datadir=/data

# cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/database/mysql
datadir=/data
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF # cp /database/mysql/support-files/mysql.server /etc/init.d/mysqld
# /etc/init.d/mysqld start
# 设置开机自启动
# /etc/init.d/mysqld status
# mysqladmin -uroot password "Admin@123"
# mysql -u"root" -p"Admin@123"

5.6 安装Zabbix服务端(源码编译安装)

5.6.1 源码编译安装Zabbix

# wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.32.tar.gz
# tar -xf zabbix-4.0.32.tar.gz
# ./configure --enable-server --enable-agent --enable-proxy --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
--enable-server:表示监控服务器
--enable-agent:表示被监控端agent,监控私有数据.这里是服务端也安装agent实现监控
--enable-proxy:支持分布式监控
--with-mysql=/usr/bin/mysql_config:指定mysql程序决定路径,获取到mysql信息
--with-net-snmp:监控交换机路由器
--with-libcurl:调用curl软件监控公开数据:http、ftp等等,必须要有curl才能监控公开数据
# make && make install

5.6.2 初始化Zabbix

# cp -r frontends/php/* /usr/local/nginx/html/

数据库中创建创建Zabbix用户
# mysql -u"root" -p"Admin@123"
mysql> create database zabbix default character set utf8 collate utf8_bin;
mysql> grant all on zabbix.* to zabbix@'%' identified by 'Zabbix@123'; 依次向zabbix库导入Zabbix所需的数据
# mysql -uzabbix -p'Zabbix@123' zabbix < database/mysql/schema.sql
# mysql -uzabbix -p'Zabbix@123' zabbix < database/mysql/images.sql
# mysql -uzabbix -p'Zabbix@123' zabbix < database/mysql/data.sql 修改zabbix_server配置文件,指定数据库名称、用户名、密码
# vim /usr/local/etc/zabbix_server.conf
85 DBHost=127.0.0.1 # 数据库主机
94 DBName=zabbix # 设置数据库名称
110 DBUser=zabbix # 设置数据库账户
118 DBPassword=Zabbix@123 # 设置数据库密码
125 DBSocket=/tmp/mysql.sock # 这里的套接字路径和MySQL配置文件路径要一直
133 DBPort=3306 # 数据库端口 创建系统用户
# useradd -s /sbin/nologin zabbix

5.6.3 修改PHP配置以满足Zabbix要求

# vi /etc/php.ini
; 设置时区
date.timezone = Asia/Shanghai
; 最大执行时间,秒
max_execution_time = 300
; POST数据最大容量
post_max_size = 32M
; 服务器接收数据的时间限制
max_input_time = 300
; 内存容量限制
memory_limit = 128M
# systemctl restart php-fpm 修改完后重启php-fpm服务

5.6.4 启动Zabbix相关程序

# zabbix_agentd
# zabbix_server
# ss -anptu | grep 10051
tcp LISTEN 0 128 *:10051 *:* users:
......

5.6.5 访问Zabbix并进行最后初始化

浏览器访问主机IP地址:http://10.8.99.7/,这里就不放图了,有图之后文章变得非常臃肿,非常难看,步骤也非常简单不需要放图.

  1. Welcome: 欢迎
  2. Check of pre-requisites:检查先决条件,需要注意有一项PHP LDAP是Warning状态,可以忽略
  3. Configure DB connection:设置数据库,需要注意Database host设置为127.0.0.1,而不是localhost
  4. Zabbix server details:服务器信息
  5. Pre-installation summary:安装前总结
  6. Install:安装,这里会出权限问题,需要设置权限chmod -R 777 /usr/local/nginx/html/,再次刷新即可完成最后初始化

Zabbix默认管理员用户名密码:Admin/zabbix

以上,完成Zabbix服务端的安装!

5.7 归纳总结

六、Zabbix客户端安装

结束

【监控】Zabbix安装的更多相关文章

  1. Centos 7.4 下初探Zabbix安装

    工作一波停一波起,感觉离开.net好久了. 最近工作中发现服务器监视都是用了zabbix,对于我这类不懂的狠狠弥补了一下知识. 无意发现zabbix带有api,就想开发个工具调用api来着.可是api ...

  2. zabbix分布式监控服务 安装与配置

    zabbix安装与配置   一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...

  3. 04.Linux系统-Zabbix监控服务安装部署

    一.环境准备 操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Zabbix 二.操作步骤: Zabbix_Server安装部署 2.0.安装依赖组件 [root@lo ...

  4. CentOS下Zabbix安装部署及汉化

    搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...

  5. Zabbix安装图解教程

    说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需 ...

  6. 详解zabbix安装部署(Server端篇)

    原文:http://blog.chinaunix.net/uid-25266990-id-3380929.html Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.Monit等 ...

  7. Zabbix 安装及微信短信提醒

    Zabbix简介 Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐.Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CP ...

  8. centos6.5下Zabbix系列之Zabbix安装搭建及汉化

    最近在研究zabbix,在整理完成之后就有了写一下总结博客的想法,在我研究zabbix的时候给我很大帮助的是it你好,博客地址http://itnihao.blog.51cto.com/他做的zabb ...

  9. centos6.5下Zabbix系列之Zabbix安装搭建及汉化 (转)

    最近在研究zabbix,在整理完成之后就有了写一下总结博客的想法,在我研究zabbix的时候给我很大帮助的是it你好,博客地址 http://itnihao.blog.51cto.com/他做的zab ...

  10. zabbix安装配置

    实验环境 主机名 操作系统版本 IP地址 安装软件 console CentOS 7.0 114.55.29.246 Httpd.Nginx.MySQL.Zabbix log1 CentOS 7.0 ...

随机推荐

  1. 资源:Git快速下载路径

    Git快速下载地址: 地址:https://npm.taobao.org/mirrors/git-for-windows/

  2. SpringBoot:springboot整合eureka报错 Unable to start embedded Tomcat

    报错信息: org.springframework.context.ApplicationContextException: Unable to start web server; nested ex ...

  3. Acunetix与WAF集成:Acunetix和F5 BigIP ASM

    该的Acunetix API让您有机会来实现任务自动化,从而提高效率-尤其是当你可以用加速您的工作流程的其他组件的功能整合.在此示例中,我们将在上一篇文章的基础上,向您展示如何在Bash脚本中使用Ac ...

  4. Adaptive AUTOSAR 学习笔记 3 - AP 背景、技术及特征(中文翻译)

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本.本文从AUTOSAR_EXP_PlatformDesign.pdf开始,一边学习,一边顺带着翻译一 ...

  5. WSL2:在Windows系统中开发Linux程序的又一神器

    作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...

  6. C语言警告提示

    [Warning] incompatible implicit declaration of built-in function 'strlen' [enabled by default] 提示:st ...

  7. C控制台程序 GUI程序

    控制台程序对应的工程类型为"Win32控制台程序(Win32 Console Application)",GUI 程序对应的工程类型为"Win32程序(Win32 App ...

  8. CSS从入门到喜欢,从喜欢到着魔

    如果把网页比作一个人的话,html就是他的骨架,而css是他的皮肤,javascript是神经控制着行动.html,css,javascript都是构建网页的核心技术. CSS简介 css指的是层叠样 ...

  9. [刘阳Java]_Spring AOP注解详细介绍_第8讲

    这节内容非常关键,我们会比较详细地介绍Spring AOP注解的使用 1. 要使用Spring AOP注解,必须满足如下的事项 导入Aspectj的jar.Spring3.0-AOP.jar.aopa ...

  10. 【论文阅读】End to End Learning for Self-Driving Cars

    前言引用 [1] End to End Learning for Self-Driving Cars从这里开始 [1.1] 这个是相关的博客:2016:DRL前沿之:End to End Learni ...