IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> zabbix -> 正文阅读

[系统运维]zabbix

Zabbix简介

Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司 Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务
Zabbix 是一个企业级分布式开源监控解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使

zabbix的监控原理

?

?Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送至Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当Zabbix监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)

?Zabbix分布式监控系统监控客户端的方式常见有三种:Agent、SNMP、IPMI

Agent?? ?Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等
SNMP?? ?Zabbix通过简单网络管理协议(Simple Network Management Protocol)监控网络设备或windows主机等。通过设定SNMP的参数将相关监控数据传送至服务端,交换机、防火墙等网络设备一般都支持SNMP协议
IPMI?? ?智能平台管理接口(Intelligent Platform Management Interface,IPMI)即主要应用于设备的物理特性,包括:温度、电压、电扇工作状态,电源供应以及机箱入侵等。IPMI最大的优势在于无论OS的开机还是关机状态下,只要接通电源就可以实现对服务器的监控



Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加 StartAgents=0
Zabbix主动模式?? ?Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,zabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active items数据至server/proxy
Zabbix被动模式?? ?Server向agent请求获取监控项的数据,agent返回数据,server打开一个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server处理接收到的数据


Zabbix的常用组件


Zabbix Server?? ?接收Agent采集数据的核心组件;所有的配置统计数据及操作都由它进行
Zabbix Database?? ?提供数据存储功能,专用于存储配置信息,以及采集到的数据
Zabbix Web GUI?? ?提供Web界面
Zabbix Proxy?? ?当被监控节点较多时,用于减轻Server压力的组件,也用于分布式监控系统。由Proxy接收数据后统一发送至Server
Zabbix Agent?? ?部署在被监控主机上,用于采集本地数据


?Zabbix监控系统监控概念


主机(host)?? ?被监控的网络设备,可以写IP或者DNS
主机组(host group)?? ?主机组用于管理主机,可以批量设置权限
监控项(item)?? ?具体监控项,items值由独立的keys进行识别
触发器(trigger)?? ?为某个items设置触发器,达到触发器会执行action动作
事件(event)?? ?例如达到某个触发器,称之为一个事件
动作(action)?? ?对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
报警升级(escalation)?? ? 发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等
媒介(media)?? ?发送通知的方式,可以支持Mail、SMS、Scripts等
通知(notification)?? ?通过设置的媒介向用户发送的有关某事件的信息
远程命令?? ? 达到触发器,可以在被监控端执行命令
模板(template)?? ?可以快速监控被监控端,模块包含:item、trigger、graph、screen、application
web场景(web scennario)?? ?用于检测web站点可用性,监控HTTP关键词
web前端(frontend)?? ?Zabbix的web接口
图形(graph)?? ?监控图像
屏幕(screens)?? ?屏幕显示
幻灯(slide show)?? ?幻灯显示
?

所需环境

系统

IP

名称

角色

CentOS 7.4

192.168.10.209

zabbix

LAMP、zabbix、grafana(版本8.0)

CentOS 7.4

192.168.10.210

agent

agent(FTP,Web)

一、安装zabbix server服务端

[root@zabbix ~]# echo '

192.168.10.209 zabbix

192.168.10.210 agent

' >> /etc/hosts ???

添加一个网卡连接外网

[root@zabbix ~]# systemctl restart network ?????????????

[root@zabbix ~]# yum -y install wget ?????????????????????

