zabbix安装
? zabbix ?    300    0    0
swimming   ? zabbix ?

一、环境配置信息

本次安装zabbix,采用LNMP(Linux+Nginx+Mysql+PHP)方式安装,相应版本要求如下:

序号

名称

内容

1

操作系统版本

Red Hat Enterprise Linux Server release 6.6 (Santiago)

2

操作系统内核版本

2.6.32-504.el6.x86_64

3

操作系统安装方式

最小化安装

4

Zabbix 版本

zabbix_server (Zabbix) 3.4.7

5

MySql 版本

Ver 14.14 Distrib 5.7.16

6

PHP 版本

PHP 5.6.35 (fpm-fcgi) (built: Apr 10 2018 16:03:57)

7

Nginx 版本

nginx/1.13.11

注意:生产环境直接使用模板机或者初始化之后的模板机即可。

Zabbix工作示意图如下:

 

二、安装步骤

1) Linux安装

具体安装初始化流程参考文档Liunx系统安装。

安装依赖环境:

$ cd /tmp && wget ftp://x.x.x.x/pub/zabbix/zabbix-repo.tar.gz 【主机房】

$ cd /tmp && wget http://x.x.x.x/pub/zabbix/zabbix-repo.tar.gz 【备机房】

$ cd /tmp && tar zxf zabbix-repo.tar.gz

$ cd /etc/yum.repos.d/ && sudo wget ftp://x.x.x.x/pub/zabbix/zabbix.repo 【主机房】

$ cd /etc/yum.repos.d/ && sudo wget http://

x.x.x.x/pub/zabbix/zabbix.repo 【备机房】

$ sudo yum clean all && sudo yum makecache

安装源初始化完成后,运行以下命令初始化安装环境:

$ sudo yum install gcc gcc-c++ pcre-devel openssl-devel libxml2-devel GeoIP-devel bzip2-devel \

ibmcrypt-devel libXpm-devel ncurses-devel libxslt-devel net-snmp-devel mcrypt mhash-devel \

libevent-devellibxml2-devel libcurl-devel openssl-devel openldap-devel net-snmp-devel net-snmp fping \

libcurl-devel gd libpng libpng-devel freetype freetype-devel autoconf net-snmp-utils libaio-devel \

perl-ExtUtils-Embed perl-devel unixODBC-devel urw-fonts zlib-devel zlib libaio* libcurl-devel \

libjpeg-turbo-devel --skip-broken

 

2) MySQL安装

MySQL安装针对使用方式有多种不同的配置方式,在此仅涉及本地安装单实例MySQL方式,其他方式配置请参考其他文档。

数据库关键路径默认设置;

序号

名称(Key)

内容(Vaule)

1

basedir

/usr/local/mysql

2

datadir

/opt/mysql/data

3

port

3306

4

socket

/tmp/mysql.sock

5

tmpdir

/opt/mysql/tmp

6

log-bin

/opt/mysql/logs/mysql-bin

具体安装步骤:

下载配置文件或者编辑/etc/my.cnf 配置文件,按照需求更改上表配置信息;下载地址如下,下载之前请先删除本地/etc/my.cnf文件:

序号

机房

下载路径

1

主机房

ftp://x.x.x.x/pub/zabbix/my.cnf

2

备机房

http://x.x.x.x/pub/zabbix/my.cnf

编辑内容如下:

[client]

port   = 3306

socket = /var/lib/mysql/mysql.sock

 

 

[mysql]

prompt="\\u@\\h [\\d]>"

#pager="less -i -n -S"

#tee=/opt/mysql/logs/query.log

no-auto-rehash

 

 

[mysqld]

#misc

user = mysql

basedir = /usr/local/mysql

datadir = /opt/mysql/data

event_scheduler = ON

explicit_defaults_for_timestamp = true

port = 3306

socket = /var/lib/mysql/mysql.sock

 

tmpdir = /opt/mysql/tmp

#timeout

interactive_timeout =86400

net_read_timeout = 28800

net_write_timeout = 28800

wait_timeout =86400

 

#character set

character-set-server = utf8

 

max_connections = 5000

max_connect_errors = 100000

open_files_limit = 131070

optimizer_switch = index_condition_pushdown=off

skip-external-locking

 

max_allowed_packet = 256M

myisam-recover-options = BACKUP

key_buffer_size    = 128M

thread_stack       = 192K

thread_cache_size  = 16

#lower_case_table_names =1

#logs

log_warnings = 1

log-output = file

log-error = error.log

long_query_time = 1

slow_query_log = 1

slow_query_log_file = slow.log

