Zabbix4.0
對基礎架構有必定的要求,對的英文尤爲PHP
狀語從句:MySQL
:php
類型 | 內容 |
---|---|
服務端運行環境 | 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的 |
Zabbix Server
運行在CentOS
上,Zabbix Agent
能夠運行主流的操做系統上,本文檔的安裝環境爲:html
類型 | 描述 | 地址 |
---|---|---|
ZABBIX服務器 | CentOS7 | 10.1.3.21 |
Linux的代理的zabbix | CentOS的7.5 | |
ZABBIX AIX代理 | AIX 6.1 | |
ZABBIX的Windows代理 | 在Windows Server 2016 |
首先,電子雜誌Zabbix
官方的YUM
源:前端
值得注意的是,官方的
Yum
源文件更新版本可能隨時,本文列出的地址若是沒法下載,到能夠官方的主站網站尋求最新的版本:HTTP://repo.zabbix.com/zabbix/java
# Zabbix 4.0
shell> rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
# Zabbix 3.4
shell> rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# Zabbix 3.0
shell> rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
其次,電子雜誌epel
官方的YUM
源:node
值得注意的是,官方的
Yum
源文件更新版本可能隨時,本文列出的地址若是沒法下載,到能夠官方的主站網站尋求最新的版本:HTTP://ftp.cuhk.edu.hk/pub/linux/ Fedora的-埃佩利/ 7 / x86_64的/封裝/ E /mysql
shell> rpm -ivh http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
而後,安裝依賴包:linux
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
擴展。web
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
。sql
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代理代理服務的程序,適用於分佈式監控環境。
首先,電子雜誌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* #移除自帶的 Mariadb
shell> yum install Percona-Server-server-57
再次,修改PerconaDB
的配置文件。
shell> cat /etc/my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
no-auto-rehash
[mysqld]
user= mysql
port = 3306
datadir = /data/mysql/
socket = /var/lib/mysql/mysql.sock
pid-file = mysqldb.pid
character-set-server = utf8mb4
skip_name_resolve = 1
# Timestamp
explicit_defaults_for_timestamp = 1
# Connections
back_log = 1024
max_connections = 512
max_connect_errors = 5120
innodb_thread_concurrency = 16
# Limit
open_files_limit = 65535
innodb_open_files = 65535
# Query Cache
query_cache_type = 0
query_cache_size = 0
# binary logs
server-id = 3306001
binlog_format = row
log-bin = /data/mysql/mysql-binlog
expire_logs_days = 7
sync_binlog = 1
max_binlog_size = 1G
binlog_cache_size = 4m
max_binlog_cache_size = 1G
# slow query
slow_query_log = 1
long_query_time = 2
slow_query_log_file = /data/mysql/slow.log
# Timeout
interactive_timeout = 600
wait_timeout = 600
# Engine
default-storage-engine = innodb
# Buffer
key_buffer_size = 32M
read_buffer_size = 1M
sort_buffer_size = 1M
read_rnd_buffer_size = 1M
tmp_table_size = 32M
join_buffer_size = 16M
max_heap_table_size = 32M
max_tmp_tables = 48
thread_cache_size = 32
# Time
log_timestamps = SYSTEM
# Tablespace & File I/O
innodb_data_file_path = ibdata1:1G:autoextend
innodb_file_per_table = 1
# Redo Log
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
# Innodb
innodb_buffer_pool_size = 1G
innodb_flush_method = O_DIRECT
innodb_change_buffer_max_size = 50
innodb_max_dirty_pages_pct = 30
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_io_capacity = 500
innodb_io_capacity_max= 1000
innodb_support_xa = 0
innodb_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.log
2017-04-28T08:07:09.138876Z 1 [Note] A temporary password is generated for root@localhost: y:Pw/=XIS5oq
shell> mysqld --initialize --datadir=/data/mysql/
shell> systemctl start mysqld
shell> systemctl enable mysqld
shell> mysqladmin -uroot -p password
Enter 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 -p
root@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)
Zabbix Server
對時間的精確要求比較高,時間對數據的計算等都有影響。所以,能夠自建NTP
服務器,或同步網絡時間。以下,使用Crontab
同步網絡時間。
shell> ntpdate -u asia.pool.ntp.org > /dev/null 2>&1
shell> systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
shell> systemctl restart ntpd
shell> echo '*/30 * * * * /usr/sbin/ntpdate -u asia.pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root
首先,電子雜誌Zabbix
的數據庫。
shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0
shell> ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
最後,使用Percona
來Zabbix
的初始數據庫schema
狀語從句:數據。
shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0
shell> zcat create.sql.gz | mysql -uzabbix -pzabbix zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.
防火牆能夠按需配置,能夠暫時關閉,後面再進行配置,但Selinux
必須關閉,啓動後面不然Zabbix server
的時候會報錯。
shell> systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
shell> systemctl stop firewalld
shell> sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
在zabbix_server.conf
中有不少最須要修改參數,此時先將Zabbix
鏈接Percona
的好配置信息,包括先前建立的數據庫,其用戶名和密碼。須要注意的是,的這裏必須參數狀語從句:以前建立³³數據庫的信息harmony和諧,後面運行不然Zabbix server
時會有沒法鏈接到數據庫的報錯。
shell> pwd
/etc/zabbix/
shell> vi zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix #91行, 修改成數據庫名(zabbix)
DBUser=zabbix #107行, 修改成數據庫用戶名(zabbix)
DBPassword=zabbix #115行, 修改成數據庫密碼(zabbix)
首先,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.conf
max_execution_time 600
memory_limit 256M
post_max-size 32M
upload_max_filesize 32M
max_input_time 600
首先,雅微軟黑的字體將msyh.ttf
上傳到/usr/share/zabbix/fonts/
目錄下:
shell> pwd
/usr/share/zabbix/fonts
shell> ll
total 21260
lrwxrwxrwx 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.php
63 define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
108 define('ZBX_FONT_NAME', 'graphfont');
首先,設置HTTPD
開機自啓。並重啓訪問Apache
的默認頁面。
shell> systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
shell> systemctl restart httpd
shell> 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.d
shell> ls
autoindex.conf php.conf README userdir.conf welcome.conf zabbix.conf zabbix.conf.rpmnew
# 將 welcome.conf 中的 8 到 11 用 # 註釋。
shell> vim welcome.conf
1 #
2 # This configuration file enables the default "Welcome" page if there
3 # is no default index page present for the root URL. To disable the
4 # 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 -Indexes
10 # ErrorDocument 403 /.noindex.html
11 #</LocationMatch>
最後,一樣地,爲了安全起見,禁用Apache
的配置目錄列表。在Apache
的配置文件中找到該行,中行的將該Indexes
。去掉,並重啓進程。
shell> vim /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks
shell> systemctl restart httpd
啓動zabbix-agent
狀語從句:zabbix-server
,並將其添加到開機自啓動。
shell> systemctl start zabbix-agent
shell> systemctl start zabbix-server
shell> systemctl enable zabbix-agent
shell> systemctl enable zabbix-server
首先,瀏覽器鍵入http:IP/zabbix
,點擊Next step
進行下一步; 其次,檢查出現會配置的頁面此前。已修改了相應參數,點擊進行下一步:再次,配置出現會。的數據庫頁面其中由修改成,默認,,,以前爲創建數據庫的數據庫名狀語從句:用戶名密碼,點擊進行下一步; 此頁默認不須要修改,直接點擊進行下一步; 而後,會出現配置信息彙總頁面,無誤確認點擊後待進行下一步; 點擊完成安裝。最後,完成配置,進入登陸界面,輸入默認的用戶名管理員和密碼ZABBIX,點擊登陸。PHP
PHP
Next step
zabbix
Database host
localhost
127.0.0.1
Database port
Database name
User
Password
Next step
Next step
Next step
Finish
Sign in
值得注意的是:若是此後須要修改,能夠經過HTTP://ip/zabbix/setup.php地址進行從新配置。
首先,主要版本間的升級,須要先閱讀官方的升級說明,再進行升級。
其次,備份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.rpm
shell> yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
最後,待更新完成後,從新修改中文字體(每次更新後必須修改)。
將代碼行的區graphfont
對劃線上傳的中文English字體。
shell> vi /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');
首先,中止Zabbix Server
狀語從句:Zabbix agent
shell> systemctl stop zabbix-server
shell> 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-mysql
shell> yum remove zabbix-release
shell> 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.rpm
shell> rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
shell> 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.bak
shell> mv zabbix_agentd.conf.rpmsave zabbix_agentd.conf
shell> mv zabbix_server.conf zabbix_server.conf.bak
shell> mv zabbix_server.conf.rpmsave zabbix_server.conf
從新配置下的zabbix前端的配置文件
shell> vim /etc/httpd/conf.d/zabbix.conf
max_execution_time 600
memory_limit 256M
post_max-size 32M
upload_max_filesize 32M
max_input_time 600
php_value date.timezone Asia/Shanghai
最後,啓動Zabbix3.4
,並檢查數據庫的升級日誌。
shell> systemctl start httpd
shell> systemctl start zabbix-server
shell> systemctl start zabbix-agent
shell> cat /var/log/zabbix/zabbix-server.log
21485:20171117:153926.908 Starting Zabbix Server. Zabbix 3.4.4 (revision 74338).
21485:20171117:153926.908 ****** Enabled features ******
21485:20171117:153926.908 SNMP monitoring: YES
21485:20171117:153926.908 IPMI monitoring: YES
21485:20171117:153926.908 Web monitoring: YES
21485:20171117:153926.908 VMware monitoring: YES
21485:20171117:153926.908 SMTP authentication: YES
21485:20171117:153926.908 Jabber notifications: YES
21485:20171117:153926.908 Ez Texting notifications: YES
21485:20171117:153926.908 ODBC: YES
21485:20171117:153926.908 SSH2 support: YES
21485:20171117:153926.908 IPv6 support: YES
21485:20171117:153926.908 TLS support: YES
21485:20171117:153926.908 ******************************
21485:20171117:153926.908 using configuration file: /etc/zabbix/zabbix_server.conf
21485:20171117:153926.915 current database version (mandatory/optional): 03020000/03020001
21485:20171117:153926.915 required mandatory version: 03040000
21485:20171117:153926.915 optional patches were found
21485:20171117:153926.915 starting automatic database upgrade
21485:20171117:153926.920 completed 0% of database upgrade
21485:20171117:153926.929 completed 1% of database upgrade
...
...
21485:20171117:154003.058 completed 98% of database upgrade
21485:20171117:154003.089 completed 99% of database upgrade
21485:20171117:154003.984 completed 100% of database upgrade
21485:20171117:154003.984 database upgrade fully completed
21485: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]
升級要若是Zabbix
的版本次要(例如,從升級至4.0.1 4.0.3),是很是容易的:
shell> yum upgrade zabbix*
待升級完成後,從新修改中文字體(每次更新後必須修改)。
將代碼行的區graphfont
對劃線上傳的中文English字體。
shell> vi /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');
從Zabbix Download
電子雜誌下載地址:
下載地址:https://www.zabbix.com/download
在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.rpm
shell> yum install zabbix_agent
而後,按需根據修改配置文件:
shell> vi /etc/zabbix/zabbix_agentd.conf
PidFile=/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-agent
shell> systemctl enable zabbix-agent
在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 |
首先,從官網下載頁面下載預編譯好的介質(預編譯劑),並解壓到目標位置,解壓目標位置能夠根據須要決定。
shell> cd /Zabbix
shell> gunzip zabbix_agents_2.4.4.aix6100.powerpc.tar.gz
shell> tar xvf zabbix_agents_2.4.4.aix6100.powerpc.tar
其次,添加Zabbix
用戶狀語從句:用戶組:
shell> mkgroup zabbix
shell> useradd -g zabbix -m zabbix
shell> chuser login=false zabbix
再次,文件配置狀語從句:將agent
二進制進程複製文件到指定目錄下:
shell> cp -r /Zabbix/conf/zabbix_agentd/ /usr/local/etc/
shell> cp /Zabbix/conf/zabbix_agentd.conf /usr/local/etc
shell> cp /Zabbix/sbin/zabbix_agentd /usr/local/sbin/
根據當前環境修改配置文件:
shell> vi /usr/local/etc/zabbix_agentd.conf
PidFile=/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 in
start)
/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ;;
stop)
kill -TERM `cat /tmp/zabbix_agentd.pid` ;;
restart)
$0 stop
sleep 10
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
exit 1
esac
最新,增設相應權限,並啓動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 進程
經過源碼文件編譯安裝,須要先解決依賴包,待全部依賴包安裝完成後,便可編譯安裝Zabbix agent
。
shell> rpm -ivh libgcc-4.8.5-1.aix6.1.ppc.rpm
shell> rpm -ivh libstdc++-4.8.3-1.aix6.1.ppc.rpm
shell> rpm -ivh libstdc++-devel-4.8.3-1.aix6.1.ppc.rpm
shell> rpm -ivh gmp-6.0.0a-1.aix5.1.ppc.rpm
shell> rpm -ivh mpfr-3.1.2-1.aix5.1.ppc.rpm
shell> rpm -ivh libmpc-1.0.2-1.aix5.1.ppc.rpm
shell> rpm -ivh gcc-4.8.5-1.aix6.1.ppc.rpm --nodeps
shell> rpm -ivh gcc-cpp-4.8.5-1.aix6.1.ppc.rpm --nodeps
shell> rpm -ivh gcc-gfortran-4.8.5-1.aix6.1.ppc.rpm --nodeps
shell> rpm -ivh libstdcplusplus-4.8.5-1.aix6.1.ppc.rpm
shell> rpm -ivh libstdcplusplus-devel-4.8.5-1.aix6.1.ppc.rpm --nodeps
shell> gunzip -c zabbix-2.4.8.tar.gz |tar -xvf -
shell> cd zabbix-2.4.8
shell> ./configure --enable-agent
shell> make && make install
首先,在Windows
上安裝Zabbix agent
,從官網下載預編譯好的介質(預編譯劑),並解壓到目標位置,解壓目標位置能夠根據須要決定,區代碼爲下Windows
上的Zabbix agent
目錄結構文件:
C:\Zabbix>tree /f
卷 System 的文件夾 PATH 列表
卷序列號爲 758F-5472
C:.
├─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
│
└─conf
zabbix_agentd.win.conf
其次,修改zabbix_agentd.win.conf
配置文件,其中LogFile
的英文的日誌存放位置,Server
爲Zabbix Server
的地址,ServerActive
爲開啓主動模式並配置Zabbix Server
的地址,Hostname
爲客戶端的本地中主機名的或IP
地址。
LogFile=c:\Zabbix\zabbix_agentd.log
Server=10.1.3.21
ServerActive=10.1.3.21:10051
Hostname= 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 --help
usage:
zabbix_agentd.exe [-c config-file]
zabbix_agentd.exe [-c config-file] -p
zabbix_agentd.exe [-c config-file] -t item-key
zabbix_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 -h
zabbix_agentd.exe -V
A 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 will
include Hostname parameter specified in
configuration file
Functions:
-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 number
Example: zabbix_agentd -c C:\zabbix\zabbix_agentd.conf
Report bugs to: <https://support.zabbix.com>
Zabbix home page: <http://www.zabbix.com>
Documentation: <https://www.zabbix.com/documentation>
描述 | 鍵值 |
---|---|
平均硬盤寫入隊列長度 | 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] |
關於監控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.conf
ServerActive=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
因爲在AIX
系統-上的侷限性,用戶登陸審覈日誌位於/etc/securrity/failedlogin
(登陸失敗)和/var/adm/wtmp
(登陸成功)文件中,兩個這文件得用讀取而且who
命令讀取,顯然Zabbix
自帶的日誌監控點沒法知足需求,只能經過UserParameter
自定義key
來電子雜誌。
首先,參照兩個文件的輸出內容,能夠看到登陸信息記錄均爲單行,不會跨行,是以每行記錄一次用戶登陸行爲,那麼能夠統計這個文件的行數來達到需求:
shell> who /etc/security/failedlogin
root ssh Apr 11 13:47 (10.3.10.242)
shell> who /var/adm/wtmp
root pts/1 Apr 11 11:08 (10.3.10.242)
shell> who /etc/security/failedlogin | wc -l
1
其次,在肯定了監控思路的狀況下,着手在能夠Agent
上自定義key
:
shell> cat /usr/local/etc/zabbix* | grep ^UserParameter
UserParameter=aix.failedlogin,sudo -u root /usr/bin/who /etc/security/failedlogin | wc -l
UserParameter=aix.acceptedlogin,sudo -u root /usr/bin/who /var/adm/wtmp | wc -l
shell> /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.rpm
shell> cat /etc/sudoers
zabbix ALL=(root)NOPASSWD:/usr/bin/who /etc/security/failedlogin
zabbix 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的登陸失敗觸發器思路相同。
關於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秒後沒有新的數據了,則觸發器恢復正常; 若是有人不斷的惡意破解登陸密碼,你會發現觸發器問題狀態會一直存在。
首先,中止Zabbix Server
,獲取其縮減時間點的時鐘:
shell> date +%s -d "2016-09-30 00:00:01"
1475164801
而後,修改MySQL
的參數,使Innodb
引擎縮減請當即獲取iTunes,並重啓MySQL
:
shell> cat /etc/my.cnf
skip-new
shell> systemctl restart mysql
最後,去時鐘的電子雜誌先前使用清理Zabbix
的歷史數據:
shell> mysql -uroot -p
mysql> use zabbix;
Database changed
mysql> 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
首先,中止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