1.安裝准備
Zabbix4.0對基礎架構有一定的要求,對的英文尤其PHP狀語從句:MySQL:
| 類型 | 內容 |
|---|---|
| 服務端運行環境 | Linux和PHP與Web服務器和數據庫 |
| 服務端操作系統 | CentOS7.5-1804 |
| PHP | PHP 5.4.0(官方要求5.4.0+) |
| Web服務器 | Apache2.4.6(官方要求1.3.12+) |
| 數據庫 | Percona的服務器57-5.7.22(官方要求5.0.3 - 8.0.x) |
| 安裝方式 | YUM RPM |
| 客戶端操作系統 | AIX / Linux / Windows的 |
2.安裝環境
Zabbix Server運行在CentOS上,Zabbix Agent可以運行主流的操作系統上,本文檔的安裝環境為:
| 類型 | 描述 | 地址 |
|---|---|---|
| ZABBIX服務器 | CentOS7 | 10.1.3.21 |
| Linux的代理的zabbix | CentOS的7.5 | |
| ZABBIX AIX代理 | AIX 6.1 | |
| ZABBIX的Windows代理 | 在Windows Server 2016 |
#3安裝配置的zabbix服務器
3.1。ZABBIX服務器安裝
首先,電子雜志Zabbix官方的YUM源:
值得注意的是,官方的
Yum源文件更新版本可能隨時,本文列出的地址如果無法下載,到可以官方的主站網站尋求最新的版本:HTTP://repo.zabbix.com/zabbix/
# Zabbix 4.0shell> rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm# Zabbix 3.4shell> rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm# Zabbix 3.0shell> rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
其次,電子雜志epel官方的YUM源:
值得注意的是,官方的
Yum源文件更新版本可能隨時,本文列出的地址如果無法下載,到可以官方的主站網站尋求最新的版本:HTTP://ftp.cuhk.edu.hk/pub/linux/ Fedora的-埃佩利/ 7 / x86_64的/封裝/ E /
shell> rpm -ivh http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
然后,安裝依賴包:
shell> yum install httpd php php-mysql php-gd php-bcmath php-common php-xml php-mbstring php-cli
ZABBIX需要的擴展庫PHP:
-php-mysql:使用MySQL作為Zabbix后端所需要的數據庫組件;
-php-gd:PHP GD擴展庫必須支持圖像PNG(--with-png-dir),JPEG圖像(--with-jpeg-dir)狀語從句:FreeType2(--with-freetype-dir);
-php-bcmath:包含所需的bcmath;
-php-common:包含所需的ctype狀語從句:php-session擴展;
-php-xml:的所需所有游戲libXML、xmlreader狀語從句:xmlwriter擴展。
-php-mbstring:的所需所有游戲mbstring擴展。
shell> yum install pcre glibc gcc livevent zlib libcurl-devel curl-devel OpenIPMI-devel libssh2 fping net-snmp-devel perl-DBI openssl-devel iksemel libxml2 ntp
ZABBIX需要的依賴包:
-pcre:為強制安裝的包用來請立即獲取iTunes。Perl Compatible Regular Expression(PCRE);
-gcc:為強制安裝的包。即編譯器,
-glibc:為強制安裝的包。即libc運行庫,其中包含了所需的Libpthread
-libevent:為強制安裝的包,用來支持IPMI;
-zlib:為強制安裝的包用來支持壓縮;
-libcurl-devel、curl-devel:為可選安裝包,建議但安裝用來支持網絡監控;
-OpenIPMI-devel:為可選安裝包,按需安裝請立即獲取iTunes用來。IPMI監控;
-libssh2:為可選安裝包請立即獲取iTunes用來。SSH功能;
-fping:為可選安裝包,建議但安裝請立即獲取iTunes用來。ICMP Ping監控;
-net-snmp-devel:為可選安裝包,按需安裝。用來請立即獲取iTunesSNMP監控點;
-iksemel:為可選安裝包,安裝按需用來請立即獲取iTunes的zabbix報警媒介的Jabber;
-libxml2:為可選安裝包,安裝按需用來請立即獲取iTunes VMware的監控;
-ntp:為可選安裝包,但強烈建議安裝。用來保持的zabbix精准的時間。
最后,安裝Zabbix-Server。
shell> yum install zabbix-agent zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-web
ZABBIX服務端上的安裝包:
-zabbix-agent:為可選安裝包,但在ZABBIX服務器上建議安裝 .Zabbix客戶端代理程序;
-zabbix-server-mysql、zabbix-web-mysql:為強制安裝的包。前者用來存放采集到的數據,后來為前端所需;
-zabbix-get:為可選安裝包,但在服務器的zabbix上建議安裝 .Zabbix用來手動采集數據的命令;
-zabbix-web:為可選安裝包,但在服務器的zabbix上建議安裝 .Zabbix用來監控Web服務的。
-zabbix-java-gateway:為可選安裝包,按需安裝 .Zabbix JAVA采集服務端的,用於JMX的監控方式。ZABBIX客戶端上的安裝包:
-zabbix-agent:為強制安裝包 .Zabbix客戶端代理程序;
-zabbix-sender:為可選安裝包,但強烈建議安裝 .Zabbix向ZABBIX劑手動服務器發送數據的命令;
-zabbix-proxy-mysql:為可選安裝包,按需安裝 .Zabbix是的zabbix代理代理服務的程序,適用於分布式監控環境。
3.2。安裝數據庫(PerconaDB 5.7)
首先,電子雜志PerconaDB官方的YUM源:
值得注意的是,官方的
Yum源文件更新版本可能隨時,本文列出的地址如果無法下載,到可以官方的主站網站尋求最新的版本:HTTPS://www.percona.com/downloads/percona-release/紅帽/
shell> yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
其次,通過YUM方式安裝PerconaDB 57。
shell> yum remove mariadb* #移除自帶的 Mariadbshell> yum install Percona-Server-server-57
再次,修改PerconaDB的配置文件。
shell> cat /etc/my.cnf[client]port = 3306socket = /var/lib/mysql/mysql.sock[mysql]prompt="\u@mysqldb \R:\m:\s [\d]> "no-auto-rehash[mysqld]user= mysqlport = 3306datadir = /data/mysql/socket = /var/lib/mysql/mysql.sockpid-file = mysqldb.pidcharacter-set-server = utf8mb4skip_name_resolve = 1# Timestampexplicit_defaults_for_timestamp = 1# Connectionsback_log = 1024max_connections = 512max_connect_errors = 5120innodb_thread_concurrency = 16# Limitopen_files_limit = 65535innodb_open_files = 65535# Query Cachequery_cache_type = 0query_cache_size = 0# binary logsserver-id = 3306001binlog_format = rowlog-bin = /data/mysql/mysql-binlogexpire_logs_days = 7sync_binlog = 1max_binlog_size = 1Gbinlog_cache_size = 4mmax_binlog_cache_size = 1G# slow queryslow_query_log = 1long_query_time = 2slow_query_log_file = /data/mysql/slow.log# Timeoutinteractive_timeout = 600wait_timeout = 600# Enginedefault-storage-engine = innodb# Bufferkey_buffer_size = 32Mread_buffer_size = 1Msort_buffer_size = 1Mread_rnd_buffer_size = 1Mtmp_table_size = 32Mjoin_buffer_size = 16Mmax_heap_table_size = 32Mmax_tmp_tables = 48thread_cache_size = 32# Timelog_timestamps = SYSTEM# Tablespace & File I/Oinnodb_data_file_path = ibdata1:1G:autoextendinnodb_file_per_table = 1# Redo Loginnodb_flush_log_at_trx_commit = 1innodb_log_file_size = 256Minnodb_log_files_in_group = 2innodb_log_buffer_size = 16M# Innodbinnodb_buffer_pool_size = 1Ginnodb_flush_method = O_DIRECTinnodb_change_buffer_max_size = 50innodb_max_dirty_pages_pct = 30innodb_buffer_pool_load_at_startup = 1innodb_buffer_pool_dump_at_shutdown = 1innodb_io_capacity = 500innodb_io_capacity_max= 1000innodb_support_xa = 0innodb_rollback_on_timeout = 1
值得注意的是:
-如果修改socket的文件位置,那么的zabbix中文件配置DBSocket=參數也。需要修改,的zabbix單方面修改的話會提示連接不到數據庫;
- innodb_buffer_pool_size原則上需要設置為主機內存的80%;
然后,初始化數據庫:
shell> cat /var/log/mysqld.log | grep "A temporary password" | awk -F " " '{print$11}'shell> cat /var/log/mysqld.log2017-04-28T08:07:09.138876Z 1 [Note] A temporary password is generated for root@localhost: y:Pw/=XIS5oqshell> mysqld --initialize --datadir=/data/mysql/shell> systemctl start mysqldshell> systemctl enable mysqldshell> mysqladmin -uroot -p passwordEnter password: # 輸入mysqld.log的臨時密碼New password: # 輸入新的密碼Confirm new password: # 再次輸入以確認Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.shell> mysql -u root -p
最后,在Percona里面創建³³ Zabbix數據庫,並修改權限。
shell> mysql -uroot -proot@mysqldb 17:16: [(none)]> create database zabbix character set utf8;# 創建數據庫 Zabbix,並且使用 utf8 數據庫編碼;Query OK, 1 row affected (0.02 sec)root@mysqldb 17:16: [(none)]> grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'zabb1x@Mysql';# 賦予權限,允許賬戶能從本機連接至數據庫 zabbix,地址寫的為 127.0.0.1,那么后面的相關配置配置就都要寫 localhost,否則連接數據庫就會有問題;Query OK, 0 rows affected, 2 warnings (0.01 sec)root@mysqldb 17:16: [(none)]> flush privileges;# 刷新系統權限Query OK, 0 rows affected (0.02 sec)root@mysqldb 17:16: [(none)]> show databases# 查看創建的數據庫-> ;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || zabbix |+--------------------+5 rows in set (0.01 sec)
3.3。配置NTP時間同步
Zabbix Server對時間的精確要求比較高,時間對數據的計算等都有影響。因此,可以自建NTP服務器,或同步網絡時間。如下,使用Crontab同步網絡時間。
shell> ntpdate -u asia.pool.ntp.org > /dev/null 2>&1shell> systemctl enable ntpdCreated symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.shell> systemctl restart ntpdshell> echo '*/30 * * * * /usr/sbin/ntpdate -u asia.pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root
3.4。導入數據庫
首先,電子雜志Zabbix的數據庫。
shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0shell> lsAUTHORS ChangeLog COPYING create.sql.gz NEWS README
最后,使用Percona來Zabbix的初始數據庫schema狀語從句:數據。
shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0shell> zcat create.sql.gz | mysql -uzabbix -pzabbix zabbixmysql: [Warning] Using a password on the command line interface can be insecure.
3.5。禁用了SELinux以及按需禁用或者配置防火牆
防火牆可以按需配置,可以暫時關閉,后面再進行配置,但Selinux必須關閉,啟動后面否則Zabbix server的時候會報錯。
shell> systemctl disable firewalldRemoved symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.shell> systemctl stop firewalldshell> sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3.6。修改的zabbix服務器的配置文件
在zabbix_server.conf中有很多最需要修改參數,此時先將Zabbix連接Percona的好配置信息,包括先前創建的數據庫,其用戶名和密碼。需要注意的是,的這里必須參數狀語從句:之前創建³³數據庫的信息harmony和諧,后面運行否則Zabbix server時會有無法連接到數據庫的報錯。
shell> pwd/etc/zabbix/shell> vi zabbix_server.confLogFile=/var/log/zabbix/zabbix_server.logLogFileSize=0DebugLevel=3PidFile=/var/run/zabbix/zabbix_server.pidDBHost=localhostDBName=zabbix #91行, 修改為數據庫名(zabbix)DBUser=zabbix #107行, 修改為數據庫用戶名(zabbix)DBPassword=zabbix #115行, 修改為數據庫密碼(zabbix)
3.7。配置PHP
首先,Zabbix需要修改PHP的時區。
shell> sed -i "s@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g" /etc/httpd/conf.d/zabbix.conf
最后,修改一些適當PHP配置文件的參數。
shell> cat /etc/httpd/conf.d/zabbix.confmax_execution_time 600memory_limit 256Mpost_max-size 32Mupload_max_filesize 32Mmax_input_time 600
3.8。修改網頁顯示文字為微軟雅黑
首先,雅微軟黑的字體將msyh.ttf上傳到/usr/share/zabbix/fonts/目錄下:
shell> pwd/usr/share/zabbix/fontsshell> lltotal 21260lrwxrwxrwx 1 root root 33 Aug 30 19:27 graphfont.ttf -> /etc/alternatives/zabbix-web-font-rwxrwxrwx 1 root root 21767952 May 2 2017 msyh.ttf
最后,修改配置文件使用微軟雅黑字體。
將代碼區第2行和第3行的graphfont對划線上傳的中文English字體,本例使用的字體為msyh(代碼區內容所在為63行和行108,vi設置了set=number) 。
shell> vi /usr/share/zabbix/include/defines.inc.php63 define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name108 define('ZBX_FONT_NAME', 'graphfont');
3.9。配置阿帕奇
首先,設置HTTPD開機自啟。並重啟訪問Apache的默認頁面。
shell> systemctl enable httpdCreated symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.shell> systemctl restart httpdshell> curl 192.168.88.101<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Apache HTTP Server Test Page powered by CentOS</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
然后,為了安全起見,可以刪除Apache測試頁面。
shell> pwd/etc/httpd/conf.dshell> lsautoindex.conf php.conf README userdir.conf welcome.conf zabbix.conf zabbix.conf.rpmnew# 將 welcome.conf 中的 8 到 11 用 # 注釋。shell> vim welcome.conf1 #2 # This configuration file enables the default "Welcome" page if there3 # is no default index page present for the root URL. To disable the4 # Welcome page, comment out all the lines below.5 #6 # NOTE: if this file is removed, it will be restored on upgrades.7 #8 #<LocationMatch "^/+$">9 # Options -Indexes10 # ErrorDocument 403 /.noindex.html11 #</LocationMatch>
最后,同樣地,為了安全起見,禁用Apache的配置目錄列表。在Apache的配置文件中找到該行,中行的將該Indexes。去掉,並重啟進程。
shell> vim /etc/httpd/conf/httpd.confOptions Indexes FollowSymLinksshell> systemctl restart httpd
3.10。ZABBIX啟動
啟動zabbix-agent狀語從句:zabbix-server,並將其添加到開機自啟動。
shell> systemctl start zabbix-agentshell> systemctl start zabbix-servershell> systemctl enable zabbix-agentshell> systemctl enable zabbix-server
4.網絡的zabbix配置管理頁面
首先,瀏覽器鍵入http:IP/zabbix,點擊Next step進行下一步; 其次,檢查出現會配置的頁面此前。已修改了相應參數,點擊進行下一步:再次,配置出現會。的數據庫頁面其中由修改為,默認,,,之前為建立數據庫的數據庫名狀語從句:用戶名密碼,點擊進行下一步; 此頁默認不需要修改,直接點擊進行下一步; 然后,會出現配置信息匯總頁面,無誤確認點擊后待進行下一步; 點擊完成安裝。最后,完成配置,進入登錄界面,輸入默認的用戶名管理員和密碼ZABBIX,點擊登錄。
PHPPHPNext step
zabbixDatabase hostlocalhost127.0.0.1Database portDatabase nameUserPasswordNext step
Next step
Next step
Finish
Sign in
值得注意的是:如果此后需要修改,可以通過HTTP://ip/zabbix/setup.php地址進行重新配置。
5.升級的zabbix
5.1。主要版本間的升級
首先,主要版本間的升級,需要先閱讀官方的升級說明,再進行升級。
其次,備份Zabbix數據庫。
再次,備份Zabbix Server的配置文件,PHP文件狀語從句:Zabbix二進制文件。
# 配置文件shell> mkdir /opt/zabbix-backup/shell> cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/shell> cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/# PHP 文件和 Zabbix 二進制文件shell> cp -R /usr/share/zabbix/ /opt/zabbix-backup/shell> cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
然后,的新版更新Zabbix官方YUM,並通過YUM UPGRADE進行升級。
shell> rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.centos.noarch.rpmshell> yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
最后,待更新完成后,重新修改中文字體(每次更新后必須修改)。
將代碼行的區graphfont對划線上傳的中文English字體。
shell> vi /usr/share/zabbix/include/defines.inc.phpdefine('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file namedefine('ZBX_FONT_NAME', 'graphfont');
5.1.1。ZABBIX ZABBIX 3.4 3.2升級至
首先,停止Zabbix Server狀語從句:Zabbix agent
shell> systemctl stop zabbix-servershell> systemctl stop zabbix-agent
其次,備份數據庫,Zabbix Server的配置文件,PHP文件狀語從句:Zabbix二進制文件。
再次,的當前卸載Zabbix 3.2版本。
shell> rpm -qa zabbix*shell> yum remove zabbix-agent zabbix-get zabbix-server-mysql zabbix-web-mysqlshell> yum remove zabbix-releaseshell> yum clean all
然后,安裝Zabbix 3.4。
shell> wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpmshell> rpm -ivh zabbix-release-3.4-2.el7.noarch.rpmshell> yum -y install zabbix-agent zabbix-get zabbix-server-mysql zabbix-web-mysql
ZABBIX恢復之前的配置文件
shell> cd /etc/zabbix/shell> mv zabbix_agentd.conf zabbix_agentd.conf.bakshell> mv zabbix_agentd.conf.rpmsave zabbix_agentd.confshell> mv zabbix_server.conf zabbix_server.conf.bakshell> mv zabbix_server.conf.rpmsave zabbix_server.conf
重新配置下的zabbix前端的配置文件
shell> vim /etc/httpd/conf.d/zabbix.confmax_execution_time 600memory_limit 256Mpost_max-size 32Mupload_max_filesize 32Mmax_input_time 600php_value date.timezone Asia/Shanghai
最后,啟動Zabbix3.4,並檢查數據庫的升級日志。
shell> systemctl start httpdshell> systemctl start zabbix-servershell> systemctl start zabbix-agentshell> cat /var/log/zabbix/zabbix-server.log21485:20171117:153926.908 Starting Zabbix Server. Zabbix 3.4.4 (revision 74338).21485:20171117:153926.908 ****** Enabled features ******21485:20171117:153926.908 SNMP monitoring: YES21485:20171117:153926.908 IPMI monitoring: YES21485:20171117:153926.908 Web monitoring: YES21485:20171117:153926.908 VMware monitoring: YES21485:20171117:153926.908 SMTP authentication: YES21485:20171117:153926.908 Jabber notifications: YES21485:20171117:153926.908 Ez Texting notifications: YES21485:20171117:153926.908 ODBC: YES21485:20171117:153926.908 SSH2 support: YES21485:20171117:153926.908 IPv6 support: YES21485:20171117:153926.908 TLS support: YES21485:20171117:153926.908 ******************************21485:20171117:153926.908 using configuration file: /etc/zabbix/zabbix_server.conf21485:20171117:153926.915 current database version (mandatory/optional): 03020000/0302000121485:20171117:153926.915 required mandatory version: 0304000021485:20171117:153926.915 optional patches were found21485:20171117:153926.915 starting automatic database upgrade21485:20171117:153926.920 completed 0% of database upgrade21485:20171117:153926.929 completed 1% of database upgrade......21485:20171117:154003.058 completed 98% of database upgrade21485:20171117:154003.089 completed 99% of database upgrade21485:20171117:154003.984 completed 100% of database upgrade21485:20171117:154003.984 database upgrade fully completed21485:20171117:154004.469 server #0 started [main process]21514:20171117:154004.470 server #1 started [configuration syncer #1]......21626:20171117:154011.249 server #81 started [preprocessing worker #3]21624:20171117:154011.250 server #79 started [preprocessing worker #1]21625:20171117:154011.258 server #80 started [preprocessing worker #2]
5.1.2。ZABBIX ZABBIX 4.0 3.4升級至
5.2。次要版本升級
升級要如果Zabbix的版本次要(例如,從升級至4.0.1 4.0.3),是非常容易的:
shell> yum upgrade zabbix*
待升級完成后,重新修改中文字體(每次更新后必須修改)。
將代碼行的區graphfont對划線上傳的中文English字體。
shell> vi /usr/share/zabbix/include/defines.inc.phpdefine('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file namedefine('ZBX_FONT_NAME', 'graphfont');
#6安裝配置的zabbix代理
6.1。獲取的zabbix代理
從Zabbix Download電子雜志下載地址:
下載地址:https://www.zabbix.com/download
6.2。安裝配置LINXU代理
在CentOS上安裝Zabbix agent,可以通過YUM安裝直接安裝RPM包,還可以通過源碼編譯安裝,在Zabbix 3.4版本之前,提供還官方Precompiled agents介質,下面使用YUM直接安裝:
首先,客戶端添加官方YUM,並通過YUM安裝Zabbix agent:
shell> rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpmshell> yum install zabbix_agent
然后,按需根據修改配置文件:
shell> vi /etc/zabbix/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pid # agent pid 的運行目錄LogFile=/var/log/zabbix/zabbix_agentd.log # agent 運行日志目錄Server=10.1.3.21 # 被動模式服務器地址ServerActive=10.1.3.21:10051 # 主動模式服務器地址Hostname=Linux Host # 本機主機名或 IP 地址
最后,配置防火牆,啟動Zabbix agent,並配置開機自啟:
shell> systemctl start zabbix-agentshell> systemctl enable zabbix-agent
6.3。安裝配置AIX代理
在AIX上安裝Zabbix agent,有兩種安裝方式。為一種官從網下載預編譯好的介質(預編譯劑)進行安裝,另一種是通過源碼包編譯安裝。
值得注意的是,Zabbix agent已從3.0LTS版本開始便不再請立即獲取iTunes AIX 6.1之前的版本,建議在AIX低對應版本使用的Zabbix agent版本,其對應版本支持如下:
| ZABBIX代理版本 | AXI支持的版本 |
|---|---|
| ZABBIX 4.0 | AIX 7.1 |
| ZABBIX 3.0LTS | AIX 7.1 |
| ZABBIX 2.4 | AIX 6.1 |
| ZABBIX 2.4 | AIX 5.3 |
6.3.1。預編譯文件安裝AIX代理
首先,從官網下載頁面下載預編譯好的介質(預編譯劑),並解壓到目標位置,解壓目標位置可以根據需要決定。
shell> cd /Zabbixshell> gunzip zabbix_agents_2.4.4.aix6100.powerpc.tar.gzshell> tar xvf zabbix_agents_2.4.4.aix6100.powerpc.tar
其次,添加Zabbix用戶狀語從句:用戶組:
shell> mkgroup zabbixshell> useradd -g zabbix -m zabbixshell> chuser login=false zabbix
再次,文件配置狀語從句:將agent二進制進程復制文件到指定目錄下:
shell> cp -r /Zabbix/conf/zabbix_agentd/ /usr/local/etc/shell> cp /Zabbix/conf/zabbix_agentd.conf /usr/local/etcshell> cp /Zabbix/sbin/zabbix_agentd /usr/local/sbin/
根據當前環境修改配置文件:
shell> vi /usr/local/etc/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pid # agent pid的運行目錄LogFile=/var/log/zabbix/zabbix_agentd.log # agent運行日志目錄Server=10.1.3.21 # 被動模式服務器地址ServerActive=10.1.3.21:10051 # 主動模式服務器地址Hostname=AIX Host # 本機主機名
然后,添加隨系統開機自啟動(AIX6.1)的對應將需要Zabbix Agent的源碼包下載下來zabbix-2.4.8.tar.gz,待解壓后,將目錄zabbix-2.4.8\misc\init.d\aix下zabbix_agentd文件拷貝產品到/etc/rc.d/rc2.d下:
shell> cat zabbix_agentd#!/bin/sh#!/bin/sh################################################################ Zabbix agent daemon init script##########################################################case $1 instart)/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ;;stop)kill -TERM `cat /tmp/zabbix_agentd.pid` ;;restart)$0 stopsleep 10$0 start;;*)echo "Usage: $0 start|stop|restart"exit 1esac
最新,增設相應權限,並啟動Zabbix agent進程。
shell> chmod +x /usr/local/sbin/zabbix_agentd # 賦予 agent 進程可執行權限shell> chmod +x /etc/rc.d/rc2.d/zabbix_agentd # 賦予 agent 開機自啟進程可執行權限shell> mkdir /var/log/zabbix # 建立 agent 日志目錄shell> chown -R zabbix:zabbix /var/log/zabbix # 設置 agent 日志目錄屬主shell> mkdir /var/run/zabbix # 建立 agent pid 目錄shell> chown -R zabbix:zabbix /var/run/zabbix # 設置 agent pid 目錄屬主shell> /etc/rc.d/rc2.d/zabbix_agentd start # 啟動 agent 進程
6.3.2。通過源碼文件安裝AIX代理
通過源碼文件編譯安裝,需要先解決依賴包,待所有依賴包安裝完成后,即可編譯安裝Zabbix agent。
shell> rpm -ivh libgcc-4.8.5-1.aix6.1.ppc.rpmshell> rpm -ivh libstdc++-4.8.3-1.aix6.1.ppc.rpmshell> rpm -ivh libstdc++-devel-4.8.3-1.aix6.1.ppc.rpmshell> rpm -ivh gmp-6.0.0a-1.aix5.1.ppc.rpmshell> rpm -ivh mpfr-3.1.2-1.aix5.1.ppc.rpmshell> rpm -ivh libmpc-1.0.2-1.aix5.1.ppc.rpmshell> rpm -ivh gcc-4.8.5-1.aix6.1.ppc.rpm --nodepsshell> rpm -ivh gcc-cpp-4.8.5-1.aix6.1.ppc.rpm --nodepsshell> rpm -ivh gcc-gfortran-4.8.5-1.aix6.1.ppc.rpm --nodepsshell> rpm -ivh libstdcplusplus-4.8.5-1.aix6.1.ppc.rpmshell> rpm -ivh libstdcplusplus-devel-4.8.5-1.aix6.1.ppc.rpm --nodepsshell> gunzip -c zabbix-2.4.8.tar.gz |tar -xvf -shell> cd zabbix-2.4.8shell> ./configure --enable-agentshell> make && make install
6.4。安裝配置Windows代理程序
首先,在Windows上安裝Zabbix agent,從官網下載預編譯好的介質(預編譯劑),並解壓到目標位置,解壓目標位置可以根據需要決定,區代碼為下Windows上的Zabbix agent目錄結構文件:
C:\Zabbix>tree /f卷 System 的文件夾 PATH 列表卷序列號為 758F-5472C:.├─bin│ ├─win32│ │ │ zabbix_agentd.exe│ │ │ zabbix_get.exe│ │ │ zabbix_sender.exe│ │ ││ │ └─dev│ │ zabbix_sender.dll│ │ zabbix_sender.lib│ ││ └─win64│ │ zabbix_agentd.exe│ │ zabbix_get.exe│ │ zabbix_sender.exe│ ││ └─dev│ zabbix_sender.dll│ zabbix_sender.lib│└─confzabbix_agentd.win.conf
其次,修改zabbix_agentd.win.conf配置文件,其中LogFile的英文的日志存放位置,Server為Zabbix Server的地址,ServerActive為開啟主動模式並配置Zabbix Server的地址,Hostname為客戶端的本地中主機名的或IP地址。
LogFile=c:\Zabbix\zabbix_agentd.logServer=10.1.3.21ServerActive=10.1.3.21:10051Hostname= Windows Host
然后,執行安裝命令進行安裝。其中,-i參數為安裝指令,-c參數為執行配置文件的目,-s為啟動Zabbix agent服務。
C:\Zabbix\bin\win64>zabbix_agentd.exe -i -c "C:\Zabbix\conf\zabbix_agentd.win.conf"C:\Zabbix\bin\win64>zabbix_agentd.exe -s
最后,zabbix_agentd.exe還有更多的命令語法,建議通過--help參數進行查看:
C:\Zabbix\bin\win64>zabbix_agentd.exe --helpusage:zabbix_agentd.exe [-c config-file]zabbix_agentd.exe [-c config-file] -pzabbix_agentd.exe [-c config-file] -t item-keyzabbix_agentd.exe [-c config-file] -i [-m]zabbix_agentd.exe [-c config-file] -d [-m]zabbix_agentd.exe [-c config-file] -s [-m]zabbix_agentd.exe [-c config-file] -x [-m]zabbix_agentd.exe -hzabbix_agentd.exe -VA Zabbix daemon for monitoring of various server parameters.Options:-c --config config-file Absolute path to the configuration file(default: "C:\zabbix_agentd.conf")-f --foreground Run Zabbix agent in foreground-p --print Print known items and exit-t --test item-key Test specified item and exit-m --multiple-agents For -i -d -s -x functions service name willinclude Hostname parameter specified inconfiguration fileFunctions:-i --install Install Zabbix agent as service-d --uninstall Uninstall Zabbix agent from service-s --start Start Zabbix agent service-x --stop Stop Zabbix agent service-h --help Display this help message-V --version Display version numberExample: zabbix_agentd -c C:\zabbix\zabbix_agentd.confReport bugs to: <https://support.zabbix.com>Zabbix home page: <http://www.zabbix.com>Documentation: <https://www.zabbix.com/documentation>
7.官方系統模板的擴展
7.1。窗口計數器鍵值
| 描述 | 鍵值 |
|---|---|
| 平均硬盤寫入隊列長度 | perf_counter [\ 234(_Total)\ 1404] |
| 平均硬盤讀入隊列長度 | perf_counter {\ 234(_Total)\ 1402} |
| 文件每秒字節/秒 | perf_counter [\ 2 \ 18] |
| 文件每秒讀字節/秒 | perf_counter [\ 2 \ 16] |
| 物理硬盤空閑率 | perf_counter [ “\物理磁盤(_Total)\%空閑時間”,300] |
| 物理硬盤繁忙率 | perf_counter [ “\物理磁盤(_Total)\%磁盤時間”,300] |
| 硬盤平均隊列長度 | perf_counter [ “\物理磁盤(_Total)\平均磁盤隊列長度”,300] |
## 7.2。監控Windows和Linux和AIX用戶登錄
7.2.1。監控Linux的用戶登錄
關於監控Linux的用戶登錄,的英文利用Zabbix自帶功能的日志監控點的監控點的的Linux的/var/log/secure日志,有當用戶登錄失敗或者用戶在非常規時間登錄成功時觸發告警。
首先,使用Zabbix提供的鍵值'log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>]'來監控點的Linux的/var/log/secure文件先介紹下這個鍵值:
該監控項類型是的zabbix劑(活性),Log.Zabbix劑返回數據類型是需要對監控的日志文件有可讀權限,否則會返回不受支持。
參數介紹:
-文件:日志文件的全路徑,
-正則表達式:過濾日志的正則表達式;
-編碼:字符編碼,默認為英文單字節的SBC(單字節字符集),
- MAXLINES:代理每秒發送給服務器(或代理)的數據的最大行數,會參數掉覆蓋這個zabbix_agentd.conf配置文件里的'MaxLinesPerSecond'參數;
-模式:可選填參數,即對於(默認)或跳過(跳過舊數據)
- 輸出:自定義格式化輸出,。默認輸出的正則表達式匹配的整行數據。轉義字符'\0'表示regexp匹配的數據,轉義字符'\N'(N=1..9)表示regexp里第ñ個分組匹配到的數據。如果填其他字符串就會覆蓋掉的regexp匹配的數據。
其次,在Linux模版Template_OS_Linux_Chinese下的增加登錄審核監控點的項:
項目名稱:用戶登錄審核類型:Zabbix端點代理程式(主動式)鍵值:log[/var/log/secure,"(Accepted|Failed) password",,,skip,]數據類型:日志數據庫更新間隔(秒):60歷史數據存儲日期:90應用集:security
注意:正則表達式為
"(Accepted|Failed) password",過濾/var/log/secure中的或正確的用戶登錄失敗請求(這里只過濾密碼驗證方式的登錄)。
創建登錄失敗的觸發器:
名稱:用戶登錄失敗在主機{HOST.NAME}表達式:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Failed)}=1 and {Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0嚴重性:警告
該表達式含義為:如果用戶登錄失敗了,監控項返回的數據中會包含
Failed,則觸發器被觸發如果在60秒內沒有接收新數據的話,則觸發器恢復,這樣就能保證觸發器不會一直在觸發狀態。
下面把表達式拆解分析:A:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Failed)}=1,表示如果字符串中包含`Failed`則表達式為真;B:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0,表示如果60秒內有接收數據則表達式為真,反之則表達式為假。邏輯為 A and B,表示同時符合 A 和 B 兩個條件(同時為真),觸發器才會觸發。
再次,創建登錄成功的觸發器:
名稱:用戶於非工作時間登錄成功在主機{HOST.NAME}表達式:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Accepted)}=1 and {Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0 and ({Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}<080000 or {Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}>200000)嚴重性:警告
該表達式的含義為:20晚上點到早上8點之間如果有用戶登錄成功了,且監控項返回數據中會包含
Accepted,則觸發器被觸發,如果60內秒沒有接收到新數據的話教育,則觸發器恢復。
下面把表達式拆解分析:A:{Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Accepted)}=1。表示如果字符串中包含`Accepted`則表達式為真;B: {Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0。表示如果 60 秒內有接收到數據則表達式為真,反之則表達式為假。C:{Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}<080000。表示當前時間小於 8 點(08:00:00)則表達式為真;D: {Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}>200000。表示當前時間大於晚上 8 點(20:00:00)則表達式為真。邏輯為 A and B and(C or D)。表示 A 和 B 要同時為真且 C 和 D 只要一個為真,則整個表達式為真,觸發器才會觸發。
然后,日志監控點的需要因為Agent為主動模式,那么在Agent上需要額外配置ServerActive參數。文件配置在zabbix_agentd.conf的ServerActive參數定義了Zabbix Server的地址端口狀語從句:。
shell> cat /etc/zabbix/zabbix_agentd.confServerActive=10.1.3.21:10051
同時,需要修改/var/log/secure被監控點的文件的權限,/var/log/secure默認權限為600,用戶增加需要zabbix的可讀權限,命令如下:
shell> setfacl -m u:zabbix:r-- /var/log/secure
最后,修改logrotate配置。
shell> sed -i '/kill/a\/usr\/bin\/setfacl -m u:zabbix:r-- \/var\/log\/secure' /etc/logrotate.d/syslog
7.2.2。監控AIX用戶登錄
由於在AIX系統-上的局限性,用戶登錄審核日志位於/etc/securrity/failedlogin(登錄失敗)和/var/adm/wtmp(登錄成功)文件中,兩個這文件得用讀取並且who命令讀取,顯然Zabbix自帶的日志監控點無法滿足需求,只能通過UserParameter自定義key來電子雜志。
首先,參照兩個文件的輸出內容,可以看到登錄信息記錄均為單行,不會跨行,是以每行記錄一次用戶登錄行為,那么可以統計這個文件的行數來達到需求:
shell> who /etc/security/failedloginroot ssh Apr 11 13:47 (10.3.10.242)shell> who /var/adm/wtmproot pts/1 Apr 11 11:08 (10.3.10.242)shell> who /etc/security/failedlogin | wc -l1
其次,在確定了監控思路的情況下,着手在可以Agent上自定義key:
shell> cat /usr/local/etc/zabbix* | grep ^UserParameterUserParameter=aix.failedlogin,sudo -u root /usr/bin/who /etc/security/failedlogin | wc -lUserParameter=aix.acceptedlogin,sudo -u root /usr/bin/who /var/adm/wtmp | wc -lshell> /etc/rc.d/rc2.d/zabbix_agentd restart
再次,由於AIX的比較嚴格控制權限,Agent上的Zabbix用戶無法讀取這兩個文件系統- ,安裝通過只能sudo來完成操作讀取,並配置sudo,兩個丟文件的增加who命令執行權限:
shell> rpm -ivh sudo-1.7.0-2.aix6.1.ppc.rpmshell> cat /etc/sudoerszabbix ALL=(root)NOPASSWD:/usr/bin/who /etc/security/failedloginzabbix ALL=(root)NOPASSWD:/usr/bin/who /var/adm/wtmp
從次,在Zabbix Server端的增加監控點的項,為項在監控點的agent上好的定義自定義key:
用戶登錄成功監控項:名稱:用戶登錄成功信息類型:Zabbix代理鍵值:aix.acceptedlogin數據類型:數字的(無正負)數據類型:十進位數字數據更新間隔(秒):60應用集:Security用戶登錄失敗監控項:名稱:用戶登錄失敗監控項目類型:Zabbix代理鍵值:aix.failedlogin數據類型:數字的(無正負)數據類型:十進位數字數據更新間隔(秒):60應用集:Security
最后,創建其觸發器,
創建用戶登錄成功觸發器:名稱: 用戶於非工作時間登錄成功在主機{HOST.NAME}, 請登錄系統進行檢查表達式: {Template_OS_AIX_Chinese:aix.acceptedlogin.change(0)}<>0 and {Template_OS_AIX_Chinese:aix.acceptedlogin.nodata(60)}=0 and ({Template_OS_AIX_Chinese:aix.acceptedlogin.time(0)}<080000 or {Template_OS_AIX_Chinese:aix.acceptedlogin.time(0)}>200000)嚴重性: 警告
該表達式的含義為:在晚上20點到早上8點之間如果有用戶登錄成功了,項報道查看監控點數據御姐
acceptedlogin與上次采集變化發生的值,且在60秒內有新數據產生的話,則觸發觸發器,反之觸發器恢復。基本思路和Linux的登錄監控觸發器思路相同。
創建用戶登錄失敗觸發器:名稱:用戶登錄失敗在主機{HOST.NAME}, 請登錄系統進行檢查表達式:{Template_OS_AIX_Chinese:aix.failedlogin.change(0)}<>0 and {Template_OS_AIX_Chinese:aix.failedlogin.nodata(60)}=0嚴重性:一般嚴重
該表達式的含義為:項報道查看監控點數據如果
failedlogin與上次采集變化發現的值,且在60秒內有新數據產生的話,則觸發觸發器,若在60秒內沒有新數據的話,觸發器恢復。基本思路和Linux的登錄失敗觸發器思路相同。
7.2.3。監控的Windows用戶登錄
關於Windows用戶登錄的日志,全部記錄在事件管理器中根據事件管理器中的記錄,在視窗模版新建登錄成功和失敗監控項:
首先,參照在事件管理器中的用戶登錄成功審核記錄,創建對應登錄成功的監控項:
名稱:Windows Users Login Successful類型:Zabbix端點代理程式(主動式)鍵值:eventlog[Security,,"Success Audit",,^4624$,,skip]數據類型:日志數據更新間隔(秒):30應用集:Login
該監控項中,類型選擇
Zabbix agent(active),數據類型選擇Log,監控點的間隔60秒其中,項監控。Key的大用參數括號包裹,用逗號分隔,下面解釋各項參數的含義:
-Security:事件的日志名稱:
-Success Audit:事件的Severity;
-^4624$:這是一個正則表達式,匹配事件ID等於4624的日志;
-skip:含義該不的英文監控點已產生的歷史日志,如果省略skip,監控點會符合所有條件以上的歷史日志信息。
其次,參照在事件管理器中的用戶登錄失敗審核記錄,創建對應登錄失敗的監控項:
名稱:Windows Usesr Login Failure類型:Zabbix端點代理程式(主動式)鍵值:eventlog[Security,,"Failure Audit",,^4625$,,skip]數據類型:日志數據更新間隔(秒):60應用集:Login
從次,創建登錄成功的觸發器:
名稱:Windows Users Login Successful On {HOST.NAME}表達式:{Template_OS_Windows_Chinese:eventlog[Security,,"Success Audit",,^4624$,,skip].nodata(60)}=0 and {Template_OS_Windows_Chinese:eventlog[Security,,"Success Audit",,^4624$,,skip].str(Advapi)}=0嚴重性:資訊
表達式的含義為:如果在60秒內有監控到數據,所有游戲不內容字符串監控點並且
Advapi則觸發告警,如果60秒內沒有新的數據了,則觸發器恢復正常; 簡單點說就是,用戶登錄后觸發器觸發至少會持續60秒,如果用戶不斷的登錄成功,間隔小於60秒,則觸發器一直是狀態的問題。
然后,創建登錄失敗的觸發器:
名稱:Windows Users Login Failure On {HOST.NAME}表達式:{Template_OS_Windows_Chinese:eventlog[Security,,"Failure Audit",,^4625$,,skip].nodata(60)}=0 and {Template_OS_Windows_Chinese:eventlog[Security,,"Failure Audit",,^4625$,,skip].str(Advapi)}=0嚴重性:警告
表達式的含義為:如果在60秒內有監控到數據,所有游戲不內容字符串監控點並且
Advapi則觸發告警,如果60秒后沒有新的數據了,則觸發器恢復正常; 如果有人不斷的惡意破解登錄密碼,你會發現觸發器問題狀態會一直存在。
8.異常處理
8.1。按時間刪除的zabbix歷史數據
首先,停止Zabbix Server,獲取其縮減時間點的時鍾:
shell> date +%s -d "2016-09-30 00:00:01"1475164801
然后,修改MySQL的參數,使Innodb引擎縮減請立即獲取iTunes,並重啟MySQL:
shell> cat /etc/my.cnfskip-newshell> systemctl restart mysql
最后,去時鍾的電子雜志先前使用清理Zabbix的歷史數據:
shell> mysql -uroot -pmysql> use zabbix;Database changedmysql> DELETE FROM `history_uint` WHERE `clock` < 1475164801;Query OK, 13658022 rows affected (19 min 12.00 sec)mysql> optimize table history_uint;Query OK, 23959997 rows affected (11 min 41.36 sec)Records: 23959997 Duplicates: 0 Warnings: 0
8.2。消息隊列堆積
首先,停止Zabbix Server。
shell> systemctl stop zabbix_server
然后,連接數據庫,執行以下語句:
SQL> update alerts set status=2,error='' where status=0 and alerttype=0;SQL> delete from escalations;
最后,重新啟動Zabbix Server。
shell> systemctl start zabbix_server