pid-file = mysql.pid

 

#log-slow-admin-statements = 1

#log-queries-not-using-indexes = 1

log-slow-slave-statements = 1

 

#binlog

#binlog_format = STATEMENT

# binlog_format = row

# server-id = 23306

# log-bin = /opt/mysql/logs/mysql-bin

# binlog_cache_size = 4M

# max_binlog_size = 256M

# max_binlog_cache_size = 1024M

# sync_binlog = 0

# expire_logs_days = 10

#procedure

# log_bin_trust_function_creators=1

 

#

gtid-mode = 0

 

#relay log

max_relay_log_size = 128M

relay_log_purge = 1

relay_log_recovery = 1

relay-log=relay-bin

relay-log-index=relay-bin.index

log_slave_updates

skip_slave_start = 1

#slave-skip-errors=1032,1053,1062

#skip-grant-tables

skip-ssl

 

#buffers & cache

bulk_insert_buffer_size = 64M

key_buffer_size = 8M

join_buffer_size = 128K

max_heap_table_size = 128M

master-info-repository = TABLE

performance_schema = ON

query_cache_size = 64M

query_cache_type = 0

query_cache_limit = 10M

query_cache_min_res_unit = 512

sort_buffer_size = 128K

symbolic-links=0

transaction_isolation = READ-COMMITTED

table_open_cache_instances = 16

table_definition_cache = 8192

table_open_cache = 4096

thread_cache_size = 200

thread_stack = 192K

tmp_table_size = 96M

read_buffer_size = 128M

read_rnd_buffer_size = 64M

relay-log-info-repository = TABLE

 

#myisam

myisam_sort_buffer_size = 128M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

 

#innodb

innodb_lru_scan_depth = 256

innodb_autoextend_increment  = 256

innodb_buffer_pool_dump_at_shutdown=1

innodb_buffer_pool_load_at_startup=1

innodb_buffer_pool_instances = 12

innodb_buffer_pool_size = 256M

innodb_buffer_pool_instances = 1

innodb_checksum_algorithm = crc32

innodb_change_buffer_max_size=50

innodb_checksums = 0

innodb_data_file_path = ibdata1:100M:autoextend

innodb_doublewrite = 0

innodb_flush_log_at_trx_commit = 2

innodb_flush_method = O_DIRECT

innodb_flush_neighbors = 0

innodb_file_per_table = 1

innodb_io_capacity = 4000

innodb_log_buffer_size = 8M

innodb_log_file_size = 128M

innodb_log_files_in_group = 3

innodb_monitor_enable = '%'

innodb_max_dirty_pages_pct = 50

innodb_old_blocks_time = 1000

innodb_open_files = 4096

innodb_stats_on_metadata = OFF

innodb_sync_array_size = 16

innodb_status_file = 1

innodb_support_xa = 0

innodb_read_io_threads = 64

innodb_write_io_threads = 64

 

 

[mysqld_safe]

open_files_limit=131070


安装MySQL:

$ cd /tmp && wget ftp://x.x.x.x/pub/zabbix/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz【主机房】

$ cd /tmp && wget http://x.x.x.x/pub/zabbix/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz【备机房】

$ sudo tar zxf /tmp/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

$ sudo ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql

$ sudo useradd -u 4000 mysql

$ sudo mkdir -p /opt/mysql && cd /opt/mysql

$ sudo mkdir -p tmp logs data && sudo chown mysql:mysql -R /opt/mysql

$ cd /usr/local/mysql/bin && sudo ./mysqld --initialize --user=mysql \

--datadir=/opt/mysql/data --basedir=/usr/local/mysql

以上过程如果遇到报错,请检查datadir路径下是否清楚干净,配置文件是否修改如上,是否缺少需要的库。

如果获取MySQL登陆密码:

$ sudo grep password /opt/mysql/data/error.log

制作MySQL启动服务:

$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

$ sudo chmod +x /etc/init.d/mysqld

添加MySQL环境变量,添加内容要在文件最后:

$ sudo vi /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

export PATH

$ source /etc/profile

启动以及MySQL库,[password]为获取的MySQL登陆密码:

$ sudo /sbin/chkconfig --add mysqld

$ sudo /sbin/chkconfig mysqld on

$ sudo service mysqld start

$ mysql -uroot -p[password]

修改MySQL密码,使用前面找到的密码登陆MySQL,使用以下命令将数据库密码改为mysql:

> alter user user()  identified by 'mysql';

创建zabbix数据环境:

> create database zabbix character set utf8 collate utf8_bin;

> grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'zabbixpassword';

> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpassword';

> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbixpassword' with grant option;

> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbixpassword' with grant option;

> flush privileges;

至此数据库安装完成,另外Zabbix数据库导入会在Zabbix安装步骤内说明。

3) PHP安装

按照以下步骤,创建账户并编译安装:

$ sudo useradd -u 4001 www

$ cd /tmp && wget ftp://10.10.10.28/pub/zabbix/php-5.6.35.tar.gz 【主机房】

$ cd /tmp && wget http://10.10.16.31/pub/zabbix/php-5.6.35.tar.gz 【备机房】

$ tar zxf /tmp/php-5.6.35.tar.gz && sudo  mkdir -p /usr/local/php5  &&  cd /tmp/php-5.6.35

$ sudo ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc \

--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring \

--with-freetype-dir --with-jpeg-dir --with-png-dir --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml \

--enable-pdo --with-snmp --with-xsl --enable-xml --disable-rpath --enable-bcmath --enable-shmop \

--enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --with-gd \

--with-mcrypt --enable-mbstring --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets \

--enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-pcntl \

--enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --disable-debug --disable-ipv6 \

--enable-opcache --with-gettext

$ sudo make -j 4 && sudo make install

$ sudo cp /tmp/php-5.6.35/php.ini-production  /usr/local/php5/etc/php.ini

$ sudo cp /usr/local/php5/etc/php-fpm.conf.default  /usr/local/php5/etc/php-fpm.conf

此处遇到报错大多和环境变量有关,因之前已安装完环境变量,此处如有问题,请验证之前环境安装是否正常。

配置修改:

按照以下内容配置/usr/local/php5/etc/php-fpm.conf:

listen = /tmp/php-cgi.sock   #以socke的方式访问.注视掉.ip端口的方式.

user = www

group = www

listen.owner = www

listen.group = www

listen.mode = 0660

php_admin_value[memory_limit] = 128M

php_admin_value[post_max_size] = 16M

php_admin_value[upload_max_filesize] = 2M

php_admin_value[max_execution_time] = 300

php_admin_value[max_input_time] = 300

php_admin_value[session.auto_start] = 0

php_admin_value[mbstring.func_overload] = 0

php_admin_value[always_populate_raw_post_data] = -1

php_admin_value[date.timezone] = asia/shanghai

启动方式:

$ sudo /usr/local/php5/sbin/php-fpm &

至此已完成PHP的安装。

4) Nginx 安装

按照以下步骤完成Nginx安装:

$ cd /tmp && wget ftp://x.x.x.x/pub/zabbix/nginx-1.13.11.tar.gz 【主机房】

$ cd /tmp && wget http://x.x.x.x/pub/zabbix/nginx-1.13.11.tar.gz 【备机房】

$ sudo mkdir -p /usr/local/nginx && tar zxf /tmp/nginx-1.13.11.tar.gz -C /tmp

$ cd /tmp/nginx-1.13.11 && sudo ./configure --prefix=/usr/local/nginx --with-threads \

 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-pcre \

--with-http_gunzip_module --with-http_gzip_static_module --with-http_perl_module --with-debug

$ sudo make -j 2 && sudo make install

