一、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表示可以連線
如果沒有想要的功能,需要自定義鍵值。
官方手冊
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