这是一个或许对你有用的社群
一对一交流/面试小册/简历优化/求职解惑,欢迎加入「」知识星球。下面是星球提供的部分资料:
这是一个或许对你有用的开源项目
国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。
功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号等等功能:
前面介绍了 企业级监控概述及发展、企业监控运维、常见运维工具、数据库监控、Zabbix 等开源监控系统对比分析相关的知识点,今天我将详细的为大家介绍 Zabbix入门与安装 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈 支持一波!!!
在企业网络运维过程中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽可能减少故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便,快捷的获得监控信息,通常会借助于一些集中监测软件。
想要实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的途径。
就目前而言,有服务器的地方就少不了监控系统,现有的监控系统软件很多,但是zabbix可灵活的监控服务器资源,并且集cacti与nagios两者的优点于一身且功能更强大,实现企业级分布式监控,所以在市场应用更广。
Zabbix 是一个基于 web 界面的企业级开源监控套件,由C语言编写而成的底层架构(server端和agent端),由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。世界上很多大小不同的组织机构都依赖与zabbix作为自己的一个主要的监控平台,尤其是现在很多互联网企业都在使用它。
提供分布式系统监控与网络监控功能,具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表,图表的绘制等功能。
检测的对象可以是linux或windows服务器,也可以是路由器,交换机等网络设备,通过SNMP(Simple network protocol 简单网络管理协议),zabbix agent,ping,端口监视等方法提供对远程网络服务器等监控,数据收集等功能,并提供通知机制使系统管理员可以快速定位,解决系统中存在的各种问题。
Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
这里agentd收集数据分为主动和被动两种模式:
此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server。
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构:server-client 、master-node-client、server-proxy-client三种 。
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
配置要求
关于Zabbix 6.0的一些介绍可以参考:
关闭系统防火墙
[root@Zabbix ~]# systemctl stop firewalld
[root@Zabbix ~]# systemctl disable firewalld
[root@Zabbix ~]# vim /etc/selinux/config
SELINUX=disabled
关闭交换分区
[root@Zabbix ~]# swapoff -a
[root@Zabbix ~]# vim /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
安装配置nginx
[root@Zabbix ~]# rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
[root@Zabbix ~]# mkdir /web
[root@Zabbix ~]# vim /etc/nginx/conf.d/zabbix.conf
server {listen 80;server_name localhost;root /web;location / {index index.php index.html;}location ~ .php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
[root@Zabbix ~]# systemctl enable nginx
[root@Zabbix ~]# systemctl start nginx
安装并配置php
[root@Zabbix ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@Zabbix ~]# yum -y install epel-release
[root@Zabbix ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@Zabbix ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #webtatic源,一个web服务的源#安装php7及其它依赖软件
[root@Zabbix ~]# yum -y install gcc gcc-c++ php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd[root@Zabbix ~]# cd /web/
[root@Zabbix web]# vim index.php #创建php测试页
<?php
phpinfo();
?>
[root@Zabbix web]# systemctl enable php-fpm
[root@Zabbix web]# systemctl start php-fpm
注:zabbix6.0不支持mariadb5.5,要安装新版本数据库。
配置mariadb源
[root@Zabbix web]# vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB?spm=a2c6h.25603864.0.0.33b75602iN6BeE
gpgcheck = 1
enable = 1
下载并启动
[root@Zabbix web]# yum -y install mariadb-server
[root@Zabbix web]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@Zabbix web]# systemctl start mariadb
初始化数据库
[root@Zabbix web]# mysql_secure_installation
Enter current password for root (enter for none): #回车
Switch to unix_socket authentication [Y/n] n #是否更改套接字
Change the root password? [Y/n] y #改root密码
Remove anonymous users? [Y/n] y #清除匿名用户
Disallow root login remotely? [Y/n] y #是否允许root远程登录
Remove test database and access to it? [Y/n] y #清除测试数据库
Reload privilege tables now? [Y/n] y #刷新表权限
创建zabbix用户及数据库
[root@Zabbix web]# mysql -uroot -padmin@123
MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)MariaDB [(none)]> grant all on zabbix.* to zabbix@'10.10.10.%' identified by 'zabbix';
Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.001 sec)
下载zabbix6.0包
[root@Zabbix web]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.9.tar.gz
安装依赖
[root@Zabbix web]# yum -y install mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel
编译安装zabbix
[root@Zabbix web]# tar xzf zabbix-6.0.9.tar.gz
[root@Zabbix web]# cd zabbix-6.0.9
[root@Zabbix zabbix-6.0.9]# ./configure --sysconfdir=/etc/zabbix --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre
[root@Zabbix zabbix-6.0.9]# make install
修改zabbix服务端配置文件
[root@Zabbix zabbix-6.0.9]# vim /etc/zabbix/zabbix_server.conf
[root@Zabbix zabbix-6.0.9]# grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=zabbix
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1
向数据库中导入zabbix的库表及数据
#注意导入的顺序
[root@Zabbix zabbix-6.0.9]# cd database/mysql/
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < schema.sql
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < images.sql
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < data.sql
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < double.sql
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < history_pk_prepare.sql
移动zabbix前端页面到网站根目录
[root@Zabbix ~]# cp -r /web/zabbix-6.0.9/ui/* /web/
配置zabbix系统启停命令
[root@Zabbix mysql]# vim /usr/lib/systemd/system/zabbix.service
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
[root@Zabbix mysql]# systemctl daemon-reload #加载配置文件
[root@Zabbix mysql]# systemctl enable zabbix
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix.service to /usr/lib/systemd/system/zabbix.service.
[root@Zabbix mysql]# systemctl start zabbix
网页输入IP自动跳转安装页面
点击下一步会遇到报错如下图,这时候需要修改php配置文件
[root@Zabbix mysql]# vim /etc/php.ini
[root@Zabbix mysql]# egrep -n '^max_.*_time|post_max' /etc/php.ini
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
[root@Zabbix mysql]# systemctl restart php-fpm
配置数据库
其它设置
安装完成需要创建zabbix.conf.php文件,可以根据页面提示保存到相对位置下
[root@Zabbix mysql]# cd /web/conf/
[root@Zabbix conf]# ll
总用量 12
drwxr-xr-x 2 root root 6 10月 14 15:30 certs
-rw-r--r-- 1 root root 1036 10月 14 15:30 maintenance.inc.php
-rw-r--r-- 1 root root 1732 10月 14 15:48 zabbix.conf.php
-rw-r--r-- 1 root root 1710 10月 14 15:30 zabbix.conf.php.example
登录
字体设置中文后查看图标会出现如下图的问题
上传一个中文的ttf字体替换zabbix自用的字体即可
[root@Zabbix conf]# cd /web/assets/fonts/
[root@Zabbix fonts]# ll
总用量 740
-rw-r--r-- 1 root root 756072 10月 14 15:30 DejaVuSans.ttf
[root@Zabbix fonts]# rz -E
rz waiting to receive.
[root@Zabbix fonts]# ll
总用量 4780
-rw-r--r-- 1 root root 756072 10月 14 15:30 DejaVuSans.ttf
-rw-r--r-- 1 root root 4135804 3月 9 2020 simkai.ttf
[root@Zabbix fonts]# rm -rf DejaVuSans.ttf
[root@Zabbix fonts]# mv simkai.ttf DejaVuSans.ttf
当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。
# 配置阿里云下载源
vim /etc/yum.repos.d/zabbix.repo
内容如下:
[zabbix]
name=Zabbix Official Repository
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
# 清除yum安装包建立新的缓存
yum clean && yum makecache
# 安装zabbix
yum install -y zabbix-agent
如下所示
主要参数及其作用如下所示:
DBHost #数据库主机地址
DBName #数据库名称
DBUser、DBPassword #数据库用户名和数据库密码
DBPort #数据库连接端口
AlertScriptPath #告警脚本存放路径
CacheSize #缓存大小
CacheUpdateFrequency #缓存更新时间
DebugLevel #日志级别
LogFile #日志文件名称
LogFileSize #日式文件大小,超出指定的值会进行自动切割
LogSlowQueries #数据库慢查询时间,单位为毫秒
PidFile #PID文件
ProxyConfigFrequency #在Proxy被动模式下,Server主动向Proxy同步配置文件的时间
ProxyDataFrequency #在Proxy被动模式下,Server主动向Proxy请求历史数据时间
StartDiscovers #发现规则的线程数
Timeout #链接Agent超时时间
TrendCacheSize #历史数据缓存大小
User #执行zabbix监控的用户
HistoryCacheSize #历史记录缓存大小
ListenIP #监听的IP地址
ListenPort #监听的端口号
LoadModule #加载的模块
LoadModulePath #加载模块的路径
主要参数及其作用如下:
EnableRemoteCommand #是否允许服务端远程执行命令或者脚本
HostName #客户端主机名
ListenIP #客户端监听的IP地址,如果zabbix处于被动模式下,zabbix客户端也需要监听端口,以对服务端的请求进行响应。
ListenPort #客户端监听的端口号,默认为10050。
LoadModulePath #加载模块路径
LogFile #日志文件
PidFile #PID文件
Server #服务端IP地址,在被动模式下,该地址相当于授权。
ServerActive #主动模式下服务端IP地址。
StartAgentsAgent #启动进程,如果设置为0,则表示禁止被动监控。
Timeout #超时时间
Userzabbix #客户端运行的用户
UserParameter #用户自定义key
BuffeSize #缓冲区大小
DebugLevel #日志级别
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777