修改配置文件/usr/local/nginx/conf/nginx.conf内容,注意:注释此项”location / {“:

user  www;    

server {

        listen       80;

        server_name  localhost;

        index index.php;

        root /var/www/html;

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

           expires 30d;

        }

        location ~ \.php$ {

            root           /var/www/html;

            fastcgi_pass   unix:/tmp/php-cgi.sock;

            fastcgi_index  index.php;

            fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

启动方式:

$ sudo /usr/local/nginx/sbin/nginx &

至此Nginx安装完成。

5) Zabbix安装

请按照以下步骤初始化安装Zabbix:

$ cd /tmp && wget ftp://x.x.x.x/pub/zabbix/zabbix-3.2.11.tar.gz 【主机房】

$ cd /tmp && wget http://x.x.x.x/pub/zabbix/zabbix-3.2.11.tar.gz 【备机房】

$ wget ftp://x.x.x.x/pub/zabbix/OpenIPMI-2.0.24.tar.gz && tar xf OpenIPMI-2.0.24.tar.gz 【主机房】

$ wget http://x.x.x.x/pub/zabbix/OpenIPMI-2.0.24.tar.gz && tar xf OpenIPMI-2.0.24.tar.gz 【备机房】

$ cd OpenIPMI-2.0.24 && sudo ./configure

$ sudo mkdir -p /usr/local/zabbix && tar zxf /tmp/zabbix-3.2.11.tar.gz -C /tmp

$ sudo useradd -u 4002 zabbix && cd /tmp/zabbix-3.2.11/

$ sudo rpm -ivh ftp://x.x.x.x/scripts/rpm/jdk-7u79-linux-x64.rpm 【主机房】

$ sudo rpm -ivh http://x.x.x.x/scripts/rpm/jdk-7u79-linux-x64.rpm 【备机房】

$ sudo ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent \

 --enable-java --with-libcurl --with-mysql=/usr/local/mysql/bin/mysql_config --with-libxml2 \

 --with-unixodbc --with-net-snmp --with-libevent --with-openssl --with-ldap --with-iconv \

 --with-openipmi=/tmp/OpenIPMI-2.0.24/

$ sudo make install

修改(/usr/local/zabbix/etc/zabbix_server.conf)配置文件,具体修改内容如下:

$ sudo cp /usr/local/zabbix/etc/zabbix_server.conf{,_bak}

$ sudo vi /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

DBHost=127.0.0.1

DBName=zabbix

DBUser=zabbix

DBPassword=zabbixpassword

DBSocket=/tmp/mysql.sock

StartPollers=20

StartTrappers=50

StartPingers=15

StartDiscoverers=15

StartHTTPPollers=5

CacheSize=2048M

#EXSI部分

StartVMwareCollectors=5

VMwareFrequency=60

VMwarePerfFrequency=60

VMwareCacheSize=80M

Timeout=30

AlertScriptsPath=/usr/local/share/zabbix/alertscripts

ExternalScripts=/usr/local/share/zabbix/externalscripts

FpingLocation=/usr/sbin/fping

LogSlowQueries=3000

添加启动服务,复制zabbix_server和zabbix_agentd到init.d下,修改文件内ZABBIX_BIN路径:

$ sudo cp /tmp/zabbix-3.2.11/misc/init.d/fedora/core5/zabbix_server /etc/init.d/

$ sudo cp /tmp/zabbix-3.2.11/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

$ sudo sed -i \

's/^ZABBIX_BIN=.*/ZABBIX_BIN=\"\/usr\/local\/zabbix\/sbin\/zabbix_server\"/g' /etc/init.d/zabbix_server

$ sudo sed -i \

's/^ZABBIX_BIN=.*/ZABBIX_BIN=\"\/usr\/local\/zabbix\/sbin\/zabbix_agentd\"/g' /etc/init.d/zabbix_agentd

复制前段控制台文件文件至nginx配置的工作目录(已修改至/var/www/html/):

$ sudo mkdir -p /var/www/html/zabbix

$ sudo cp -r /tmp/zabbix-3.2.11/frontends/php /var/www/html/zabbix

$ sudo chown www:www /var/www/html/zabbix -R

修改字体:

$ cd /var/www/html/zabbix/fonts

$ sudo mv DejaVuSans.ttf{,_bak}

$ sudo wget ftp://x.x.x.x/pub/zabbix/DejaVuSans.ttf 【主机房】

$ sudo wget http://x.x.x.x/pub/zabbix/DejaVuSans.ttf 【备机房】

导入数据库:

$ mysql -u zabbix -p   zabbix < /tmp/zabbix-3.2.11/database/mysql/schema.sql

$ mysql -u zabbix -p   zabbix < /tmp/zabbix-3.2.11/database/mysql/images.sql

$ mysql -u zabbix -p   zabbix < /tmp/zabbix-3.2.11/database/mysql/data.sql

启动方式:

服务端:

$ sudo /etc/init.d/zabbix_server start

客户端:

$ sudo /usr/local/zabbix/sbin/zabbix_agentd

添加启动项,并设置开机启动

$ sudo /sbin/chkconfig --add zabbix_agentd

$ sudo /sbin/chkconfig --add zabbix_server

$ sudo /sbin/chkconfig zabbix_agentd on

$ sudo /sbin/chkconfig zabbix_server on

 

页面配置,登陆zabbix页面:

点击下一步,检查php选项是否全部通过; 

填写数据库相关信息;

添加服务端详细信息;点击下一步,确认信息无误;安装完成;Zabbix默认账户:Admin;默认密码:zabbix;默认URL:http://X.X.X.X/zabbix。登陆界面后,点击右上角小人,如下图:

点击Language下拉菜单,选择Chinses(zh_CN),确认即可,如下图:

 

 

 

 

 

 

 

 

至此Zabbix安装完成。

6) Grafana安装

此展示工具有RPM安装包,直接安装即可:

$ sudo rpm -ivh ftp://10.10.10.28/pub/zabbix/grafana-5.0.4-1.x86_64.rpm 【主机房】

