CentOS7 Zabbix4.0环境下的安装和配置实例

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/

  1. # Zabbix 4.0
  2. shell> rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
  3. # Zabbix 3.4
  4. shell> rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
  5. # Zabbix 3.0
  6. shell> 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 /

  1. shell> rpm -ivh http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

然后,安装依赖包:

  1. 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-gdPHP 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扩展。

  1. 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为可选安装包,按需安装。用来请立即获取iTunes SNMP监控点;
iksemel为可选安装包,安装按需用来请立即获取iTunes的zabbix报警媒介的Jabber; 
libxml2为可选安装包,安装按需用来请立即获取iTunes VMware的监控; 
ntp为可选安装包,但强烈建议安装。用来保持的zabbix精准的时间。

最后,安装Zabbix-Server

  1. 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/红帽/

  1. 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

  1. shell> yum remove mariadb* #移除自带的 Mariadb
  2. shell> yum install Percona-Server-server-57

再次,修改PerconaDB的配置文件。

  1. shell> cat /etc/my.cnf
  2. [client]
  3. port = 3306
  4. socket = /var/lib/mysql/mysql.sock
  5. [mysql]
  6. prompt="\u@mysqldb \R:\m:\s [\d]> "
  7. no-auto-rehash
  8. [mysqld]
  9. user= mysql
  10. port = 3306
  11. datadir = /data/mysql/
  12. socket = /var/lib/mysql/mysql.sock
  13. pid-file = mysqldb.pid
  14. character-set-server = utf8mb4
  15. skip_name_resolve = 1
  16. # Timestamp
  17. explicit_defaults_for_timestamp = 1
  18. # Connections
  19. back_log = 1024
  20. max_connections = 512
  21. max_connect_errors = 5120
  22. innodb_thread_concurrency = 16
  23. # Limit
  24. open_files_limit = 65535
  25. innodb_open_files = 65535
  26. # Query Cache
  27. query_cache_type = 0
  28. query_cache_size = 0
  29. # binary logs
  30. server-id = 3306001
  31. binlog_format = row
  32. log-bin = /data/mysql/mysql-binlog
  33. expire_logs_days = 7
  34. sync_binlog = 1
  35. max_binlog_size = 1G
  36. binlog_cache_size = 4m
  37. max_binlog_cache_size = 1G
  38. # slow query
  39. slow_query_log = 1
  40. long_query_time = 2
  41. slow_query_log_file = /data/mysql/slow.log
  42. # Timeout
  43. interactive_timeout = 600
  44. wait_timeout = 600
  45. # Engine
  46. default-storage-engine = innodb
  47. # Buffer
  48. key_buffer_size = 32M
  49. read_buffer_size = 1M
  50. sort_buffer_size = 1M
  51. read_rnd_buffer_size = 1M
  52. tmp_table_size = 32M
  53. join_buffer_size = 16M
  54. max_heap_table_size = 32M
  55. max_tmp_tables = 48
  56. thread_cache_size = 32
  57. # Time
  58. log_timestamps = SYSTEM
  59. # Tablespace & File I/O
  60. innodb_data_file_path = ibdata1:1G:autoextend
  61. innodb_file_per_table = 1
  62. # Redo Log
  63. innodb_flush_log_at_trx_commit = 1
  64. innodb_log_file_size = 256M
  65. innodb_log_files_in_group = 2
  66. innodb_log_buffer_size = 16M
  67. # Innodb
  68. innodb_buffer_pool_size = 1G
  69. innodb_flush_method = O_DIRECT
  70. innodb_change_buffer_max_size = 50
  71. innodb_max_dirty_pages_pct = 30
  72. innodb_buffer_pool_load_at_startup = 1
  73. innodb_buffer_pool_dump_at_shutdown = 1
  74. innodb_io_capacity = 500
  75. innodb_io_capacity_max= 1000
  76. innodb_support_xa = 0
  77. innodb_rollback_on_timeout = 1

值得注意的是:
-如果修改socket的文件位置,那么的zabbix中文件配置DBSocket=参数也。需要修改,的zabbix单方面修改的话会提示连接不到数据库
- innodb_buffer_pool_size原则上需要设置为主机内存的80%;

