目录
监控服务zabbix部署
1. zabbix介绍
zabbix
是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix
能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix
由2部分构成,zabbix server
与可选组件zabbix agent
。
zabbix server
可以通过SNMP
,zabbix agent
,ping
,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix agent
需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix server
可以单独监视远程服务器的服务状态;同时也可以与zabbix agent
配合,可以轮询zabbix agent
主动接收监视数据(agent方式),同时还可被动接收zabbix agent
发送的数据(trapping方式)。
另外zabbix server
还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
2. zabbix特点
zabbix的主要特点:
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
3. zabbix配置文件
zabbix配置文件有两种:
- 服务器端配置文件(/usr/local/etc/zabbix_server.conf)
- 客户端配置文件(/usr/local/etc/zabbix_agentd.conf)
- zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)
服务器端配置文件zabbix_server.conf常用配置参数:
参数 | 作用 |
---|---|
LogFile | 设置服务端日志文件存放路径 |
ListenIP | 设置服务端监听IP |
ListenPort | 设置服务端监听的端口号 |
PidFile | 设置服务端进程号文件存放路径 |
DBHost | 指定zabbix的数据库服务器IP |
DBName | 指定zabbix使用的数据库库名 |
DBUser | 指定zabbix数据库登录用户 |
DBPassword | 指定zabbix数据库登录密码 |
DBPort | 指定zabbix数据库端口号 |
User | 设置zabbix以什么用户的身份运行 |
AlertScriptsPath | 设置告警脚本存放路径 |
ExternalScripts | 外部脚本存放路径 |
客户端配置文件zabbix_agentd.conf常用配置参数:
参数 | 作用 |
---|---|
Server | 指定zabbix服务器的IP或域名 |
ServerActive | 指定zabbix服务器的IP或域名 |
Hostname | 指定本机的主机名,此项必须与web界面配置项一致 |
UnsafeUserParameters | 是否启用自定义监控项,可选值为{1 | 0} |
UserParameter | 指定自定义监控脚本参数 |
LogFile | 设置客户端日志文件存放路径 |
Zabbix监控配置流程的步骤如下:
- 安装Zabbix服务端:首先,需要在一台服务器上安装Zabbix服务器。
- 配置数据库:Zabbix需要使用数据库来存储监控数据和配置信息。在安装数据库服务器后,创建一个新的数据库,并为Zabbix配置一个数据库用户。
- 安装Zabbix代理:如果你要监控本地服务器上的资源,例如CPU、内存等,可以安装Zabbix代理。代理程序将收集本地服务器的监控数据并将其发送到Zabbix服务端。
- 配置主机:在Zabbix服务端上,配置要监控的主机。这包括指定主机的名称、IP地址和所属的组。
- 创建监控项:为每个要监控的主机创建监控项。监控项定义了要监控的资源类型,例如CPU利用率、磁盘空间等。你可以使用Zabbix提供的预定义监控项,或者创建自定义监控项。
- 创建触发器:触发器用于定义当监控项的值达到特定条件时触发的操作。例如,当CPU利用率超过某个阈值时,可以触发一个警报。
- 设置报警操作:定义当触发器触发时要执行的操作,例如发送电子邮件、发送短信或运行脚本等。
- 配置图形和报表:Zabbix提供了创建图形和报表的功能,可以将监控数据可视化。
- 监控和故障排除:启动Zabbix监控,并监视监控数据。如果发现任何问题,可以查看日志文件和报警信息来进行故障排除。
4. 部署zabbix
环境说明:
环境 | 要安装的应用 |
---|---|
服务器 | lamp架构 zabbix server zabbix agent |
客户端 | zabbix agent |
因为zabbix
是用php
语言开发的,所以必须先部署lamp
架构,使其能够支持运行php
网页
4.1 zabbix服务端安装
#提前布置好lamp架构
#在zabbix官网下载最新的源码包
[root@localhost ]# cd /usr/src
[root@localhost src]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
//安装依赖包
[root@localhost ~]# yum -y install net-snmp-devel libevent-devel mysql-devel http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/OpenIPMI-devel-2.0.31-3.el8.x86_64.rpm
#创建用户zabbix
[root@localhost ]# useradd -r -M -s /sbin/nologin zabbix
#解压zabbix-6.4.6.tar.gz
[root@localhost src]# tar xf zabbix-6.4.6.tar.gz
#创建和配置数据库和用户
[root@localhost zabbix-6.4.6]# mysql -uroot -p
Enter password: 12345678
#创建数据库zabbix
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
#创建用户zabbix只允许在本机登录,设置密码12345678
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by '12345678'
#授权所有权限在zabbix数据库中所有的表用zabbix用户在本机登录
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 1;
#刷新一下权限
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> quit;
Bye
#将数据导入数据库
[root@localhost src]# cd zabbix-6.4.6
[root@localhost zabbix-6.4.6]# cd database/
[root@localhost database]# cd mysql/
[root@localhost mysql]# mysql -uzabbix -p12345678 zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -p12345678 zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p12345678 --default-character-set=utf8mb4 zabbix < data.sql
#成功导入schema后,可以禁用 log_bin_trust_function_creators:
[root@localhost zabbix-6.4.6]# mysql -uroot -p
Enter password:
MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 0;
MariaDB [(none)]> flush privileges;
#配置源
构建Zabbix服务器,Zabbix代理或Zabbix代理需要带有GNU扩展的C99。可以通过设置 CFLAGS=“-std=gnu99”来显式指定此版本:
[root@localhost mysql]# export CFLAGS="-std=gnu99"
[root@localhost mysql]# echo $CFLAGS
-std=gnu99
#配置源码包zabbix 的Configure文件
[root@localhost zabbix-6.4.6]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi
//编译安装
[root@localhost zabbix-6.4.6]# make install
4.2 zabbix服务端配置
[root@localhost ~]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_server.conf
zabbix_agentd.conf.d zabbix_server.conf.d
//修改服务端配置文件
//设置数据库信息
[root@localhost ~]# vim /usr/local/etc/zabbix_server.conf
......
DBPassword=12345678 //设置zabbix数据库连接密码
//启动zabbix_server和zabbix_agentd
[root@localhost zabbix-6.4.6]# zabbix_server
[root@localhost zabbix-6.4.6]# zabbix_agentd
[root@localhost zabbix-6.4.6]# ss -natl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:*
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:10050 [::]:*
LISTEN 0 128 [::]:10051 [::]:*
LISTEN 0 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
#设置zabbix_server,zabbix_agentd开机自启
[root@localhost ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/zabbix_server.service
[root@localhost ~]# vim /usr/lib/systemd/system/zabbix_.service.service
[root@localhost ~]# cat /usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=zabbix server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=pkill zabbix_server
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost ~]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/zabbix_agentd.service
[root@localhost ~]# vim /usr/lib/systemd/system/zabbix_agentd.service
[root@localhost ~]# cat /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agentd
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=pkill zabbix_agentd
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable --now zabbix_server
[root@localhost ~]# systemctl enable --now zabbix_agentd
//恢复zabbix/conf目录的权限为755
[root@localhost ~]# chmod 755 /usr/local/apache/htdocs/mc.com/conf
4.3 zabbix服务端web界面安装与配置
zabbix web界面安装前配置
[root@localhost ~]# cd /usr/src/zabbix-6.4.6
[root@localhost ~]# cp -a ui/* /usr/local/apache/htdocs/mc.com/
//设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@localhost ~]# chmod 777 /usr/local/apache/htdocs/mc.com/conf
//修改/etc/php.ini的配置并重启php-fpm
[root@localhost zabbix-6.4.6]# chmod 777 /usr/local/apache/htdocs/mc.com/conf
[root@localhost zabbix-6.4.6]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@localhost zabbix-6.4.6]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.4.6]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@localhost zabbix-6.4.6]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@localhost zabbix-6.4.6]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
// 在浏览器上访问域名进行安装
登录zabbix用户名:Admin 密码:zabbix
//恢复zabbix/conf目录的权限为755
[root@localhost src]# 755 /usr/local/apache/htdocs/mc.com/conf
4.4zabbix客户端安装配置
监控 linux 主机
#关闭防火墙
[root@node01 ~]# systemctl disable --now firewalld
[root@node01 ~]# setenforce 0
#创建zabbix用户账户
[root@node01 ~]# useradd -r -M -s /sbin/nologin zabbix
#下载zabbix源码包 并 解压
[root@node01 ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
[root@node01 ~]# tar xf zabbix-6.4.6.tar.gz
[root@node01 ~]# ls
anaconda-ks.cfg zabbix-6.4.6 zabbix-6.4.6.tar.gz
#安装依赖包
[root@node01 ~]# yum -y install gcc gcc-c++ make pcre-devel
#配置Configure文件
[root@node01 zabbix-6.4.6]# ./configure --enable-agent
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
#编译安装
[root@node01 zabbix-6.4.6]# make install
#设置zabbix——agentd服务开机自启
[root@node01 zabbix-6.4.6]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/zabbix_agentd.service
[root@node01 zabbix-6.4.6]# vim /usr/lib/systemd/system/zabbix_agentd.service
[root@node01 zabbix-6.4.6]# cat /usr/lib/systemd/system/zabbix_agentd.service
[Unit]
Description=zabbix agentd
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_agentd
ExecStop=pkill zabbix_agentd
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
#更改 /usr/local/etc/zabbix_agentd.conf 配置文件
[root@node01 ~]# cd /usr/local/etc/
[root@node01 etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@node01 etc]# vim zabbix_agentd.conf
Server=192.168.200.39
ServerActive=192.168.200.39
Hostname=192.168.200.22
[root@node01 etc]# systemctl daemon-reload
[root@node01 etc]# systemctl enable --now zabbix_agentd
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix_agentd.service → /usr/lib/systemd/system/zabbix_agentd.service.
[root@node01 etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
4.5zabbix客户web界面安装与配置
配置主机/主机组
创建监控项 (手动添加 被动模式)
点击创建监控项
添加触发器(trigger)
#手动触发监控并验证
在文件中添加新内容
[root@node01 ~]# echo 'xixihaha' >> /tmp/test
监控Windows主机
关闭防火墙
在zabbix官网下载windows版本zabbix
下载地址:https://www.zabbix.com/cn/download_agents?version=6.4&release=6.4.6&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=Archive&show_legacy=0
修改配置文件
下载完成解压到C盘zabbix_agent目录后,修改C:\zabbix_agent\conf\zabbix_agentd.conf 配置文件
# zabbix-server端的ip地址
Server=192.168.200.39
ServerActive=192.168.200.39
Hostname=node02Windows
安装zabbix服务
#以管理员身份运行命令提示符cmd
C:\Windows\System32>cd C:\zabbix_agent\bin
C:\zabbix_agent\bin>zabbix_agentd.exe -i -c C:\zabbix_agent\conf\zabbix_agentd.conf
zabbix_agentd.exe [6024]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [6024]: event source [Zabbix Agent] installed successfully
服务中启动zabbix服务
web界面配置
创建配置主机组
创建配置主机
创建监控项 Templates (模版添加 被动模式)
监控成功