Zabbix

hx_ky36發表於2024-07-21

一、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

相關文章