然后,初始化数据库:

  1. shell> cat /var/log/mysqld.log | grep "A temporary password" | awk -F " " '{print$11}'
  2. shell> cat /var/log/mysqld.log
  3. 2017-04-28T08:07:09.138876Z 1 [Note] A temporary password is generated for root@localhost: y:Pw/=XIS5oq
  4. shell> mysqld --initialize --datadir=/data/mysql/
  5. shell> systemctl start mysqld
  6. shell> systemctl enable mysqld
  7. shell> mysqladmin -uroot -p password
  8. Enter password: # 输入mysqld.log的临时密码
  9. New password: # 输入新的密码
  10. Confirm new password: # 再次输入以确认
  11. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
  12. shell> mysql -u root -p

最后,在Percona里面创建³³ Zabbix数据库,并修改权限。

  1. shell> mysql -uroot -p
  2. root@mysqldb 17:16: [(none)]> create database zabbix character set utf8;
  3. # 创建数据库 Zabbix,并且使用 utf8 数据库编码;
  4. Query OK, 1 row affected (0.02 sec)
  5. root@mysqldb 17:16: [(none)]> grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'zabb1x@Mysql';
  6. # 赋予权限,允许账户能从本机连接至数据库 zabbix,地址写的为 127.0.0.1,那么后面的相关配置配置就都要写 localhost,否则连接数据库就会有问题;
  7. Query OK, 0 rows affected, 2 warnings (0.01 sec)
  8. root@mysqldb 17:16: [(none)]> flush privileges;
  9. # 刷新系统权限
  10. Query OK, 0 rows affected (0.02 sec)
  11. root@mysqldb 17:16: [(none)]> show databases
  12. # 查看创建的数据库
  13. -> ;
  14. +--------------------+
  15. | Database |
  16. +--------------------+
  17. | information_schema |
  18. | mysql |
  19. | performance_schema |
  20. | sys |
  21. | zabbix |
  22. +--------------------+
  23. 5 rows in set (0.01 sec)

3.3。配置NTP时间同步

Zabbix Server对时间的精确要求比较高,时间对数据的计算等都有影响。因此,可以自建NTP服务器,或同步网络时间。如下,使用Crontab同步网络时间。

  1. shell> ntpdate -u asia.pool.ntp.org > /dev/null 2>&1
  2. shell> systemctl enable ntpd
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
  4. shell> systemctl restart ntpd
  5. shell> echo '*/30 * * * * /usr/sbin/ntpdate -u asia.pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root

3.4。导入数据库

首先,电子杂志Zabbix的数据库。

  1. shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0
  2. shell> ls
  3. AUTHORS ChangeLog COPYING create.sql.gz NEWS README

最后,使用PerconaZabbix的初始数据库schema状语从句:数据。

  1. shell> cd /usr/share/doc/zabbix-server-mysql-4.0.0
  2. shell> zcat create.sql.gz | mysql -uzabbix -pzabbix zabbix
  3. mysql: [Warning] Using a password on the command line interface can be insecure.

3.5。禁用了SELinux以及按需禁用或者配置防火墙

防火墙可以按需配置,可以暂时关闭,后面再进行配置,但Selinux必须关闭,启动后面否则Zabbix server的时候会报错。

  1. shell> systemctl disable firewalld
  2. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
  3. Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
  4. shell> systemctl stop firewalld
  5. shell> sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3.6。修改的zabbix服务器的配置文件

zabbix_server.conf中有很多最需要修改参数,此时先将Zabbix连接Percona的好配置信息,包括先前创建的数据库,其用户名和密码。需要注意的是,的这里必须参数状语从句:之前创建³³数据库的信息harmony和谐,后面运行否则Zabbix server时会有无法连接到数据库的报错。

  1. shell> pwd
  2. /etc/zabbix/
  3. shell> vi zabbix_server.conf
  4. LogFile=/var/log/zabbix/zabbix_server.log
  5. LogFileSize=0
  6. DebugLevel=3
  7. PidFile=/var/run/zabbix/zabbix_server.pid
  8. DBHost=localhost
  9. DBName=zabbix #91行, 修改为数据库名(zabbix)
  10. DBUser=zabbix #107行, 修改为数据库用户名(zabbix)
  11. DBPassword=zabbix #115行, 修改为数据库密码(zabbix)

3.7。配置PHP

首先,Zabbix需要修改PHP的时区。

  1. shell> sed -i "s@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g" /etc/httpd/conf.d/zabbix.conf

最后,修改一些适当PHP配置文件的参数。

  1. shell> cat /etc/httpd/conf.d/zabbix.conf
  2. max_execution_time 600
  3. memory_limit 256M
  4. post_max-size 32M
  5. upload_max_filesize 32M
  6. max_input_time 600

3.8。修改网页显示文字为微软雅黑

