zabbix 安裝指導手冊

前言

   在安全監控領域有很多的開源監控軟件,例如zabbix,nagios,open-falcon,prometheus等衆多軟件。這些軟件各有各的特點,基本上都能夠滿足日常的運維工作需要。同時在大的互聯網公司一般都會根據自己的實際業務需求進行定製的監控系統開發,例如open-falcon就是小米公司自己的開源的監控系統。而且,在集羣規模達到一定的數量級之後,一套監控系統應該已經不能滿足生產需要,通常都會有多套監控系統一起協作來完成日常監控工作。
   今天主要介紹的就是zabbix的安裝和使用。接下來會向大家介紹,如何安裝zabbix以及如何對zabbix進行初始化設置。

下載

   百度搜索zabbix,就可以進入到zabbix的官方網站。進入到下載目錄,可以看到這裏有很多的版本可以下載。

zabbix-download

   我們選擇最新的版本進行下載,點擊鏈接進入列表頁。這裏列舉了非常多的下載項,並且提供了很多的版本。對於初學者來說,需要下載哪些內容,並不是容易確定下來,但是卻可以通過這個列表瞭解到,如果想要完整的運行zabbix都需要依賴哪些模塊。
   很幸運的是,zabbix提供一個非常好的安裝方式,我們只下載箭頭指向的那一個rpm安裝包就可以。

zabbix-download2

   使用rpm命令安裝一下下載的安裝包。然後使用 rpm -ql zabbix-release 命令查看一下安裝的文件。

[root@localhost ]# rpm -ql zabbix-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
/etc/yum.repos.d/zabbix.repo
/usr/share/doc/zabbix-release-3.4
/usr/share/doc/zabbix-release-3.4/GPL

   我們看到安裝了一個repo文件,這說明,我們接下來可以使用yum 來安裝我們所需要的模塊。
   接下來我們就開始準備安裝zabbix了。安裝開始之前,請先關閉掉SELinux,以及iptables。

安裝Mariadb

   zabbix採集的數據需要存儲在數據庫中,同時zabbix 的成功運行也需要數據庫的支持,所以我們需要先安裝mysql數據庫。

yum install mariadb mariadb-server

   修改mysql的配置文件,編輯 /etc/my.cnf.d/server.cnf。在server 模塊下加入下面一些配置。具體配置的含義,可以查閱mysql的相關資料進行了解。

[server]
skip_name_resolve = ON
innodb_file_per_table = ON
innodb_buffer_pool_size = 256M
max_connections = 2000

# 啓用二進制日誌
log-bin = master-log

   數據庫安裝成功之後,可以執行一下mysql_secure_installation 來對數據庫進行安裝初始化。然後使用 systemctl start mariadb.service 來啓動MySQL。

   接下來,我們在mysql中創建用於zabbix 使用的數據庫。

 CREATE DATABASE zbxdb CHARACTER SET 'utf8';

 GRANT ALL PRIVILEGES ON zbxdb.* TO 'zbxuser'@'192.168.0.%' IDENTIFIED BY 'zbxpass';

 FLUSH PRIVILEGES;

安裝zabbix 相關組件

   zabbix 是基於C/S架構的一款監控軟件。同時提供了web端的監控界面。也就是說,在被監控主機上,agent端能夠主動地向server端send數據,而server端也可以主動向agent端去get數據,因此我們需要安裝下面一些基本組件。

 yum install zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-agent zabbix-get zabbix-sender

   使用rpm 命令 rpm -ql zabbix-server-mysql查看一下 zabbix-server-mysql 的安裝文件。

... ...

/usr/share/doc/zabbix-server-mysql-3.4.5/create.sql.gz  

... ...

   將這個壓縮包進行解壓,我們可以使用head 命令來查看文件中內容。

[root@localhost ~]# gzip -d create.sql.gz 

