ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • 操作系统

  • 虚拟化服务

  • 数据库服务

  • 监控服务

    • Prometheus笔记

    • Zabbix笔记

      • Zabbix介绍与部署
        • 监控服务介绍
          • 监控介绍
          • 监控的作用
          • 监控方式
          • 监控维度
        • Linux常用监控命令
          • 监控CPU
          • 监控内存
          • 监控磁盘
          • 监控网络
          • 监控进程
          • 监控负载
          • 其他
        • Zabbix部署
          • Zabbix服务结构
          • 服务端安装部署
          • 客户端安装部署
      • Zabbix功能配置
  • Web服务

  • 数据处理

  • Ops
  • 监控服务
  • Zabbix笔记
Hoshinozora
2023-02-27
目录

Zabbix介绍与部署

# 监控服务介绍

# 监控介绍

监控服务是为了保证业务系统正常工作、提供优质服务的基本手段。监控服务一旦监控到异常情况,会第一时间做出相应的调整或者告警,以保障用户高质量的体验。

# 监控的作用

  • # 对系统不间断实时监控
    • 它能实时反馈系统或服务当前状态,并实现报警通知,告警方式有邮件、微信、短信、电话、手环等等。
    • 例如:监控分析公司网站运行情况、监控统计数据库表的信息,如成交量等。
  • # 保证系统安全性
    • 监控重要文件的是否被修改。
  • # 保证服务持续稳定运行
    • 监控架构服务的运行情况,因为高可用集群服务具备高可用性,出现问题不会立马显露,所以需要监控运行情况。

# 监控方式

  • 利用脚本进行监控
    • 利用脚本判断监控对象的指标是否正常,如果不正常就通过各类API进行告警,比如钉钉、电话、短信等等。
    • 也可以编写获取对象指标值的脚本,然后由监控框架进行调用获取返回值,再由监控服务进行告警。
  • 利用监控服务进行监控
    • 系统监控:Zabbix、Prometheus、Nagios
    • 流量监控:Cacti
    • 数据库监控:Lepus

# 监控维度

  • 硬件监控
    • 服务器、路由器、交换机、防火墙,利用SNMP协议进行监控。
  • 系统监控
    • CPU、内存、磁盘、网络、进程、TCP状态
  • 服务监控
    • 服务是否正常开启,能否正常访问
  • 网站监控
    • 请求时间、响应时间、加载时间、页面监控
  • 日志监控
    • ELK架构,实现日志收集、存储、分析、展示等
  • 安全监控
    • Firewalld (4层及以上)
    • WAF (Nginx+Lua - 应用层)
    • 收费:安全宝、牛盾云、安全狗
  • 网络监控
    • smokeping、监控宝、站长工具,监控收集全国访问网站的性能信息
    • 收费:奇云测、多机房
  • 业务监控
    • 监控数据库信息,流量、注册量、销售额、利润等

# Linux常用监控命令

# 监控CPU

  • 主要使用 top、htop 命令
  • 主要监控以下指标:
    • us - 用户态使用的资源(user state),用户执行命令的任务,CPU处理时,用户态优先于内核态
    • sy - 内核态使用的资源(system state),CPU内核态,后台进程的任务
    • id - 空闲未使用的资源(idle),最好不要低于20%~50%

# 监控内存

  • 主要使用 free -h、top、htop 命令
  • 主要监控以下指标:
    • available - 可用内存情况
    • swap - 交换空间使用情况

# 监控磁盘

  • df -h - 查看磁盘使用率
    • Use% - 磁盘使用情况
  • iohop - 查看磁盘io消耗
    • 如果消耗严重,读写数据会非常慢

# 监控网络

  • iftop - 主要监控网络带宽使用情况

# 监控进程

  • 主要使用 top、htop、ps 命令
  • 主要监控以下指标:
    • 进程占用内存情况
      • 内存占满可能造成内存溢出,服务会出现僵死,此时就需要优化,或者定时任务对其进行重启
    • 占用CPU情况

# 监控负载

  • 主要使用 w、top、uptime 命令
  • 主要监控以下指标:
    • 10分钟内负载,要小于CPU内核数

# 其他

  • glances命令 - 监控系统运行所有情况,上面所有的信息,都在这个命令有

# Zabbix部署

Zabbix是一个基于WEB界面的提供分布式系统监视、网络监视功能的企业级的开源监控架构。

# Zabbix服务结构

  • # 服务端
    • zabbix-server - 监控服务端
    • zabbix-web - 监控端的WEB服务
    • php - 处理动态请求
    • mysql - 数据库存储监控数据
  • # 被监控端
    • zabbix-agentd - 被监控端
  • # 代理端
    • zabbix-proxy - 代理端
    • 代理收集被监控端信息汇总告知Zabbix服务端,在做分布式监控时使用

# 服务端安装部署

# 1. 安装zabbix服务端相关软件

安装repo源和服务端软件

# 去官网选择对应的版本和对应系统信息:https://www.zabbix.com/download
# 一般选择LTS版本 - long time support 长期支持版 (会有补丁发布更新)