首先,雅微软黑的字体将msyh.ttf上传到/usr/share/zabbix/fonts/目录下:

  1. shell> pwd
  2. /usr/share/zabbix/fonts
  3. shell> ll
  4. total 21260
  5. lrwxrwxrwx 1 root root 33 Aug 30 19:27 graphfont.ttf -> /etc/alternatives/zabbix-web-font
  6. -rwxrwxrwx 1 root root 21767952 May 2 2017 msyh.ttf

最后,修改配置文件使用微软雅黑字体。
将代码区第2行和第3行的graphfont对划线上传的中文English字体,本例使用的字体为msyh(代码区内容所在为63行和行108,vi设置了set=number) 。

  1. shell> vi /usr/share/zabbix/include/defines.inc.php
  2. 63 define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
  3. 108 define('ZBX_FONT_NAME', 'graphfont');

3.9。配置阿帕奇

首先,设置HTTPD开机自启。并重启访问Apache的默认页面。

  1. shell> systemctl enable httpd
  2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
  3. shell> systemctl restart httpd
  4. shell> curl 192.168.88.101
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  6. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head>
  7. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  8. <title>Apache HTTP Server Test Page powered by CentOS</title>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

然后,为了安全起见,可以删除Apache测试页面。

  1. shell> pwd
  2. /etc/httpd/conf.d
  3. shell> ls
  4. autoindex.conf php.conf README userdir.conf welcome.conf zabbix.conf zabbix.conf.rpmnew
  5. # 将 welcome.conf 中的 8 到 11 用 # 注释。
  6. shell> vim welcome.conf
  7. 1 #
  8. 2 # This configuration file enables the default "Welcome" page if there
  9. 3 # is no default index page present for the root URL. To disable the
  10. 4 # Welcome page, comment out all the lines below.
  11. 5 #
  12. 6 # NOTE: if this file is removed, it will be restored on upgrades.
  13. 7 #
  14. 8 #<LocationMatch "^/+$">
  15. 9 # Options -Indexes
  16. 10 # ErrorDocument 403 /.noindex.html
  17. 11 #</LocationMatch>

最后,同样地,为了安全起见,禁用Apache的配置目录列表。在Apache的配置文件中找到该行,中行的将该Indexes。去掉,并重启进程。

  1. shell> vim /etc/httpd/conf/httpd.conf
  2. Options Indexes FollowSymLinks
  3. shell> systemctl restart httpd

3.10。ZABBIX启动

启动zabbix-agent状语从句:zabbix-server,并将其添加到开机自启动。

  1. shell> systemctl start zabbix-agent
  2. shell> systemctl start zabbix-server
  3. shell> systemctl enable zabbix-agent
  4. shell> 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二进制文件。

  1. # 配置文件
  2. shell> mkdir /opt/zabbix-backup/
  3. shell> cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
  4. shell> cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/
  5. # PHP 文件和 Zabbix 二进制文件
  6. shell> cp -R /usr/share/zabbix/ /opt/zabbix-backup/
  7. shell> cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

然后,的新版更新Zabbix官方YUM,并通过YUM UPGRADE进行升级。

  1. shell> rpm -Uvh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.centos.noarch.rpm
  2. shell> yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

最后,待更新完成后,重新修改中文字体(每次更新后必须修改)。
将代码行的区graphfont对划线上传的中文English字体。

  1. shell> vi /usr/share/zabbix/include/defines.inc.php
  2. define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
  3. define('ZBX_FONT_NAME', 'graphfont');

5.1.1。ZABBIX ZABBIX 3.4 3.2升级至

首先,停止Zabbix Server状语从句:Zabbix agent

  1. shell> systemctl stop zabbix-server
  2. shell> systemctl stop zabbix-agent

其次,备份数据库,Zabbix Server的配置文件,PHP文件状语从句:Zabbix二进制文件。

再次,的当前卸载Zabbix 3.2版本。

  1. shell> rpm -qa zabbix*
  2. shell> yum remove zabbix-agent zabbix-get zabbix-server-mysql zabbix-web-mysql
  3. shell> yum remove zabbix-release
  4. shell> yum clean all

然后,安装Zabbix 3.4

  1. shell> wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
  2. shell> rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
  3. shell> yum -y install zabbix-agent zabbix-get zabbix-server-mysql zabbix-web-mysql

ZABBIX恢复之前的配置文件

  1. shell> cd /etc/zabbix/
  2. shell> mv zabbix_agentd.conf zabbix_agentd.conf.bak
  3. shell> mv zabbix_agentd.conf.rpmsave zabbix_agentd.conf
  4. shell> mv zabbix_server.conf zabbix_server.conf.bak
  5. shell> mv zabbix_server.conf.rpmsave zabbix_server.conf