[root@zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@zabbix ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc php-pear gcc* net-snmp libssh2 libssh2-devel mariadb-server mariadb mariadb-devel ntpdate 

??

同步时间

[root@zabbix yum.repos.d]# ntpdate ntp1.aliyun.com

?2 Jan 12:27:10 ntpdate[2937]: adjust time server 120.25.115.20 offset 0.000401 sec

启动mysql

[root@zabbix yum.repos.d]# systemctl start mariadb

[root@zabbix yum.repos.d]# systemctl enable mariadb

Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

[root@zabbix yum.repos.d]# mysqladmin -u root password 123.com

启动httpd

[root@zabbix yum.repos.d]# systemctl start httpd

[root@zabbix yum.repos.d]# systemctl enable httpd

Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

下载zabbix

[root@zabbix ~]# tar zxvf zabbix-4.4.7.tar.gz                     
[root@zabbix ~]# cd zabbix-4.4.7                     
 
[root@zabbix zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2                                         
[root@zabbix zabbix-4.4.7]# make &&make install
[root@zabbix zabbix-4.4.7]# mysql -u root -p123.com
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> use zabbix;
MariaDB [(none)]> source /root/zabbix-4.4.7/database/mysql/schema.sql;
MariaDB [zabbix]> source /root/zabbix-4.4.7/database/mysql/images.sql;
MariaDB [zabbix]> source /root/zabbix-4.4.7/database/mysql/data.sql;
MariaDB [zabbix]> grant all on zabbix.* to zabbix@'192.168.10.209' identified by 'zabbix';
MariaDB [zabbix]> flush privileges;
MariaDB [zabbix]> exit
Bye
[root@zabbix zabbix-4.4.7]# groupadd zabbix
[root@zabbix zabbix-4.4.7]# useradd -r -g zabbix zabbix
[root@zabbix zabbix-4.4.7]# mkdir /usr/local/zabbix/logs
[root@zabbix zabbix-4.4.7]# chown zabbix:zabbix /usr/local/zabbix/ -R
[root@zabbix zabbix-4.4.7]# vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.10.209
DBName=zabbix
DBUser=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
Timeout=4			#与AGNET/SNMP 设备和其他外部通信超时设置,单位:秒s
LogSlowQueries=3000			#与AGNET/SNMP 设备和其他外部通信超时设置,单位:秒s
StatsAllowedIP=127.0.0.1,192.168.10.0/24				#与AGNET/SNMP 设备和其他外部通信超时设置,单位:秒s
:%g/^#/d 删除以#开头的内容 
:%g/^$/d 删除空行
保存退出
[root@zabbix zabbix-4.4.7]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid			#运行的PID 文件
Server=127.0.0.1,192.168.10.209			#zabbix的主机IP
ServerActive=192.168.10.209				#agent主机采集到的数据发送到server端
Hostname=zabbix						#本机的主机名称
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log			#指定日志文件
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf			#开启附加配置文件目录
:%g/^#/d 删除以#开头的内容 
:%g/^$/d 删除空行
保存退出
[root@zabbix zabbix-4.4.7]# netstat -utpln |grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      31494/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      31494/zabbix_server 
[root@zabbix zabbix-4.4.7]# /usr/local/zabbix/sbin/zabbix_agentd 
[root@zabbix zabbix-4.4.7]# netstat -anptu |grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      31567/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      31567/zabbix_agentd 
[root@zabbix zabbix-4.4.7]# mkdir /var/www/html/zabbix
[root@zabbix zabbix-4.4.7]# mv /root/zabbix-4.4.7/frontends/php/* /var/www/html/zabbix
[root@zabbix zabbix-4.4.7]# vim /etc/php.ini
……            
384 max_execution_time = 300             #单位秒,通过 POST、GET 以及 PUT 方式接收数据时间进行限制
394 max_input_time = 300                 #php 程序上传文件解析数据时的时间限制
405 memory_limit = 128M                  #设置 php 程序的内存限制
672 post_max_size = 32M                  #POST 方式请求数据所允许的最大大小
853 extension=bcmath.so                  #加载 zabbix 程序需要加载的扩展模块 bcmath.so
878 date.timezone = Asia/Shanghai        #时区
……
保存退出
[root@zabbix zabbix-4.4.7]# systemctl restart httpd
[root@zabbix zabbix-4.4.7]# cd /var/www/html/zabbix/conf
[root@zabbix conf]# vim zabbix.conf.php.example 
……
<?php
// Zabbix GUI configuration file.
global $DB, $HISTORY;
 
$DB['TYPE']                     = 'MYSQL';
$DB['SERVER']                   = 'localhost';
$DB['PORT']                     = '0';
$DB['DATABASE']                 = 'zabbix';
$DB['USER']                     = 'zabbix';
$DB['PASSWORD']                 = 'zabbix';               #mysql授权的用户密码
// Schema name. Used for IBM DB2 and PostgreSQL.
……

二、配置zabbix服务的web页面做优化

访问安装:http://192.168.10.209/zabbix/

查看是否全部ok;下一步

填写相关信息

检查输入的内容

?

点击连接下载配置文件

?

下载的配置文件如下

?

把配置文件上传到/var/www/html/zabbix/conf/下

[root@zabbix conf]# cd /var/www/html/zabbix/conf
[root@zabbix conf]# ls

maintenance.inc.php ?zabbix.conf.php ?zabbix.conf.php.example

上传完成后直接下一步

?

安装完成;设置字体为中文

?

?

?

三、监控zabbix端的OS、MySQL、Httpd

创建主机zabbix服务

?

选择监控模板:Template?App HTTP ServiceTemplate DB MySQLTemplate OS Linux by Zabbix agent

?

?

?

?

?

查看监控主机状态

?

?

解决zabbix显示图像下边文字乱码问题

上传simkai.ttf 文件

[root@zabbix ~]# cd /var/www/html/zabbix/assets/fonts/

[root@zabbix fonts]# ls

DejaVuSans.ttf ?simkai.ttf

[root@zabbix fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak

[root@zabbix fonts]# mv simkai.ttf DejaVusans.ttf

[root@zabbix fonts]# ls

DejaVusans.ttf ?DejaVuSans.ttf.bak


发现关于MySQL数据库的所有监控项没有图形

解决方法

设置监控失效的键值

[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf



PidFile=/tmp/zabbix_agentd.pid

Server=127.0.0.1,192.168.10.209

ServerActive=192.168.10.209

Hostname=zabbix

LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf





UserParameter=mysql.ping[*], HOME=/etc/zabbix mysqladmin -h"$1" -P"$2" ping

UserParameter=mysql.get_status_variables[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"

UserParameter=mysql.version[*], HOME=/etc/zabbix mysqladmin -s -h"$1" -P"$2" version

UserParameter=mysql.db.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"

UserParameter=mysql.dbsize[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"

UserParameter=mysql.replication.discovery[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"

UserParameter=mysql.slave_status[*], HOME=/etc/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"



保存退出

##########解释:

PidFile=/tmp/zabbix_agentd.pid

Server=127.0.0.1,192.168.2.14 ???????????????????????????????????????#指定 zabbix 服务器的地址

ServerActive=192.168.2.14 ???????????????????????????????????????????#指定 agent 采集到数据之后发送给 server 端

Hostname=zabbix ?????????????????????????????????????????????????????#指定 agent 端的主机名、server 端必须需要解析,注意:在 web 界面添加被监控主机时,必须写此主机名

LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

yum -y install psmisc

[root@zabbix ~]# mysql -uroot -p123.com

MariaDB [(none)]> grant all on *.* to 'root'@'192.168.10.209' identified by '123.com';

Query OK, 0 rows affected (0.10 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.03 sec)

MariaDB [(none)]> quit

Bye

[root@zabbix ~]# vim /etc/my.cnf

[mysqld]

……

skip-grant-table

……

[root@zabbix ~]# systemctl restart mariadb

[root@zabbix ~]# killall -9 zabbix_server

[root@zabbix ~]# killall -9 zabbix_agentd

[root@zabbix ~]# netstat -utpln | grep zabbix

[root@zabbix ~]# /usr/local/zabbix/sbin/zabbix_server

[root@zabbix ~]# /usr/local/zabbix/sbin/zabbix_agentd

[root@zabbix ~]# netstat -utpln | grep 1005

tcp ???????0 ?????0 0.0.0.0:10050 ??????????0.0.0.0:* ??????????????LISTEN ?????34551/zabbix_agentd

tcp ???????0 ?????0 0.0.0.0:10051 ??????????0.0.0.0:* ??????????????LISTEN ?????34479/zabbix_server

tcp6 ??????0 ?????0 :::10050 ???????????????:::* ???????????????????LISTEN ?????34551/zabbix_agentd

tcp6 ??????0 ?????0 :::10051 ???????????????:::* ???????????????????LISTEN ?????34479/zabbix_server

验证:打开 zabbix 的 web 界面,查看?mysql 服务器的监控界面

注意:刚查看是没有数据的需要耐心的等待

?

安装及配置agent代理端FTP服务器

[root@agent ~]# echo '

192.168.10.209 zabbix

192.168.10.210 agent

' >> /etc/hosts

[root@agent ~]# yum -y install wget



[root@agent ~]# systemctl restart network ??????????????????????

[root@agent ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

[root@agent ~]# yum -y install ntpdate?vsftpd libxml2-devel libcurl-devel pcre-devel

[root@agent ~]# ntpdate ntp1.aliyun.com

?2 Jan 17:12:57 ntpdate[15598]: adjust time server 120.25.115.20 offset -0.000174 sec

[root@agent ~]# systemctl start vsftpd

[root@agent ~]# tar zxvf zabbix-4.4.7.tar.gz

[root@agent ~]# cd zabbix-4.4.7

[root@agent zabbix-4.4.7]# ./configure --prefix=/usr/local/zabbix --enable-agent --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

[root@agent zabbix-4.4.7]# make && make install

[root@agent zabbix-4.4.7]# groupadd zabbix

[root@agent zabbix-4.4.7]# useradd -r -g zabbix zabbix

[root@agent zabbix-4.4.7]# chown zabbix:zabbix /usr/local/zabbix/ -R

[root@agent zabbix-4.4.7]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log

Server=192.168.10.209

ServerActive=192.168.10.209

Hostname=agent

:%g/^#/d 删除以#开头的内容
:%g/^$/d 删除空行

保存

[root@agent zabbix-4.4.7]# /usr/local/zabbix/sbin/zabbix_agentd

[root@agent zabbix-4.4.7]# netstat -anptu |grep zabbix

tcp ???????0 ?????0 0.0.0.0:10050 ??????????0.0.0.0:* ??????????????LISTEN ?????24221/zabbix_agentd

tcp6 ??????0 ?????0 :::10050 ???????????????:::* ???????????????????LISTEN ?????24221/zabbix_agentd

1.登录zabbix的web界面,进行添加agent主机

2.添加agent主机完成,手动添加ftp服务图形显示

?

?

?

?

?

3.添加模块CPU

?

?

?

4、把web添加进来

[root@agent zabbix-4.4.7]# yum -y install httpd

[root@agent zabbix-4.4.7]# systemctl start httpd

[root@agent zabbix-4.4.7]# echo ' ???????????

> <h1>Zabbix 监控服务<h1/>

> ' > /var/www/html/index.html

?

??

5、自定义监控项,创建项目,触发器,图形,验证监控效果

以上关联的 Template OS Linux by Zabbix agent?模板基本涵盖了所有系统层面的监控,包括了我们最关注的几项:ping、load、cpu 使用率、memory、disk、网卡流量等等,当然有些触发器的阀值可能需要根据服务器的自身情况进行修改

也可以添加自定义服务器内存使用检测项,在此配置一个监控项为:内存使用 70M 进行警告提醒

[root@agent ~]# yum -y install psmisc

[root@agent ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

……

UserParameter=memory_usage,free -m|grep Mem|awk '{print $3}'?????#加入到最后一行

……

——————————————————————————————————————————

????????????说明

语法:UserParameter=key,shell command

监控 key 值:memory_usage,key 值可以随意编写,但是一会需要在 web 页面创建监控项时指定 key 值;



Shell 命令或脚本:free -m|grep Mem|awk '{print $3}'



注意:在 zabbix_server 端可以使用 | zabbix_get -s agent 端 ip 地址 -p 10050 -k key名 |可以通过此命令可以查看 agent 端 key 的监控值;

——————————————————————————————————————————

[root@agent ~]# killall -9 zabbix_agentd

[root@agent ~]# /usr/local/zabbix/sbin/zabbix_agentd

[root@agent ~]# free -m|grep Mem|awk '{print $3}'

126

在zabbix上查看监控值

[root@zabbix fonts]# /usr/local/zabbix/bin/zabbix_get -s 192.168.10.210 -k memory_usage

126

5.1使用web添加监控项

?

?

5.2、监控项添加完成后,创建触发器(根据条件进行触发某个告警操作)

?

?

?

5.3、 创建监控显示图形

5.4验证

[root@agent ~]# ab -n 5000000 -c 100 -k http://192.168.10.210/

?

首页也会显示警告

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:30:34  更:2022-01-03 16:32:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:52:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码