# 选择后网页下方会生成对应repo安装命令, 执行Install Zabbix repository下方的命令
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 安装zabbix服务端软件
yum install -y zabbix-server-mysql zabbix-agent
1
2
3
4
5
6
7
8

安装zabbix的web服务

# 启用软件集合
yum install -y yum-utils
yum-config-manager --enable rhel-server-rhscl-7-rpms

# 编辑/etc/yum.repos.d/zabbix.repo, 将[zabbix-frontend]的enable置为1
[zabbix-frontend]
...
enabled=1
...

# 卸载旧PHP
yum remove php* -y
# 安装rh
yum install -y centos-release-scl-rh
# 查询PHP
yum search php
# 安装PHP73
yum install -y rh-php73
# 启动PHP73
scl enable rh-php73 bash
# 安装WEB服务 # nginx程序+配置文件: zabbix-nginx-conf-scl
yum install -y zabbix-web-mysql-scl-php73
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2. 安装数据库服务软件

  • 安装好后,还需要创好库、账号。
# 创建用户
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

# 导入表
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

# 导入后恢复log_bin_trust_function_creators参数
set global log_bin_trust_function_creators = 0;
quit;
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3. 编写Zabbix服务端相关配置文件

修改数据库信息配置

  • vim /etc/zabbix/zabbix_server.conf
    • 配置好DBName、DBUser、DBPassword后保存即可。

修改Zabbix时区配置

# 查找配置文件路径
find /etc/opt/rh/ -type f -name zabbix.conf
# 进行修改
vim /etc/opt/rh/rh-php73/php-fpm.d/zabbix.conf

# 修改时区参数并取消注释
php_value[date.timezone] = Asia/Shanghai
# 修改listen.acl_users参数, 添加Nginx
listen.acl_users = apache,nginx

# 然后保存退出即可
1
2
3
4
5
6
7
8
9
10
11

编辑Nginx配置,去自己安装的Nginx配置文件中配置

# 该配置可以通过yum安装zabbix-nginx-conf-scl,然后从/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf获取
server {
        listen          8081;
        server_name     zabbix.localhost.com;

        root    /usr/share/zabbix;

        index   index.php;

        location = /favicon.ico {
                log_not_found   off;
        }

        location / {
                try_files       $uri $uri/ =404;
        }

        location /assets {
                access_log      off;
                expires         10d;
        }

        location ~ /\.ht {
                deny            all;
        }

        location ~ /(api\/|conf[^\.]|include|locale|vendor) {
                deny            all;
                return          404;
        }

        location ~ [^/]\.php(/|$) {
#                fastcgi_pass    unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;
                fastcgi_pass    unix:/var/opt/rh/rh-php73/run/php-fpm/zabbix.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_index   index.php;

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;
                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

                include fastcgi_params;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;

                fastcgi_intercept_errors        on;
                fastcgi_ignore_client_abort     off;
                fastcgi_connect_timeout         60;
                fastcgi_send_timeout            180;
                fastcgi_read_timeout            180;
                fastcgi_buffer_size             128k;
                fastcgi_buffers                 4 256k;
                fastcgi_busy_buffers_size       256k;
                fastcgi_temp_file_write_size    256k;
        }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

# 4. 启动服务端相关服务

启动服务并设为自启动

systemctl start zabbix-server zabbix-agent rh-php73-php-fpm && \
systemctl enable zabbix-server zabbix-agent rh-php73-php-fpm
1
2

初始化Zabbix服务

  • http://[服务器IP]/ - 登录Web页面,按照提示进行配置
  • 配置好之后,按照指示下载文件并放到指定目录

登录zabbix页面

  • 默认账号:Admin
  • 默认密码:zabbix

# 客户端安装部署

# 1. 安装zabbix服务端相关软件

# 去官网选择对应的版本和对应系统信息:https://www.zabbix.com/download
# 一般选择LTS版本 - long time support 长期支持版 (会有补丁发布更新)

# 选择后网页下方会生成对应repo安装命令, 执行Install Zabbix repository下方的命令
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

# 安装zabbix客户端软件
yum install -y zabbix-agent
1
2
3
4
5
6
7
8

# 2. 编写zabbix客户端配置文件

vim /etc/zabbix/zabbix_agentd.conf

# Zabbix Agent有被动模式和主动模式。
# 被动模式,是Zabbix Server从Zabbix Agent上获取数据。
# 主动模式,是Zabbix Agent主动将信息上传到Zabbix Server。因此,这两个参数的内容都指的是Zabbix Server的IP地址

# 一般填Zabbix服务端的内网IP,可以指定单个IP或者一段IP网段
# 配置的是被动模式, 允许访问该zabbix客户端的IP地址
Server=192.168.20.11

# 配置的是主动模式,允许访问该zabbix客户端的IP地址
ServerActive=192.168.20.11

# 注释掉Hostname参数,然后取消HostnameItem的注释
HostnameItem=system.hostname
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3. 启动zabbix客户端服务

systemctl start zabbix-agent && systemctl enable zabbix-agent

# 检查是否启动
netstat -lntup | grep 10050
1
2
3
4
#Linux#监控#Zabbix
Prometheus告警
Zabbix功能配置

← Prometheus告警 Zabbix功能配置→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式