重新配置下的zabbix前端的配置文件

  1. shell> vim /etc/httpd/conf.d/zabbix.conf
  2. max_execution_time 600
  3. memory_limit 256M
  4. post_max-size 32M
  5. upload_max_filesize 32M
  6. max_input_time 600
  7. php_value date.timezone Asia/Shanghai

最后,启动Zabbix3.4,并检查数据库的升级日志。

  1. shell> systemctl start httpd
  2. shell> systemctl start zabbix-server
  3. shell> systemctl start zabbix-agent
  4. shell> cat /var/log/zabbix/zabbix-server.log
  5. 21485:20171117:153926.908 Starting Zabbix Server. Zabbix 3.4.4 (revision 74338).
  6. 21485:20171117:153926.908 ****** Enabled features ******
  7. 21485:20171117:153926.908 SNMP monitoring: YES
  8. 21485:20171117:153926.908 IPMI monitoring: YES
  9. 21485:20171117:153926.908 Web monitoring: YES
  10. 21485:20171117:153926.908 VMware monitoring: YES
  11. 21485:20171117:153926.908 SMTP authentication: YES
  12. 21485:20171117:153926.908 Jabber notifications: YES
  13. 21485:20171117:153926.908 Ez Texting notifications: YES
  14. 21485:20171117:153926.908 ODBC: YES
  15. 21485:20171117:153926.908 SSH2 support: YES
  16. 21485:20171117:153926.908 IPv6 support: YES
  17. 21485:20171117:153926.908 TLS support: YES
  18. 21485:20171117:153926.908 ******************************
  19. 21485:20171117:153926.908 using configuration file: /etc/zabbix/zabbix_server.conf
  20. 21485:20171117:153926.915 current database version (mandatory/optional): 03020000/03020001
  21. 21485:20171117:153926.915 required mandatory version: 03040000
  22. 21485:20171117:153926.915 optional patches were found
  23. 21485:20171117:153926.915 starting automatic database upgrade
  24. 21485:20171117:153926.920 completed 0% of database upgrade
  25. 21485:20171117:153926.929 completed 1% of database upgrade
  26. ...
  27. ...
  28. 21485:20171117:154003.058 completed 98% of database upgrade
  29. 21485:20171117:154003.089 completed 99% of database upgrade
  30. 21485:20171117:154003.984 completed 100% of database upgrade
  31. 21485:20171117:154003.984 database upgrade fully completed
  32. 21485:20171117:154004.469 server #0 started [main process]
  33. 21514:20171117:154004.470 server #1 started [configuration syncer #1]
  34. ...
  35. ...
  36. 21626:20171117:154011.249 server #81 started [preprocessing worker #3]
  37. 21624:20171117:154011.250 server #79 started [preprocessing worker #1]
  38. 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),是非常容易的:

  1. shell> yum upgrade zabbix*