[root@localhost ~]# head -20 create.sql 
CREATE TABLE `users` (
        `userid`                 bigint unsigned                           NOT NULL,
        `alias`                  varchar(100)    DEFAULT ''                NOT NULL,
        `name`                   varchar(100)    DEFAULT ''                NOT NULL,
        `surname`                varchar(100)    DEFAULT ''                NOT NULL,
        `passwd`                 char(32)        DEFAULT ''                NOT NULL,
        `url`                    varchar(255)    DEFAULT ''                NOT NULL,
        `autologin`              integer         DEFAULT '0'               NOT NULL,
        `autologout`             varchar(32)     DEFAULT '15m'             NOT NULL,
        `lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,
        `refresh`                varchar(32)     DEFAULT '30s'             NOT NULL,
        `type`                   integer         DEFAULT '1'               NOT NULL,
        `theme`                  varchar(128)    DEFAULT 'default'         NOT NULL,
        `attempt_failed`         integer         DEFAULT 0                 NOT NULL,
        `attempt_ip`             varchar(39)     DEFAULT ''                NOT NULL,
        `attempt_clock`          integer         DEFAULT 0                 NOT NULL,
        `rows_per_page`          integer         DEFAULT 50                NOT NULL,
        PRIMARY KEY (userid)
) ENGINE=InnoDB;
CREATE UNIQUE INDEX `users_1` ON `users` (`alias`); 

   可以看出這是zabbix的建表語句。所以我們直接在之前創建的數據庫中創建zabbix運行所需要的數據庫表就可以。

mysql -uzbxuser -h192.168.0.19 -pzbxpass  zbxdb < create.sql  

修改zabbix配置文件

   進入到 /etc/zabbix目錄下,編輯zabbix-server.conf文件。將與數據庫相關的內容都進行修改一下。


# 發起數據採集請求的主機ip地址
SourceIP=192.168.0.19

# 這一點很重要 需要根據創建數據庫時指定的權限來指定
DBHost=192.168.0.19

DBName=zbxdb

DBUser=zbxuer

DBPassword=zbxpass

   可以通過相關的命令來查看 zabbix 的配置文件中一共有哪些配置,以便對zabbix有一個全面的瞭解。


[root@localhost zabbix]# grep -i "^###" zabbix_server.conf
############ GENERAL PARAMETERS #################
### Option: ListenPort
### Option: SourceIP
### Option: LogType
### Option: LogFile
### Option: LogFileSize
### Option: DebugLevel
### Option: PidFile
### Option: SocketDir
### Option: DBHost
### Option: DBName
### Option: DBSchema
### Option: DBUser
### Option: DBPassword
### Option: DBSocket
### Option: DBPort
### Option: HistoryStorageURL
### Option: HistoryStorageTypes
############ ADVANCED PARAMETERS ################
### Option: StartPollers
### Option: StartIPMIPollers
### Option: StartPreprocessors
### Option: StartPollersUnreachable
### Option: StartTrappers
### Option: StartPingers
### Option: StartDiscoverers
### Option: StartHTTPPollers
### Option: StartTimers
### Option: StartEscalators
### Option: StartAlerters
### Option: JavaGateway
### Option: JavaGatewayPort
### Option: StartJavaPollers
### Option: StartVMwareCollectors
### Option: VMwareFrequency
### Option: VMwarePerfFrequency
### Option: VMwareCacheSize
### Option: VMwareTimeout
### Option: SNMPTrapperFile
### Option: StartSNMPTrapper
### Option: ListenIP
### Option: HousekeepingFrequency
### Option: MaxHousekeeperDelete
### Option: CacheSize
### Option: CacheUpdateFrequency
### Option: StartDBSyncers
### Option: HistoryCacheSize
### Option: HistoryIndexCacheSize
### Option: TrendCacheSize
### Option: ValueCacheSize
### Option: Timeout
### Option: TrapperTimeout
### Option: UnreachablePeriod
### Option: UnavailableDelay
### Option: UnreachableDelay
### Option: AlertScriptsPath
### Option: ExternalScripts
### Option: FpingLocation
### Option: Fping6Location
### Option: SSHKeyLocation
### Option: LogSlowQueries
### Option: TmpDir
### Option: StartProxyPollers
### Option: ProxyConfigFrequency
### Option: ProxyDataFrequency
### Option: AllowRoot
### Option: User
### Option: Include
### Option: SSLCertLocation
### Option: SSLKeyLocation
### Option: SSLCALocation
####### LOADABLE MODULES #######
### Option: LoadModulePath
### Option: LoadModule
####### TLS-RELATED PARAMETERS #######
### Option: TLSCAFile
### Option: TLSCRLFile
### Option: TLSCertFile
### Option: TLSKeyFile

   接下來就可以直接啓動zabbix,使用 systemctl start zabbix-server.service

   剩下的還有一個非常重要的關鍵點。通過rpm -ql zabbix-web命令可以查看到web界面的安裝文件。我們需要對zabbix-web設置時區。我們可以在zabbix-web的配置文件中進行設定,/etc/httpd/conf.d/zabbix.conf,這樣設置的時區僅僅對zabbix的應用有效。當然也可以在PHP的配置文件中進行設定,這樣的話,對於所有的PHP程序都有效。我們就在php的配置文件/etc/php.ini中進行設置。

date.timezone = Asia/Shanghai 

初始化zabbix-web

   zabbix-web的運行需要http服務的支持。所以在安裝zabbix的時候,如果沒有安裝httpd的話,會自動進行安裝。所以我還需要啓動httpd。

systemctl start httpd.service

   啓動瀏覽器,在地址欄輸入http://192.168.0.19/zabbix/就可以看到下面的界面。

zabbix-welcome

   接下來就是檢查zabbix安裝過程中的需要的檢查項,尤其是時區,這裏最容易出現問題。

zabbix-check

   然後就是這隻zabbix數據庫的相關內容,這裏的設置一定要與zabbix的配置文件中數據庫信息一致。

zabbix-db

   接下來就是zabbix服務的相關信息。然後一路安裝就可以了。

zabbix-server-detials

pre-summary

install.

   這樣就zabbix就安裝成功了。接下來使用admin/zabbix 就可以成功登陸zabbix的web管理界面了。

dashboard

總結

   這裏只是介紹了zabbix的安裝。詳細記錄了安裝過程中的每一步操作,以及應該注意的細節。可以將此博客作爲zabbix的安裝手冊來進行使用。在以後的文章中,會介紹zabbix的詳細使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章