$ sudo rpm -ivh http://10.10.16.31/pub/zabbix/grafana-5.0.4-1.x86_64.rpm 【备机房】

添加开机启动项:

$ sudo /sbin/chkconfig --add grafana-server

$ sudo /sbin/chkconfig grafana-server on

$ sudo service grafana-server start

安装zabbix-app插件:

$ cd /var/lib/grafana/plugins

$ sudo wget\

 ftp://10.10.10.28/pub/zabbix/alexanderzobnin-grafana-zabbix-v3.9.0-0.zip

$ sudo unzip alexanderzobnin-grafana-zabbix-v3.9.0-0.zip

$ sudo rm /var/lib/grafana/plugins/alexanderzobnin-grafana-zabbix-v3.9.0-0.zip

$ sudo service grafana-server restart

Grafana默认账户:admin;默认密码:admin;默认URL:http://X.X.X.X:3000。

连接zabbix配置步骤:

登陆Grafana,启用zabbix-app插件,配置zabbix-app;此处有两种连接方式:一、直连数据库;二、通过API连接。我们使用直连数据方式。

首先,新增数据库连接:其次,新建zabbix-app源:

然后,点击Save&Test,保存。以上完成对Grafana的配置。

7) Zabbix-Proxy 安装

为了减轻Zabbix-Server的压力有时候会增加一个或者几个Zabbix-Proxy节点分担其压力,安装步骤如下:

在Zabbix-Server的web段添加Proxy:创建zabbix代理:

此处创建代理依照代理的模式来决定是否添加代理IP,主动方式为默认使用方式,不需要添加代理IP;被动方式则需要添加IP。

新建Proxy数据库以及账户:

> create database zabbix_proxy character set utf8;  #数据名可以跟server端名称不同

> GRANT ALL PRIVILEGES ON zabbix_proxy.*  TO 'zabbix'@'localhost'  IDENTIFIED BY 'zabbix-proxy';

> GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%'  IDENTIFIED BY 'zabbix-proxy';

> set GLOBAL max_connections=10000;

> flush privileges;

安装zabbix-proxy客户端:

$ cd /tmp && wget ftp://10.10.10.28/pub/zabbix/zabbix-3.2.11.tar.gz 【主机房】

$ cd /tmp && wget http://10.10.16.31/pub/zabbix/zabbix-3.2.11.tar.gz 【备机房】

$ wget ftp://10.10.10.28/pub/zabbix/OpenIPMI-2.0.24.tar.gz \

&& tar xf OpenIPMI-2.0.24.tar.gz 【主机房】

$ wget http://10.10.16.31/pub/zabbix/OpenIPMI-2.0.24.tar.gz \

 && tar xf OpenIPMI-2.0.24.tar.gz 【备机房】

$ cd OpenIPMI-2.0.24 && ./configure

$ make && sudo make install

$ cd /usr/lib64/ && sudo ln -s /usr/local/lib/libOpenIPMI.so.0

$ sudo mkdir -p /usr/local/Zabbix_proxy && tar zxf /tmp/zabbix-3.2.11.tar.gz -C /tmp

$ sudo useradd -u 4002 zabbix && cd /tmp/zabbix-3.2.11/

$ ./configure --prefix=/usr/local/zabbix_proxy --enable-proxy --enable-agent \    --with-openipmi=/tmp/OpenIPMI-2.0.24/ \

--with-mysql --with-net-snmp --with-libcurl

$ sudo make install

修改zabbix-agent配置文件:

LogFile=/tmp/zabbix_agentd.log

Server=[Zabbix-ProxyIP]

ServerActive=[Zabbix-ProxyIP]

Hostname=[Zabbix-ProxyIP]

HostMetadataItem=system.uname

Timeout=30