待升级完成后,重新修改中文字体(每次更新后必须修改)。
将代码行的区graphfont对划线上传的中文English字体。

  1. shell> vi /usr/share/zabbix/include/defines.inc.php
  2. define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
  3. define('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

  1. shell> rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
  2. shell> yum install zabbix_agent

然后,按需根据修改配置文件:

  1. shell> vi /etc/zabbix/zabbix_agentd.conf
  2. PidFile=/var/run/zabbix/zabbix_agentd.pid # agent pid 的运行目录
  3. LogFile=/var/log/zabbix/zabbix_agentd.log # agent 运行日志目录
  4. Server=10.1.3.21 # 被动模式服务器地址
  5. ServerActive=10.1.3.21:10051 # 主动模式服务器地址
  6. Hostname=Linux Host # 本机主机名或 IP 地址

最后,配置防火墙,启动Zabbix agent,并配置开机自启:

  1. shell> systemctl start zabbix-agent
  2. shell> 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代理

首先,从官网下载页面下载预编译好的介质(预编译剂),并解压到目标位置,解压目标位置可以根据需要决定。

  1. shell> cd /Zabbix
  2. shell> gunzip zabbix_agents_2.4.4.aix6100.powerpc.tar.gz
  3. shell> tar xvf zabbix_agents_2.4.4.aix6100.powerpc.tar

其次,添加Zabbix用户状语从句:用户组:

  1. shell> mkgroup zabbix
  2. shell> useradd -g zabbix -m zabbix
  3. shell> chuser login=false zabbix

再次,文件配置状语从句:将agent二进制进程复制文件到指定目录下:

  1. shell> cp -r /Zabbix/conf/zabbix_agentd/ /usr/local/etc/
  2. shell> cp /Zabbix/conf/zabbix_agentd.conf /usr/local/etc
  3. shell> cp /Zabbix/sbin/zabbix_agentd /usr/local/sbin/

根据当前环境修改配置文件:

  1. shell> vi /usr/local/etc/zabbix_agentd.conf
  2. PidFile=/var/run/zabbix/zabbix_agentd.pid # agent pid的运行目录
  3. LogFile=/var/log/zabbix/zabbix_agentd.log # agent运行日志目录
  4. Server=10.1.3.21 # 被动模式服务器地址
  5. ServerActive=10.1.3.21:10051 # 主动模式服务器地址
  6. Hostname=AIX Host # 本机主机名

然后,添加随系统开机自启动(AIX6.1)的对应将需要Zabbix Agent的源码包下载下来zabbix-2.4.8.tar.gz,待解压后,将目录zabbix-2.4.8\misc\init.d\aixzabbix_agentd文件拷贝产品到/etc/rc.d/rc2.d下:

  1. shell> cat zabbix_agentd
  2. #!/bin/sh
  3. #!/bin/sh
  4. ##########################################################
  5. ###### Zabbix agent daemon init script
  6. ##########################################################
  7. case $1 in
  8. start)
  9. /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ;;
  10. stop)
  11. kill -TERM `cat /tmp/zabbix_agentd.pid` ;;
  12. restart)
  13. $0 stop
  14. sleep 10
  15. $0 start
  16. ;;
  17. *)
  18. echo "Usage: $0 start|stop|restart"
  19. exit 1
  20. esac

最新,增设相应权限,并启动Zabbix agent进程。

  1. shell> chmod +x /usr/local/sbin/zabbix_agentd # 赋予 agent 进程可执行权限
  2. shell> chmod +x /etc/rc.d/rc2.d/zabbix_agentd # 赋予 agent 开机自启进程可执行权限
  3. shell> mkdir /var/log/zabbix # 建立 agent 日志目录
  4. shell> chown -R zabbix:zabbix /var/log/zabbix # 设置 agent 日志目录属主
  5. shell> mkdir /var/run/zabbix # 建立 agent pid 目录
  6. shell> chown -R zabbix:zabbix /var/run/zabbix # 设置 agent pid 目录属主
  7. shell> /etc/rc.d/rc2.d/zabbix_agentd start # 启动 agent 进程

6.3.2。通过源码文件安装AIX代理

通过源码文件编译安装,需要先解决依赖包,待所有依赖包安装完成后,即可编译安装Zabbix agent

  1. shell> rpm -ivh libgcc-4.8.5-1.aix6.1.ppc.rpm
  2. shell> rpm -ivh libstdc++-4.8.3-1.aix6.1.ppc.rpm
  3. shell> rpm -ivh libstdc++-devel-4.8.3-1.aix6.1.ppc.rpm
  4. shell> rpm -ivh gmp-6.0.0a-1.aix5.1.ppc.rpm
  5. shell> rpm -ivh mpfr-3.1.2-1.aix5.1.ppc.rpm
  6. shell> rpm -ivh libmpc-1.0.2-1.aix5.1.ppc.rpm
  7. shell> rpm -ivh gcc-4.8.5-1.aix6.1.ppc.rpm --nodeps
  8. shell> rpm -ivh gcc-cpp-4.8.5-1.aix6.1.ppc.rpm --nodeps
  9. shell> rpm -ivh gcc-gfortran-4.8.5-1.aix6.1.ppc.rpm --nodeps
  10. shell> rpm -ivh libstdcplusplus-4.8.5-1.aix6.1.ppc.rpm
  11. shell> rpm -ivh libstdcplusplus-devel-4.8.5-1.aix6.1.ppc.rpm --nodeps
  12. shell> gunzip -c zabbix-2.4.8.tar.gz |tar -xvf -
  13. shell> cd zabbix-2.4.8
  14. shell> ./configure --enable-agent
  15. shell> make && make install

6.4。安装配置Windows代理程序

