(一)zabbix-监控服务-----介绍,yum 及 编译安装(及常见错误),中文--乱码

本文详细介绍了Zabbix监控系统,包括其四大核心任务:数据采集、存储、展示和告警。Zabbix支持多种监控方式,如SNMP、Agent等,可监控服务器、网络设备等。文章还提供了Zabbix的Yum安装和源码编译安装步骤,以及解决Web界面中文显示问题的方法。此外,对比了其他开源监控软件如Cacti、Nagios、Open-falcon等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


业务布局
在这里插入图片描述
整体布局
在这里插入图片描述

一. 常见的监控方案

开源监控软件cacti、nagios、zabbix、smokeping、open-falcon

  1. Cacti:基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进行数据存储,调用模板将数据存到数据库,使用rrdtool存储和更新数据,通过rrdtool绘制结果图形;最后进行数据展现,通过Web方式将监控结果呈现出来。(IDC机房常用
    https://www.cacti.net/
    https://github.com/Cacti/cacti
  2. Nagios:用来监视系统和网络的开源应用软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状态、日志、告警信息,分层告警机制及自定义监控相对薄弱。(无法支持服务的自治
    https://www.nagios.org/
  3. Smokeping:是一款用于网络性能监测的开源监控软件,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展示网络的时延情况,进而能够清楚的判断出网络的即时通信情况。 (IDC的网络状况监控外网的
    https://oss.oetiker.ch/smokeping/
    http://blogs.studylinux.net/?p=794
  4. Open-falcon:小米公司开源出来的监控软件,监控能力和性能较强。
    https://www.open-falcon.org/
    https://github.com/XiaoMi/open-falcon
  5. Zabbix:目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控方式、可监控网络与服务等。
    https://www.zabbix.com/cn/

商业监控解决方案

  1. 监控宝(https://www.jiankongbao.com/)、
  2. 听云(https://www.tingyun.com/)、……

二. Zabbix监控概述

https://www.zabbix.com/cn/
在这里插入图片描述

https://www.zabbix.com/cn/features

适用于任何IT基础架构、服务、应用程序和资源的解决方案

在这里插入图片描述

数据采集周期性时序数据 df -TH

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

数据存储

  1. 存储系统
    SQL: MySQL/MariaDB(Zabbix)
    NoSQL:Redis(Open-falcon)
    rrd: Round Robin Database(Cacti)
  2. 数据
    历史数据: 每个监控项采集到的每个监控值
    趋势数据: 趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
  3. 阈值:severity,可按照等级实现层级报警
  4. 告警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架构

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—10050

提前做个数据库

最小化安装操作系统:
安装以下常用依赖包

yum install -y vim iotop bc gcc gcc-c++ \
glibc glibc-devel pcre pcre-devel \
opensslopenssl-devel zip unzip \
zlib-devel net-tools lrzsz tree ntpdate \
telnet lsof tcpdump wget \
libevent libevent-devel
apt-get  install -y  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

安装 :1—yum安装

从官网就可以查到具体的安装步骤
https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=ubuntu&os_version=20.04_focal&db=mysql&ws=nginx
直接在官网中查看—安装步骤
在这里插入图片描述

  1. 下载
  2. 安装Zabbix server,Web前端,agent
  3. 创建初始数据库
  4. 导入初始架构和数据,系统将提示您输入新创建的密码
  5. 为Zabbix server配置数据库
  6. 为Zabbix前端配置PHP
  7. 启动Zabbix server和agent进程
  8. 配置Zabbix前端

Install Zabbix repository

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
apt update

安装Zabbix server,Web前端,agent

apt install zabbix-server-mysql zabbix-frontend-php  zabbix-apache-conf zabbix-agent -y

日志格式

mkdir /var/log/zabbix 
chown -R zabbix.zabbix /var/log/zabbix
vim /usr/local/zabbix/etc/zabbix_server.conf

创建初始数据库

 [root@zabbix-web1 ~]# mysql
 mysql> create database zabbix character set utf8 collate utf8_bin;

 mysql>grant all privileges on zabbix.* to zabbix@"192.168.%.%" identified by '123456';


修改监听地址 /etc/mysql/mariadb.conf.d/50-server.cnf
	bind-address            = 0.0.0.0
	
重启服务
systemctl restart mariadb

验证 
mysql -uzabbix -p123456 -h192.168.1.202

在这里插入图片描述

导入初始架构和数据,系统将提示您输入新创建的密码

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 -h192.168.1.202 zabbix


最后查看zabbix数据库中的表

为Zabbix server配置数据库
编辑配置文件

vim  /etc/zabbix/zabbix_server.conf
DBUser=zabbix
DBName=zabbix
DBPassword=123456
DBHost=192.168.1.202
DBPort=3306
ListenIP=0.0.0.0
ListenPort=10051


为Zabbix前端配置PHP
编辑配置文件 /etc/zabbix/apache.conf 或者nginx.conf配置时区
首先用php查看时什么版本

然后在指定版本的地方修改这一条
 php_value date.timezone Asia/Shanghai

在这里插入图片描述

启动Zabbix server和agent进程,并为它们设置开机自启:

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

配置Zabbix前端
连接到新安装的Zabbix前端:
直接访问192.168.1.202
192.168.1.202/zabbix
在这里插入图片描述

在这里插入图片描述

最后登陆 Admin 密码admin
在这里插入图片描述

安装 :2—源码编译安装

首先配置数据库单独配置

systemctl disable firewalld
			stop

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

iptables -F

注意:必须有httpdphp程序

yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl \
openssl-devel zip unzip zlib-devel net-tools lrzsz tree ntpdate telnet lsof tcpdump wget \
libevent libevent-devel

yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb 

yum install mariadb-devel -y
这个是ubuntu18.版本的,如果是20里面的包版本可能不对
里面有mariadb,php环境配置,java,等

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 

apt-get update 
apt-get install mariadb-server -y
		zabbix机器要安装mariadb-client

创建初始数据库

 [root@zabbix-web1 ~]# mysql
 mysql> create database zabbix character set utf8 collate utf8_bin;

 mysql>grant all privileges on zabbix.* to zabbix@"192.168.%.%" identified by '123456';


 修改监听地址 /etc/mysql/mariadb.conf.d/50-server.cnf
	bind-address            = 0.0.0.0
	
重启服务
systemctl restart mariadb

ss -ntl

验证 
mysql -uzabbix -p123456 -h192.168.1.202

在这里插入图片描述

在官网中查看产品手册
https://www.zabbix.com/download_sources

安装jdk,可以编译--需要配置java的环境变量
	也可以apt装
 apt-get  install openjdk-8-jdk

 [root@zabbix-server ~]# cd /usr/local/src/ 
 [root@zabbix-server src]# zabbix-4.0.1.tar.gz 
 [root@zabbix-server src]# tar xvf zabbix-4.0.1.tar.gz 

useradd zabbix -s /sbin/nologin
 
cd  zabbix-5.2.6/src

./configure --prefix=/usr/local/zabbix --enable-server \
--enable-agent --with-mysql --with-net-snmp \
--with-libcurl --with-libxml2 --enable-java

结果一定是 echo $? 
				0 

编译时常出现错误

编译安装出错解决方法

C compiler cannot create executables

apt install -y build-essential
  1. 如果出现configure: error: MySQL library not found
    安装这个包
apt-get install -y libmysqlclient-dev

yum -y install mysql-devel

最后要能找到这个文件
find / -name mysql_config

  1. 出现则个错误configure: error: Not found libxml2 library
    如果不行直接咱装libxml2*
apt-get -y install libxml2-dev libxml2

yum install libxml2 libxml2-devel -y
  1. configure error: Invalid Net-SNMP directory - unable to find net-snmp-config
apt-get install snmp snmpd libopenipmi-dev -y
apt-get -y install libsnmp-dev

yum install -y net-snmp-devel
  1. configure: error: Curl library not found
apt-get -y install libcurl4-openssl-dev

yum install curl-devel -y
  1. configure: error: Unable to use libevent (libevent check failed)
apt-get -y install libevent-dev
  1. configure: error: Unable to find “javac” executable in path
apt-get -y install openjdk
  1. configure: error: Unable to use libpcre (libpcre check failed)
 apt-get -y install libpcre3 libpcre3-dev
  1. 在这里插入图片描述
apt-get install -y make 

最后开始安装

 make && make install

导入数据库:

先导入此文件,如果zabbix代理21器,则只导入第一个

cd /usr/local/src/zabbix-5.2.6/
mysql -uzabbix -p123456 -h192.168.1.106 zabbix < database/mysql/schema.sql
mysql -uzabbix -p123456 -h192.168.1.106 zabbix < database/mysql/images.sql
mysql -uzabbix -p123456 -h192.168.1.106 zabbix < database/mysql/data.sql
复制启动脚本:
cp /usr/local/src/zabbix-4.0.1/misc/init.d/fedora/core/zabbix_server /etc/init.d//etc/init.d/ 
cp /usr/local/src/zabbix-4.0.1/misc/init.d/fedora/core/zabbix_agent /etc/init.d//etc/init.d/
或者
cp misc/init.d/tru64/zabbix* /etc/init.d/

更改启动脚本:
vim /etc/init.d/zabbix_server
vim /etc/init.d/zabbix_agent
21 # Zabbix-Directory
22 BASEDIR=/usr/local/zabbix


安装apache

yum install httpd -y

将所有的php程序拷贝   4版本为frontends/php/*  这里的是5版本的
cd zabbix-5.2.1/
mkdir /var/www/html/zabbix
cp -a  ui/* /var/www/html/zabbix
chown -R apache:apache /var/www/html/
#日志路径
mkdir /var/log/zabbix 
chown -R zabbix.zabbix /var/log/zabbix

[root@zabbix-server ~]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_server.conf
 LogFile=/var/log/zabbix/zabbix_server.log
 DBHost=192.168.1.103 #数据库地址
 DBName=zabbix
 DBUser=zabbix
 DBPassword=123456
 ListenPort=10050
 DBPort=3306
 Timeout=30
 LogSlowQueries=3000
vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log

这样就可以直接启用
/etc/init.d/zabbix-agent start
/etc/init.d/zabbix-server start

ss -ntl

配置server启动脚本

Server systemd启动脚本

ln -s /usr/local/zabbix/sbin/zabbix_server /usr/sbin/
mkdir /run/zabbix
chown -R zabbix.zabbix /run/zabbix

vim /usr/lib/systemd/system/zabbix-server.service 
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target


systemctl daemon-reload 
systemctl start zabbix-server 
systemctl enable zabbix-server

端口为10051

Agent systemd启动脚本

ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/sbin/

vim /lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/run/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

systemctl daemon-reload 
systemctl start zabbix-agent
systemctl enable zabbix-agent


访问web

systemctl restart zabbix-server zabbix-agent apache2  或httpd

192.168.1.103/zabbix
在这里插入图片描述

解决报错

 yum install php-gettext php-session php-ctype php-xmlreader php-xmlwriter php-xml php-net-socket php-gd php-mysql

如下更改vim /etc/php.ini

post_max_size = 8M 改为 post_max_size = 16M 
max_execution_time = 30 改为 max_execution_time = 300
max_input_time = 60 改为 max_input_time = 300
date.timezone = Asia/Shanghai 

重启http再次访问web

 systemctl restart httpd
 或
 systemctl restart apache2

1. 让界面展示为中文(有乱码)

在这里插入图片描述

英文Ubuntu系统安装中文支持,中文UTF-8
第一步,安装中文包:

sudo apt-get install language-pack-zh*

第二步,配置相关环境变量:

sudo vim /etc/environment

在文件中增加语言和编码的设置:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

我的配置文件显示如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="zh_CN.UTF-8"
UNZIP="-O CP936"
ZIPINFO="-O CP936"

第三步,重新设置本地配置:先择中文的

sudo dpkg-reconfigure locales

在这里插入图片描述
在这里插入图片描述

重启服务:再次访问web界面就可以修改为中文

systemctl restart zabbix-server zabbix-agent apache2

2. 让界面展示为中文(无乱码)

复制字体文件: 控制面板\字体设置----找一个中文字体上传到服务器
在这里插入图片描述

find / -name  "graphfont*"
/usr/share/zabbix/assets/fonts/graphfont.ttf
/usr/share/zabbix/assets/fonts/

注意要修改权限 777

在这里插入图片描述

编辑配置文件使用新字体:

vim /usr/share/zabbix/include/defines.inc.php
将里面的graphfont   默认的改为     SIMKAI

在这里插入图片描述
在这里插入图片描述

重启服务

systemctl restart zabbix-server zabbix-agent apache2

在这里插入图片描述

测试数据

yum install zabbix-get -y

 -s指定主机,或者主机名 
 -p端口
 -k 测试具体的监控项	
 										  avg几分钟
zabbix_get -s 192.168.15.204 -p 10050 -k "system.cpu.load[all,avg1]"

在这里插入图片描述
可以检测这些
在这里插入图片描述
测试主机名

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值