Include=/usr/local/zabbix_proxy/etc/zabbix_agentd.conf.d/*.conf

UnsafeUserParameters=1

修改zabbix-proxy配置文件:

Server=[Zabbix-ServerIP]                 #zabbix服务端IP

Hostname=Zabbix proxy                    #必须和WEB页面添加代理时设置的名称一致      

LogFile=/tmp/zabbix_proxy.log

DBHost=localhost                          #数据库IP

DBName=zabbix_proxy                       #数据库名

DBUser=Zabbix                             #数据库用户名

DBPassword=[Zabbix_Password]             #数据库密码

DBSocket=/tmp/mysql.sock                 #连接数据库方式

#以下配置项和Server端同一个意思,具体查找Zabbix_Server配置项解析

StartPollers=100

StartIPMIPollers=5

StartTrappers=5

StartPingers=10

Timeout=4

LogSlowQueries=3000

导入Zabbix_Proxy数据结构:

$ cd /tmp/zabbix-3.2.11/database/mysql

$ mysql -uroot -p[Password] zabbix_proxy < schema.sql #proxy端只需要导入这个文件

启动Zabbix_agent 和 Zabbix_Proxy服务

$ sudo /etc/init.d/zabbix_agentd start

$ sudo /usr/local/zabbix_proxy/sbin/zabbix_proxy &

完成后,需要在Zabbix-ServerWeb上添加主机是,在最下行选择代理程序监测是选择刚才创建的代理即可。

 

三、客户端安装

客户端安装时,因为服务端获取数据的方式不同,分主动模式和被动模式,服务端主动采集数据的方式为被动模式,服务端被动接受采集数据的方式为主动模式。因zabbix模板默认添加方式为被动模式,如发现服务端出现以下情况:

1、图像断层;

2、Web操作比较卡顿,页面容易出现502;

3、开启进程过多;

则,说明zabbix监控服务器性能消耗比较严重,此时可以考虑增加Proxy节点或者修改agentd为主动模式,降低zabbix 服务器的性能。实际生产中大多修改agentd端为被动模式比较常见。注意,部分监控方式没有办法更改,如SNMP设备、IPMI监控等。

主动模式:

需要修改agentd端配置文件,将Server=[IP]注释,修改StartAgents值为0,如下:

重启zabbix-agent,将模板完整克隆后,修改监控项模式为Active模式,如图:此种方法,实施时要长时间验证,因时间问题,验证时发现网卡数值没有取值,待后期完善。

被动模式:

需要修改agentd配置文件中的ServerActive的IP,为server的IP,此模式为,zabbix默认模式。按照文档正常安装方式即可正常部署完成。

1) Windows下客户端安装

按照以下步骤完成安装Windows客户端,首先需要依照系统和机房位置选择下载客户端:

选择客户端:

zabbix-agent-slave-win64.exe【备机房-Win64】

zabbix-agent-slave-win32.exe【备机房-Win32】

zabbix-agent-master-win64.exe【主机房-Win64】

zabbix-agent-master-win32.exe【主机房-Win32】

ftp://10.10.10.28/pub/zabbix/ 【主机房路径】

http://10.10.16.31/pub/zabbix/ 【备机房路径】

下载后管理员权限直接运行,弹出如下提示框

选择【d】,安装+运行,即可。Windows客户端安装完成。

2) Linnx系统下客户端安装

因,生产环境都大多为rhel系统,可以使用RPM包安装,方法如下:

$ rpm -i ftp://10.10.10.28/pub/zabbix/zabbix-agent-3.2.11.el6.x86_64.rpm 【主机房】

$ rpm -i http://10.10.16.31/pub/zabbix/zabbix-agent-3.2.11.el6.x86_64.rpm 【备机房】

修改配置文件:

AllowRoot=1

Include=/etc/zabbix/zabbix_agentd.d/

依照不同机房,对应修改[ServerIP]的值:

$ sed -i 's/^Server=.*/Server=[ServerIP]/g' /etc/zabbix/zabbix_agentd.conf

$ sed -i s#^Hostname=.*#Hostname=[LocalHostIP]#g /etc/zabbix/zabbix_agentd.conf

$ sed -i 's/^ServerActive=.*/ServerActive=[ServerIP]/g' /etc/zabbix/zabbix_agentd.conf

启动客户端并加入开机启动:

$ service zabbix-agent start

$ /sbin/chkconfig zabbix-agent on

3) Oracle数据库客户端安装

Oracle数据库的监控可以通过使用orabbix插件来实现,依照实际生产环境每个数据库上部署一个orabbix客户端,创建zabbix用户,并授予其只读权限,用来收集数据。工作示意图如下:

先参照Linux系统客户端安装方法安装客户端;

修改配置文件/etc/zabbix/zabbix.conf内以下配置:

安装JDK环境;

$ sudo rpm -i ftp://10.10.10.28/pub/zabbix/jdk-7u79-linux-x64.rpm  【主机房】

$ sudo rpm -i http://10.10.16.31/pub/zabbix/jdk-7u79-linux-x64.rpm  【备机房】

安装orabbix插件;

$ cd /tmp/ && wget ftp://10.10.10.28/pub/zabbix/orabbix-1.2.3.tar.gz  【主机房】

$ cd /tmp/ && wget http://10.10.16.31/pub/zabbix/orabbix-1.2.3.tar.gz  【备机房】

#开始安装

$ sudo tar -zcvf /tmp/orabbix-1.2.3.tar.gz -C /opt/