首先,在Windows上安装Zabbix agent,从官网下载预编译好的介质(预编译剂),并解压到目标位置,解压目标位置可以根据需要决定,区代码为下Windows上的Zabbix agent目录结构文件:

  1. C:\Zabbix>tree /f
  2. System 的文件夹 PATH 列表
  3. 卷序列号为 758F-5472
  4. C:.
  5. ├─bin
  6. ├─win32
  7. zabbix_agentd.exe
  8. zabbix_get.exe
  9. zabbix_sender.exe
  10. └─dev
  11. zabbix_sender.dll
  12. zabbix_sender.lib
  13. └─win64
  14. zabbix_agentd.exe
  15. zabbix_get.exe
  16. zabbix_sender.exe
  17. └─dev
  18. zabbix_sender.dll
  19. zabbix_sender.lib
  20. └─conf
  21. zabbix_agentd.win.conf

其次,修改zabbix_agentd.win.conf配置文件,其中LogFile的英文的日志存放位置,ServerZabbix Server的地址,ServerActive为开启主动模式并配置Zabbix Server的地址,Hostname为客户端的本地中主机名的或IP地址。

  1. LogFile=c:\Zabbix\zabbix_agentd.log
  2. Server=10.1.3.21
  3. ServerActive=10.1.3.21:10051
  4. Hostname= Windows Host

然后,执行安装命令进行安装。其中,-i参数为安装指令,-c参数为执行配置文件的目,-s为启动Zabbix agent服务。

  1. C:\Zabbix\bin\win64>zabbix_agentd.exe -i -c "C:\Zabbix\conf\zabbix_agentd.win.conf"
  2. C:\Zabbix\bin\win64>zabbix_agentd.exe -s

最后,zabbix_agentd.exe还有更多的命令语法,建议通过--help参数进行查看:

  1. C:\Zabbix\bin\win64>zabbix_agentd.exe --help
  2. usage:
  3. zabbix_agentd.exe [-c config-file]
  4. zabbix_agentd.exe [-c config-file] -p
  5. zabbix_agentd.exe [-c config-file] -t item-key
  6. zabbix_agentd.exe [-c config-file] -i [-m]
  7. zabbix_agentd.exe [-c config-file] -d [-m]
  8. zabbix_agentd.exe [-c config-file] -s [-m]
  9. zabbix_agentd.exe [-c config-file] -x [-m]
  10. zabbix_agentd.exe -h
  11. zabbix_agentd.exe -V
  12. A Zabbix daemon for monitoring of various server parameters.
  13. Options:
  14. -c --config config-file Absolute path to the configuration file
  15. (default: "C:\zabbix_agentd.conf")
  16. -f --foreground Run Zabbix agent in foreground
  17. -p --print Print known items and exit
  18. -t --test item-key Test specified item and exit
  19. -m --multiple-agents For -i -d -s -x functions service name will
  20. include Hostname parameter specified in
  21. configuration file
  22. Functions:
  23. -i --install Install Zabbix agent as service
  24. -d --uninstall Uninstall Zabbix agent from service
  25. -s --start Start Zabbix agent service
  26. -x --stop Stop Zabbix agent service
  27. -h --help Display this help message
  28. -V --version Display version number
  29. Example: zabbix_agentd -c C:\zabbix\zabbix_agentd.conf
  30. Report bugs to: <https://support.zabbix.com>
  31. Zabbix home page: <http://www.zabbix.com>
  32. 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,&lt;regexp>,&lt;encoding>,&lt;maxlines>,&lt;mode>,&lt;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下的增加登录审核监控点的项:

  1. 项目名称:用户登录审核
  2. 类型:Zabbix端点代理程式(主动式)
  3. 键值:log[/var/log/secure,"(Accepted|Failed) password",,,skip,]
  4. 数据类型:日志
  5. 数据库更新间隔(秒):60
  6. 历史数据存储日期:90
  7. 应用集:security

注意:正则表达式为"(Accepted|Failed) password",过滤/var/log/secure中的或正确的用户登录失败请求(这里只过滤密码验证方式的登录)。

