#zabbix基本php
應用運維的三大任務之一:故障處理。如何找到故障就成了一個問題。java
經過客戶反饋能夠得知故障的發生,可是從客戶感知到故障到提交故障可能週期很長。由於有些客戶即便發現了沒法訪問服務也不會提交故障。
即便客戶提交故障了,還須要從客戶的描述中找出故障發生的位置,這中間可能還須要很長的時間。mysql這時,咱們就須要一個能隨時監控系統並提供報警功能的軟件了。ios
咱們的整個應用系統包括硬件和軟件兩大部分。
硬件:包括主機、交換機、路由器、網線等各類肉眼能看獲得的設備。
軟件:提供服務的各類軟件、各項軟件的相關指標、系統使用率等
以上不管哪一個部分發生故障均可能致使業務的中斷。
而且因業務系統訪問壓力的增大,對系統資源的使用率持續上升,直至上升到系統資源徹底被佔用致使業務不可用,這種狀況也是很是有必要注意的。這種狀況下,就須要咱們經過向外擴展增長提供服務的主機,來減輕系統的壓力。web
在對一個應用系統進行監控時,各項數據能夠經過系統內建的接口獲取信息,也能夠本身收集,有時數據採集後還須要計算。如ifconfig中RX packets是一個累加數據,單純採集數據無實際意義,咱們須要的單位時間內的數量,這種狀況下就須要進行計算。redis
須要監控的指標項:spring
數據採集的方式:sql
zabbix使用mysql和pgsql,因這些數據系統自身的侷限性,在某些大型場景下,數據庫很容易成爲系統瓶頸。數據庫
另外還能夠藉助一些配置系統,在警告前作出一些自愈操做。如重啓服務等。apache
cacti:基於snmp,結合crontab採集數據,把採集的數據存入rrd(round robin databases)數據庫。且cacti的報警功能弱暴了。一般配合nagios使用。但這兩種數據庫結合使用常常會出現各類問題。
nagios:週期性採集數據,採集後當即斷定數據是否達到指定的閾值,達到或超過就告警,達不到就把數據丟掉。
zabbix-agent:被監控端須要安裝的組件 get和sender:手動測試的命令行工具 zabbix-java-gateway:zabbix監控java程序所須要安裝的包 zabbix-proxy-mysql、zabbix-proxy-sqlite3:zabbix代理端經過什麼數據庫存儲,就安裝哪一個組件 zabbix-server-mysql、zabbix-server-pgsql: zabbix服務端基於mysql和pgsql作存儲所須要的包 zabbix-web:提供zabbix-gui接口
# rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
也可直接建立repo文件,使用以下repo內容:
如下爲repo文件內容:
[zabbix] #提供了zabbx各類功能包。 name=Zabbix Official Repository - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/ enabled=1 gpgcheck=0 gpgkey=http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX [Zabbix Official Repository] #提供了iksemel及fping。 name=Zabbix Official Repository baseurl=http://repo.zabbix.com/non-supported/rhel/7/x86_64/ enabled=1 gpgcheck=0 gpgkey=http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
若不添加Zabbix Official Repository,安裝zabbix時會出現以下提示:
Error: Execution of '/bin/yum -d 0 -e 0 -y install zabbix-server-mysql' returned 1: Error: Package: zabbix-server-2.4.8-1.el7.x86_64 (zabbix-2.4) Requires: iksemel Error: Package: zabbix-server-mysql-2.4.8-1.el7.x86_64 (zabbix-2.4) Requires: libiksemel.so.3()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
若報錯Requires: libiksemel.so.3()(64bit),需下載libiksemel包:
Error: Package: zabbix-server-mysql-4.0.4-1.el7.x86_64 (zabbix) Requires: libiksemel.so.3()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest [root@zabbix ~]# wget http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm --2019-02-19 04:32:35-- http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64//iksemel-1.4-6.sdl7.x86_64.rpm Resolving springdale.math.ias.edu (springdale.math.ias.edu)... 192.16.204.192 Connecting to springdale.math.ias.edu (springdale.math.ias.edu)|192.16.204.192|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 51884 (51K) [application/x-rpm] Saving to: ‘iksemel-1.4-6.sdl7.x86_64.rpm’ 100%[======================================================================================>] 51,884 93.9KB/s in 0.5s 2019-02-19 04:32:36 (93.9 KB/s) - ‘iksemel-1.4-6.sdl7.x86_64.rpm’ saved [51884/51884] [root@zabbix ~]# ls anaconda-ks.cfg dump.rdb iksemel-1.4-6.sdl7.x86_64.rpm private redis-4.0.10 redis-4.0.10.tar.gz [root@zabbix ~]# yum install -y iksemel-1.4-6.sdl7.x86_64.rpm Loaded plugins: fastestmirror Examining iksemel-1.4-6.sdl7.x86_64.rpm: iksemel-1.4-6.sdl7.x86_64 Marking iksemel-1.4-6.sdl7.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package iksemel.x86_64 0:1.4-6.sdl7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================ Installing: iksemel x86_64 1.4-6.sdl7 /iksemel-1.4-6.sdl7.x86_64 112 k Transaction Summary ================================================================================================================================ Install 1 Package Total size: 112 k Installed size: 112 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : iksemel-1.4-6.sdl7.x86_64 1/1 Verifying : iksemel-1.4-6.sdl7.x86_64 1/1 Installed: iksemel.x86_64 0:1.4-6.sdl7 Complete!
# yum -y install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql zabbix-agent mariadb-server
提示:若是 Zabbix server 和 Zabbix proxy 安裝在相同的主機,它們必須建立不一樣名字的數據庫!
默認狀況下,zabbix server配置文件中的DBName是zabbix,zabbix proxy配置文件中DBName是zabbix_proxy。
# mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create database zabbix_proxy character set utf8 collate utf8_bin; #可選 mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'password'; #可選 mysql> flush privileges; mysql> quit;
[root@lxk ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.2/ [root@lxk zabbix-proxy-mysql-4.0.2]# zcat schema.sql.gz > schema.sql #可選 [root@lxk zabbix-proxy-mysql-4.0.2]# cd ../zabbix-server-mysql-4.0.2/ #可選 [root@lxk zabbix-server-mysql-4.0.2]# zcat create.sql.gz > create.sql [root@lxk zabbix-server-mysql-4.0.2]# mysql -uroot -hlocalhost -p MariaDB [(none)]> use zabbix_proxy; #可選 MariaDB [zabbix_proxy]> source /usr/share/doc/zabbix-proxy-mysql-4.0.2/schema.sql; #可選 MariaDB [zabbix_proxy]> use zabbix; MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-4.0.2/create.sql;
編輯 /etc/zabbix/zabbix_server.conf以及/etc/zabbix/zabbix_proxy.conf,把其中的DBPassword值改成對應密碼
DBPassword=password
編輯 /etc/httpd/conf.d/zabbix.conf, 設置時區
# php_value date.timezone Asia/Shanghai
# systemctl restart zabbix-server zabbix-agent httpd # systemctl enable zabbix-server zabbix-agent httpd
[root@nfs zabbix]# chown -R apache.apache ../zabbix/
訪問zabbix-server http://zabbix-server IP/zabbix/setup.php 配置完成後配置文件會保存在如下文件 /etc/zabbix/web/zabbix.conf.php 安裝完成後,默認用戶爲Admin,默認密碼爲zabbix
[root@nfs ~]# grep "^[^[:space:]]#\+" /etc/zabbix/zabbix_server.conf ############ GENERAL PARAMETERS ################# ### Option: ListenPort #服務監聽的端口 ### Option: SourceIP #服務器端如有多個地址,使用哪一個地址與agent端鏈接。 ### Option: LogType #指明日誌保存位置,syslog、文件、標準輸出 ### Option: LogFile #日誌保存的文件名 ### Option: LogFileSize #日誌文件大小,超出大小自動滾動,0爲不限制大小。 ### Option: DebugLevel #debug級別,詳見配置文件解釋。通常爲3 ### Option: PidFile #PID文件位置 ### Option: SocketDir #基於UNIX SOCKET通信時的SOCKET文件位置 ### Option: DBHost #數據庫IP ### Option: DBName #數據庫名稱 ### Option: DBSchema #數據庫方案,即Mysql仍是pgsql ### Option: DBUser #鏈接數據庫的用戶 ### Option: DBPassword #鏈接數據庫用戶的密碼 ### Option: DBSocket #DBSocket位置 ### Option: DBPort #數據庫端口 ### Option: HistoryStorageURL # ### Option: HistoryStorageTypes #
[root@nfs ~]# grep "^[^[:space:]]####\+" /etc/zabbix/zabbix_agentd.conf 通常參數 ############ GENERAL PARAMETERS ################# 被動檢查相關 ##### Passive checks related 主動檢查相關 ##### Active checks related 高級配置 ############ ADVANCED PARAMETERS ################# 自定義監控參數 ####### USER-DEFINED MONITORED PARAMETERS ####### 加載的模塊 ####### LOADABLE MODULES ####### 安全認證相關:局域網內無需配置 ####### TLS-RELATED PARAMETERS #######
### Option: PidFile #PID文件路徑 ### Option: LogType #日誌類型 ### Option: LogFile #日誌文件位置 ### Option: LogFileSize #日誌文件大小 ### Option: DebugLevel #debug級別 ### Option: SourceIP #與server端鏈接的IP地址 ### Option: EnableRemoteCommands #是否容許遠程命令 ### Option: LogRemoteCommands #遠程命令是否記錄在日誌中。
### Option: Server #server端IP ### Option: ListenPort #server端端口 ### Option: ListenIP #agent監聽的地址 ### Option: StartAgents #啓動幾個agent
### Option: ServerActive ### Option: Hostname ### Option: HostnameItem ### Option: HostMetadata ### Option: HostMetadataItem ### Option: RefreshActiveChecks ### Option: BufferSend ### Option: BufferSize ### Option: MaxLinesPerSecond
server端的agent無需設置選項,安裝好以後歸入server端監控的方法:
直接啓動agent--> 在zabbix-server的web-gui頁上點擊configuration --> hosts.找到Zabbix server並點擊disabled --> 在彈出的消息中點擊enable。
zabbix server的Availability列會顯示當前採集數據的方式。ZBX爲經過zabbix-agent方式。