$ sudo cp /opt/orabbix/init.d/orabbix  /etc/init.d/orabbix

$ sudo chmod +x /etc/init.d/orabbix

$ echo ‘/etc/init.d/orabbix start’ >> /etc/rc.local

修改配置文件,使用前请对应修改中括号值(去掉中括号),如示例;

$ sudo cat > /opt/orabbix/confconfig.props  << EOF

ZabbixServerList=ZabbixServer1

# ZabbixServer1.Address=10.10.1.1

ZabbixServer1.Address=[zabbixServerIP]

#ZabbixServer1.Port=10051

ZabbixServer1.Port=[zabbixServerPort]

 

OrabbixDaemon.PidFile=./logs/orabbix.pid

OrabbixDaemon.Sleep=60

OrabbixDaemon.MaxThreadNumber=200

 

#DatabaseList=172.10.1.22

#必须和zabbix控制台页面上的主机名称保持一样

DatabaseList=[DBIP]

DatabaseList.MaxActive=20

DatabaseList.MaxWait=200

DatabaseList.MaxIdle=1

 

[DBIP].Url=监听数据库的连接(JDBC瘦连接)【eg:jdbc:oracle:thin:@172.10.1.22:1521/EXDB】

[DBIP].User=数据库只读用户名

[DBIP].Password=数据库只读用户密码

[DBIP].MaxActive=20

[DBIP].MaxWait=200

[DBIP].MaxIdle=1

#SQL执行脚本存放点

[DBIP].QueryListFile=./conf/query.props

启动和停止:

$ /etc/init.d/orabbix start

$ /etc/init.d/orabbix stop

自定义监控语句添加,修改/opt/orabbix/conf/query.props文件即可,如:

QueryList=监控键值1,监控键值2

# 监控键值1.Query=SQL语句

maxsession.Query=select value "maxsess" from v$parameter where name ='sessions'

以上自定义监控,需要在Zabbix控制台上添加自定义监控,类型选择Zabbix采集器;键值填写query.props内新加的监控键值,内容如下:

将/opt/orabbix/template/Orabbix_export_full.xml 通过Zabbix模板导入监控模板。

如果查看没有数据获取到,请查看日志/opt/orabbix/logs/orabbix.log 检查相应问题。

4) SNMP设备监控数据采集

网络设备以及使用SNMPv2c方式监控的设备,需要修改设备团体名,在Zabbix控制台,添加主机时宏选项内添加相应的设置:

测试方式,在zabbix服务器上输入以下命令,如果有返回值,则可以排除端口以及命令方面的问题,[snmp_community]为SNMP团体名,[IP]为需要测试的客户端IP;

$ snmptrapd -v2c -c [snmp_community] [IP] .

5) 自定义监控

添加自定义监控是建议做成模板,方便统一管理。

 

 

新建模板;

新建监控项; 添加触发器:

添加图形:

以上,完成简单的自定义监控添加。

6) 自定义监控脚本

自定义监控可以完成部分既定方式的监控(比如:端口监听,ping,CPU状态等),但是如果想自己完全自定义监控项目,则需要配合扩展客户端自定义脚本来进行。

注意事项:

1、自定义脚本需要统一管理存放,方便更换监控主机时方便重新部署。

2、监控结果需要在Zabbix控制台上手动添加监控项、触发器和图形(参考上一节)。

UserParameter=key[*],command

例如:

Java.oc为监控项,后面的脚本是可以单独运行返回结果。

客户端:

格式注意事项:

1、命令行内如果用到类似变量$2,要使用两个$,例如awk ‘{ print $$2 }’ 监控项自带参数除外;

2、 zabbix禁止使用一些不安全的参数,如下:

\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @

3、如要启用第2项内特殊字符,需要修改客户端配置文件【/etc/zabbix/zabbix_agentd.conf】内以下值:

UnsafeUserParameters=1

以上,完成自定义监控项的添加。

四、优化设置

1) Zabbix_Server配置项解析

StartPollers:此项为主动收集数据进程数,需要依照主被模式决定。

StartTrappers:此项为处理Agentd推送过来的数据进程数。

AlertScriptsPath:告警脚本存放位置。

CacheSize:配置缓存,用于存储host,item,trigger数据。根据数量多少进行配置,一般2G左右即可。

CacheUpdateFrequency:配置缓存更新时间,一般默认,不做变动。

DBHost:数据库地址【IP】,按照实际情况填写。

DBName:数据库表明,一般为zabbix。

DBPassword:访问数据库zabbix的密码,填写新建zabbix表时的密码。

