Zabbix部署

一、Zabbix概述

1.简介

zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix 能监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。

通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

2.zabbix组件

zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。

zabbix server

zabbix服务端进程,配置和管理zabbix应用程序,也是监控系统的告警中心(配置监控项告警触发器阈值和发送告警)。

端口10050

zabbix agent

部署在被监控主机上,采集监控指标数据,发送给zabbix server

zabbix proxy

zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server收集zabbix agent发送的监控指标数据,汇总后再转发给 zabbix server,分担zabbix server的集中式负载压力。

端口10051

zabbix database(mysql oracle postgreSQL tsdb等)

持久化存储配置信息和监控指标数据。

zabbix web(apache/nginx + php)

进行zabbix服务端配置和监控数据的UI界面展示。

zabbix java gateway

作为获取从java应用采集的监控指标数据的代理端。

端口10052

3.工作原理

 

zabbix agent定期采集被监控主机的指标数据并发送给zabbix server

zabbix server收到数据后会将数据存储到zabbix database

管理员可基于zabbix web前端查看监控数据的图像。

4.端口号

组件端口号
zabbix server 10051
zabbix agent 10050

5.zabbix中预设的键值

agent.ping            #服务端与客户端是否连通,返回1表示可达,返回非表示不可达

system.hostname        #系统主机名

agent.hostname        #客户端主机名

net.if.in[if,<mode>]    #网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略

net.if.out[if,<mode>]        #网络接口流出的流量统计

proc.num[<name>,<user>,<state>,<cmdline>,<zone>]        #进程数

net.tcp.port[<ip>,port]        #检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接

如果没有想要的功能,需要自定义键值。

二、部署安装zabbix

1.编译安装

官方手册

https://www.zabbix.com/documentation/4.0/zh/manual/installation/install

解决依赖关系

 yum install gcc libxml2-devel   net-snmp net-snmp-devel   curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel    libevent-devel    java-1.8.0-openjdk-devel  -y 

建立管理用户

groupadd zabbix
useradd -g zabbix zabbix

解压包

cd /opt
#切换目录
wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.30.tar.gz
#下载安装包
tar xf zabbix-4.0.30.tar.gz
#解压

编译安装服务端

cd zabbix-4.0.30
./configure --help #可以查看帮助 ./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java make make install

 添加客户端

./configure --prefix=/apps/zabbix --enable-agent
在别的机器上   客户机需要安装的  客户端

安装数据库

数据库可以安装在本地也可以分离

yum install mariadb-server.x86_64  -y
systemctl start mariadb
 
mysql_secure_installation       安全加固脚本
 
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
#创建数据库命令
create user zabbix@localhost identified by 'zabbix';
#创建用户命令
grant all privileges on zabbix.* to zabbix@localhost;
#授予权限
set global log_bin_trust_function_creators = 1;
设置全局变量
quit;

导入 zabbix 数据库文件

cd /opt/zabbix-4.0.30/database/mysql
mysql -uzabbix -pzabbix zabbix < schema.sql 
mysql -uzabbix -pzabbix zabbix < images.sql 
mysql -uzabbix -pzabbix zabbix < data.sql 
###必须最后 导入  data.sql

 安装web  apache

yum install httpd -y
systemctl start httpd
cd /opt/zabbix-4.0.30/frontends/php/
cp -a . /var/www/html/zabbix/
# 将前端页面拷贝过去

 修改zabbix配置

vim /apps/zabbix_server/etc/zabbix_server.conf
# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix
LogSlowQueries=3000
 
118  行修改 下  密码 其他不用修改
118  DBPassword= zabbix
 
#启动 zabbixserver  和 zabbixagented
/apps/zabbix_server/sbin/zabbix_server
/apps/zabbix_server/sbin/zabbix_agentd 

 打开浏览器 访问  192.168.100.155/zabbix

 升级php版本

yum  install php-gettext php-xml php-net-socket php-gd php-mysql  -y
修改php 软件的配置
vim /etc/php.ini
384 max_execution_time = 300
394max_input_time = 600
672 post_max_size = 16M
878 date.timezone = Asia/Shanghai
 
#改完 以后
systemctl  restart  httpd

默认用户名:Admin      密码: zabbix

准备service文件

#先停止  zabbix-server
pkill zabbix_server
 
vim /usr/lib/systemd/system/zabbix-server.service 
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
 
[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf"
EnvironmentFile=-/etc/default/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity
 
[Install]
WantedBy=multi-user.target
 
chown zabbix:zabbix  /apps/zabbix_server/ -R
systemctl daemon-reload
systemctl start zabbix-server.service
systemctl status zabbix-server.service

#先停止当前zabbix_agent进程    10050端口
pkill zabbix_agentd 
vim /usr/lib/systemd/system/zabbix-agent.service
 
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=apps/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target

systemctl restart zabbix
-agent && systemctl enable zabbix-agent

 

posted @ 2024-07-21 22:29  hx_ky36  阅读(39)  评论(0编辑  收藏  举报