创建登录失败的触发器:

  1. 名称:用户登录失败在主机{HOST.NAME}
  2. 表达式:{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
  3. 严重性:警告

该表达式含义为:如果用户登录失败了,监控项返回的数据中会包含Failed,则触发器被触发如果在60秒内没有接收新数据的话,则触发器恢复,这样就能保证触发器不会一直在触发状态。

  1. 下面把表达式拆解分析:
  2. A:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Failed)}=1,表示如果字符串中包含`Failed`则表达式为真;
  3. B:{Template_OS_Linux_Chinese:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0,表示如果60秒内有接收数据则表达式为真,反之则表达式为假。
  4. 逻辑为 A and B,表示同时符合 A B 两个条件(同时为真),触发器才会触发。

再次,创建登录成功的触发器:

  1. 名称:用户于非工作时间登录成功在主机{HOST.NAME}
  2. 表达式:{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)
  3. 严重性:警告

该表达式的含义为:20晚上点到早上8点之间如果有用户登录成功了,且监控项返回数据中会包含Accepted,则触发器被触发,如果60内秒没有接收到新数据的话教育,则触发器恢复。

  1. 下面把表达式拆解分析:
  2. A:{Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].str(Accepted)}=1。表示如果字符串中包含`Accepted`则表达式为真;
  3. B: {Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].nodata(60)}=0。表示如果 60 秒内有接收到数据则表达式为真,反之则表达式为假。
  4. C:{Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}<080000。表示当前时间小于 8 点(08:00:00)则表达式为真;
  5. D: {Template OS Linux:log[/var/log/secure,"(Accepted|Failed) password",,,skip,].time(0)}>200000。表示当前时间大于晚上 8 点(20:00:00)则表达式为真。
  6. 逻辑为 A and B andC or D)。表示 A B 要同时为真且 C D 只要一个为真,则整个表达式为真,触发器才会触发。

然后,日志监控点的需要因为Agent为主动模式,那么在Agent上需要额外配置ServerActive参数。文件配置在zabbix_agentd.confServerActive参数定义了Zabbix Server的地址端口状语从句:。

  1. shell> cat /etc/zabbix/zabbix_agentd.conf
  2. ServerActive=10.1.3.21:10051

同时,需要修改/var/log/secure被监控点的文件的权限,/var/log/secure默认权限为600,用户增加需要zabbix的可读权限,命令如下:

  1. shell> setfacl -m u:zabbix:r-- /var/log/secure

最后,修改logrotate配置。

  1. 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来电子杂志。

首先,参照两个文件的输出内容,可以看到登录信息记录均为单行,不会跨行,是以每行记录一次用户登录行为,那么可以统计这个文件的行数来达到需求:

  1. shell> who /etc/security/failedlogin
  2. root ssh Apr 11 13:47 (10.3.10.242)
  3. shell> who /var/adm/wtmp
  4. root pts/1 Apr 11 11:08 (10.3.10.242)
  5. shell> who /etc/security/failedlogin | wc -l
  6. 1

其次,在确定了监控思路的情况下,着手在可以Agent上自定义key

  1. shell> cat /usr/local/etc/zabbix* | grep ^UserParameter
  2. UserParameter=aix.failedlogin,sudo -u root /usr/bin/who /etc/security/failedlogin | wc -l
  3. UserParameter=aix.acceptedlogin,sudo -u root /usr/bin/who /var/adm/wtmp | wc -l
  4. shell> /etc/rc.d/rc2.d/zabbix_agentd restart

再次,由于AIX的比较严格控制权限,Agent上的Zabbix用户无法读取这两个文件系统- ,安装通过只能sudo来完成操作读取,并配置sudo,两个丢文件的增加who命令执行权限:

  1. shell> rpm -ivh sudo-1.7.0-2.aix6.1.ppc.rpm
  2. shell> cat /etc/sudoers
  3. zabbix ALL=(root)NOPASSWD:/usr/bin/who /etc/security/failedlogin
  4. zabbix ALL=(root)NOPASSWD:/usr/bin/who /var/adm/wtmp

从次,在Zabbix Server端的增加监控点的项,为项在监控点的agent上好的定义自定义key

  1. 用户登录成功监控项:
  2. 名称:用户登录成功信息
  3. 类型:Zabbix代理
  4. 键值:aix.acceptedlogin
  5. 数据类型:数字的(无正负)
  6. 数据类型:十进位数字
  7. 数据更新间隔(秒):60
  8. 应用集:Security
  9. 用户登录失败监控项:
  10. 名称:用户登录失败监控项目
  11. 类型:Zabbix代理
  12. 键值:aix.failedlogin
  13. 数据类型:数字的(无正负)
  14. 数据类型:十进位数字
  15. 数据更新间隔(秒):60
  16. 应用集:Security

最后,创建其触发器,

  1. 创建用户登录成功触发器:
  2. 名称: 用户于非工作时间登录成功在主机{HOST.NAME}, 请登录系统进行检查
  3. 表达式: {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)
  4. 严重性: 警告

