柚子快報激活碼778899分享:Zabbix介紹和架構(gòu)
柚子快報激活碼778899分享:Zabbix介紹和架構(gòu)
一、Zabbix介紹
Zabbix是一個企業(yè)級解決方案,支持實時監(jiān)控數(shù)千臺服務(wù)器,虛擬機(jī)和網(wǎng)絡(luò)設(shè)備,采集百萬級監(jiān)控指標(biāo),適用于任何IT基礎(chǔ)架構(gòu)、服務(wù)、應(yīng)用程序和資源的解決方案
二、Zabbix架構(gòu)
SERVER
Zabbix server 是 Zabbix 軟件的核心組件Zabbix Agent 向其報告可用性、系統(tǒng)完整性信息和統(tǒng)計信息。Zabbix serve r也是存儲所有配置信息、統(tǒng)計信息和操作信息的核心存儲庫。Zabbix server也是Zabbix監(jiān)控系統(tǒng)的告警中心。在監(jiān)控的系統(tǒng)中出現(xiàn)任何異常,將發(fā)出通知給管理員。 基本的 Zabbix Server 的功能分解成為三個不同的組件。他們是:Zabbix server、Web前端和數(shù)據(jù)庫。
tips:
Zabbix 的所有配置信息都存儲在 Server和Web前端進(jìn)行交互的數(shù)據(jù)庫中。例如,當(dāng)你通過Web前端(或者API)新增一個監(jiān)控項時,它會被添加到數(shù)據(jù)庫的監(jiān)控項表里。然后,Zabbix server 以每分鐘一次的頻率查詢監(jiān)控項表中的有效項,接著將它存儲在 Zabbix server 中的緩存里。這就是為什么 Zabbix前端所做的任何更改需要花費兩分鐘左右才能顯示在最新的數(shù)據(jù)段的原因。
數(shù)據(jù)庫
所有配置信息以及 Zabbix 采集到的數(shù)據(jù)都被持久存儲在數(shù)據(jù)庫中可以支持MySQL,PostgreSQL,Oracle 等多種數(shù)據(jù)庫 WEB 界面
WEB 界面是 Zabbix server 的一部分,用于實現(xiàn)展示和配置的界面通常(但不一定)和 Zabbix server 運行在同一臺物理機(jī)器上基于 Apache(Nginx)+PHP 實現(xiàn),早期只支持LAMP架構(gòu),從Zabbix5.0開始支持LNMP AGENT
Zabbix agents 部署在被監(jiān)控目標(biāo)上,用于主動監(jiān)控本地資源和應(yīng)用程序,并將收集的數(shù)據(jù)發(fā)送給Zabbix server。從Zabbix5.0開始支技Zabbix Agent2 PROXY
Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性數(shù)據(jù)Zabbix Proxy 在 Zabbix 的部署是可選部分Zabbix Proxy 的部署可以很好的分擔(dān)單個Zabbix server的負(fù)載 Java 網(wǎng)關(guān)
Zabbix 要監(jiān)控 tomcat 服務(wù)器和其它JAVA程序,需要使用 Java gateway 做為代理,才能從JAVA程序中獲取數(shù)據(jù)
三、Zabbix術(shù)語
被監(jiān)控: 即 Zabbix 監(jiān)控的主機(jī)或設(shè)備 監(jiān)控項item:即 Zabbix 監(jiān)控的相關(guān)指標(biāo),比如:CPU利用率,內(nèi)存使用率,TCP連接數(shù)等
監(jiān)控內(nèi)容 應(yīng)用集Application:為方便管理眾多的監(jiān)控項,可將多個同類型的監(jiān)控項進(jìn)行歸類,納入一個集合中,即應(yīng)用集 觸發(fā)器Trigger:是一個表達(dá)式,或者說一個條件,如磁盤利用率超過80%等,當(dāng)觸發(fā)條件后,會導(dǎo)致一個觸發(fā)事件,這個事件會執(zhí)行一個或多個動作 告警:當(dāng)觸發(fā)器和動作二者結(jié)合起來時,就構(gòu)成了的告警機(jī)制,比如cpu的使用率達(dá)到80%以上,觸發(fā)了報警動作,系統(tǒng)將自動發(fā)送一封郵件到指定的郵箱。然后運維可以及時的去處理此錯誤 host—> items—> triggers --> action Web 監(jiān)測:對WEB服務(wù)進(jìn)行檢測,比如:訪問指定網(wǎng)站是否可正常訪問 模板 Template: 可以方便地應(yīng)用于多個主機(jī)的一組實體的集合。而這些實體包括:
items(監(jiān)控項)applications(應(yīng)用集)triggers(觸發(fā)器)graphs(圖形)screens (聚合圖形,自Zabbix 2.0起)
使用模板是減少工作量并簡化Zabbix配置的好方法。
模板分為內(nèi)置模板和自定義模板
四、編譯安裝zabbix
#解決依賴關(guān)系
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
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
#解壓包
tar xf zabbix-4.0.30.tar.gz
#編譯安裝主要組件 server agent java-gateway
./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
make
make install
客戶端安轉(zhuǎn)agent
./configure --prefix=/apps/zabbix --enable-agent
數(shù)據(jù)庫可以安裝在本地也可以分離
yum install mariadb-server.x86_64 -y
systemctl start mariadb
mysql_secure_installation 安全加固腳本
#輸入當(dāng)前密碼
#修改root密碼
#移除匿名用戶
#移除測試數(shù)據(jù)庫
#不讓 root 遠(yuǎn)程登錄
#刷新
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;
導(dǎo)入zabbix數(shù)據(jù)庫文件
cd /data/zabbix-4.0.30/database/mysql
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
#必須最后 導(dǎo)入 data.sql
安裝web apapche
yum install httpd -y
systemctl start httpd
cd /data/zabbix-4.0.30/frontends/php/
cp -a /data/zabbix-4.0.30/frontends/php/ /var/www/html/zabbix/
# 將前端頁面拷貝過去
#瀏覽器訪問
ip/zabbix
修改zabbix配置
vim /apps/zabbix_server/etc/zabbix_server.conf
118 行修改 下 密碼 其他不用修改
118 DBPassword= zabbix
grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix
LogSlowQueries=3000
準(zhǔn)備service文件
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
User=zabbix
Group=zabbix
[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
升級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
最后瀏覽器訪問zabbix登錄
192.168.10.101/zabbix 默認(rèn)用戶名:Admin 密碼: zabbix
五、zabbix監(jiān)控案例實戰(zhàn)
自定義監(jiān)控項通過腳本采集監(jiān)控項數(shù)據(jù)zabbix agent獲取監(jiān)控項數(shù)據(jù)自定義模板和圖形及觸發(fā)器驗證數(shù)據(jù)
1.監(jiān)控nginx
對nginx的活動連接和當(dāng)前狀態(tài)等運行狀態(tài)進(jìn)行監(jiān)控
需要先安裝好nginx
#修改nginx配置文件
vim /etc/nginx/nginx.conf
location /status {
stub_status;
}
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx
curl 192.168.10.101/status
準(zhǔn)備nginx監(jiān)測腳本
vim /data/nginx.sh
#!/bin/bash
nginx_status_fun() { # 函數(shù)內(nèi)容
NGINX_PORT=$1 # 端口,函數(shù)的第一個參數(shù)是端口號
NGINX_COMMAND=$2 # 命令,函數(shù)的第二個參數(shù)是命令
nginx_active() { # 獲取nginx_active數(shù)量
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Active connections' | awk '{print $3}'
}
nginx_reading() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Reading' | awk '{print $2}'
}
nginx_writing() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Writing' | awk '{print $4}'
}
nginx_waiting() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | grep 'Waiting' | awk '{print $6}'
}
nginx_accepts() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $1}'
}
nginx_handled() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $2}'
}
nginx_requests() {
/usr/bin/curl "http://127.0.0.1:$NGINX_PORT/status/" 2>/dev/null | awk 'NR==3' | awk '{print $3}'
}
case $NGINX_COMMAND in
active)
nginx_active
;;
reading)
nginx_reading
;;
writing)
nginx_writing
;;
waiting)
nginx_waiting
;;
accepts)
nginx_accepts
;;
handled)
nginx_handled
;;
requests)
nginx_requests
;;
*)
echo "Invalid command: $NGINX_COMMAND"
;;
esac
}
main() { # 主函數(shù)內(nèi)容
case $1 in
nginx_status)
nginx_status_fun $2 $3
;;
*)
echo "Usage: $0 {nginx_status key}"
;;
esac
}
main $1 $2 $3
#測試腳本
bash nginx.sh nginx_status 80 active
1
#第一個參數(shù) nginx_status
#第二個參數(shù) 80 端口
#第三個參數(shù) active 獲取的狀態(tài)
#狀態(tài)類型:
#reading
#writing
#waiting
#accepts
#handled
#requests
修改配置文件
vim /apps/zabbix/etc/zabbix_agentd.conf
UserParameter=nginx_status[*],/usr/bin/bash /data/nginx.sh $1 $2 $3
#在主服務(wù)器上測試
zabbix_get -s 192.168.91.102 -p 10050 -k "nginx_status["nginx_status","80","active"]"
1
登入web上的zabbix創(chuàng)建自定義模版
創(chuàng)建自定義模版完成后就可以應(yīng)用在nginx主機(jī)上了
柚子快報激活碼778899分享:Zabbix介紹和架構(gòu)
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。