DBPort:如果是服务端和数据库分离的话,需要按照实际情况填写端口号。

DBSchema:数据库Schema名称,一般常用于Orcale,DB2数据库。

DBSocket:数据库和服务端在同一台服务器上的话建议启用此项,通过unix socket方式连接数据库。

ExternalScripts:外部扩展脚本存放路径,用于添加zabbix扩展。

FpingLocation:fping绝对路径,zabbix使用简单监控监控存活时会用到fping,因此此项为必填项。

StartPingers:服务端简单检测中ping的初始进程,如果需要检测存活状态的主机很多或者,自定义监控存活频率过高的话,可适当调大此值。

ProxyConfigFrequency:Proxy被动模式下,服务端多少秒同步配置文件到proxy。

ProxyDataFrequency:服务端间隔多少秒向Proxy请求历史数据。

SenderFrequency:发送报警失败后,重试时间间隔(秒)。

StartDiscoverers:自动发现进程数,对服务器资源有消耗,可适当调大(0-250)。

StartHTTPPollers:用于设置WEB监控进程数。

StartIPMIPollers:服务器IPMI硬件监控进程数,因为IPMI获取服务器硬件为主机被动方式,因此如果启用需要适当调整此数值。

TrapperTimeout:处理Trapper数据超时时间。

UnavailableDelay:主机不可用后再次检测时间间隔,【默认:60】。

UnreachableDelay:主机不可达后再次检测时间间隔,【默认:15】。

UnreachablePeriod:主机不可用后,置不可用时间间隔,【默认:45】。

StartVMwareCollectors:用于监控VMWARE Esxi主机实例的进程数量,为0则不启用,若要监控ESXI主机,此值最少为1。

VMwareFrequency:服务端连接获取更新vmware集群结构的最小间隔时间,【默认:60】。

VMwareCacheSize:内存中维护vmware集群结构的空间大小,一般建议为80M。

VMwarePerfFrequency:服务端连接获取更新vmware性能数据最小间隔时间,【默认:60】。

2) Zabbix_Agentd配置项解析

EnableRemoteCommands:说明:是否允许在本地执行远程命令,建议设置为“允许”。

LogRemoteCommands:是否开启本地执行远程命令日志。

Server:和主被模式有关,主动模式需要注释此选项;如果有Proxy的情况下,此处填写Proxy的IP。

StartAgents:被动模式采集数据进程数,如果服务器采集频繁,可适当调大此值。

ServerActive:被动模式此项为必填项目,填写服务器或者ProxyIP。

Hostname:主机名,可以自定义,最好为主机IP,网上建议禁用此项,启用HostnameItem。

HostnameItem:自动获取主机名,次参数可自动获取主机名,如果和Host那么一起启用,则已Hostname为准。

AllowRoot:是否用于使用root运行脚本,0:不允许;1:允许。如果外带脚本需要使用root权限运行时,需要打开次选项。

UnsafeUserParameters:是否启用安全模式,执行用户脚本,0:不启用;1启用。此处安全模式,是指脚本中包含“\ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @”字符。

UserParameter:用户自定义脚本,格式:UserParameter=key,command。

此处列出主要参数多为常用项,偏僻参数未列出。

五、问题与解决

1) Nginx权限报错

查看nginx的error.log日志,发现有:如下报错:

主要报错内容为:

connect() to unix:/tmp/php-cgi.sock failed (13: Permission denied) while connecting to upstream

解决方法:

Nginx启动账户和php启动账户不一致造成,请检查nginx和php启动账户。

2) Zabbi_Server启动时报错

报错形式:

*.so.*文件找不到。

解决方法:

使用find命令找出后以下操作:

以上,即可。

3) Too many connections报错

报错如下:

修改数据库my.cnf中【max_connections】属性:

修改后重启mysql即可。

4) Zabbix-proxy 数据清理

zabix-proxy 中,proxy-histroy存储数据大小主要根据server端的管家,或者自定义的时间来存储的。因此,如果数据表proxy-history太大时,需要手动删除。以下为手动删除步骤:

1、停止zabbix-proxy上的zabbix进程【zabbix-agent和zabbix-proxy】

2、登陆zabbix-proxy数据库;

3、use zabbix-proxy;

4、truncate table proxy_history;  根据数据量的大小,可能清除时间会比较长。

5、truncate table ids; 此表为记录上传server数据的位置表。

6、启动zabbix-proxy和zabbix-agent 进程。

5) 

 

 

 

觉得不错,点个赞?
Sign in to leave a comment.
No Leanote account ? Sign up now.
0 条评论
文章目录