该表达式的含义为:在晚上20点到早上8点之间如果有用户登录成功了,项报道查看监控点数据御姐acceptedlogin与上次采集变化发生的值,且在60秒内有新数据产生的话,则触发触发器,反之触发器恢复。基本思路和Linux的登录监控触发器思路相同。

  1. 创建用户登录失败触发器:
  2. 名称:用户登录失败在主机{HOST.NAME}, 请登录系统进行检查
  3. 表达式:{Template_OS_AIX_Chinese:aix.failedlogin.change(0)}<>0 and {Template_OS_AIX_Chinese:aix.failedlogin.nodata(60)}=0
  4. 严重性:一般严重

该表达式的含义为:项报道查看监控点数据如果failedlogin与上次采集变化发现的值,且在60秒内有新数据产生的话,则触发触发器,若在60秒内没有新数据的话,触发器恢复。基本思路和Linux的登录失败触发器思路相同。


7.2.3。监控的Windows用户登录

关于Windows用户登录的日志,全部记录在事件管理器中根据事件管理器中的记录,在视窗模版新建登录成功和失败监控项:

首先,参照在事件管理器中的用户登录成功审核记录,创建对应登录成功的监控项:

  1. 名称:Windows Users Login Successful
  2. 类型:Zabbix端点代理程式(主动式)
  3. 键值:eventlog[Security,,"Success Audit",,^4624$,,skip]
  4. 数据类型:日志
  5. 数据更新间隔(秒):30
  6. 应用集:Login

该监控项中,类型选择Zabbix agent(active),数据类型选择Log,监控点的间隔60秒其中,项监控。Key的大用参数括号包裹,用逗号分隔,下面解释各项参数的含义:
Security事件的日志名称:
Success Audit事件的Severity
^4624$这是一个正则表达式,匹配事件ID等于4624的日志; 
skip含义该不的英文监控点已产生的历史日志,如果省略skip,监控点会符合所有条件以上的历史日志信息

其次,参照在事件管理器中的用户登录失败审核记录,创建对应登录失败的监控项:

  1. 名称:Windows Usesr Login Failure
  2. 类型:Zabbix端点代理程式(主动式)
  3. 键值:eventlog[Security,,"Failure Audit",,^4625$,,skip]
  4. 数据类型:日志
  5. 数据更新间隔(秒):60
  6. 应用集:Login

从次,创建登录成功的触发器:

  1. 名称:Windows Users Login Successful On {HOST.NAME}
  2. 表达式:{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
  3. 严重性:资讯

表达式的含义为:如果在60秒内有监控到数据,所有游戏不内容字符串监控点并且Advapi则触发告警,如果60秒内没有新的数据了,则触发器恢复正常; 简单点说就是,用户登录后触发器触发至少会持续60秒,如果用户不断的登录成功,间隔小于60秒,则触发器一直是状态的问题。

然后,创建登录失败的触发器:

  1. 名称:Windows Users Login Failure On {HOST.NAME}
  2. 表达式:{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
  3. 严重性:警告

表达式的含义为:如果在60秒内有监控到数据,所有游戏不内容字符串监控点并且Advapi则触发告警,如果60秒后没有新的数据了,则触发器恢复正常; 如果有人不断的恶意破解登录密码,你会发现触发器问题状态会一直存在。


8.异常处理

8.1。按时间删除的zabbix历史数据

首先,停止Zabbix Server,获取其缩减时间点的时钟:

  1. shell> date +%s -d "2016-09-30 00:00:01"
  2. 1475164801

然后,修改MySQL的参数,使Innodb引擎缩减请立即获取iTunes,并重启MySQL

  1. shell> cat /etc/my.cnf
  2. skip-new
  3. shell> systemctl restart mysql

最后,去时钟的电子杂志先前使用清理Zabbix的历史数据:

  1. shell> mysql -uroot -p
  2. mysql> use zabbix;
  3. Database changed
  4. mysql> DELETE FROM `history_uint` WHERE `clock` < 1475164801;
  5. Query OK, 13658022 rows affected (19 min 12.00 sec)
  6. mysql> optimize table history_uint;
  7. Query OK, 23959997 rows affected (11 min 41.36 sec)
  8. Records: 23959997 Duplicates: 0 Warnings: 0

8.2。消息队列堆积

首先,停止Zabbix Server

  1. shell> systemctl stop zabbix_server

然后,连接数据库,执行以下语句:

  1. SQL> update alerts set status=2,error='' where status=0 and alerttype=0;
  2. SQL> delete from escalations;

最后,重新启动Zabbix Server

    1. shell> systemctl start zabbix_server
posted @ 2018-11-14 14:29  地铁昌平线  阅读(1158)  评论(0编辑  收藏  举报