zabbix3.4安装部署

来源:互联网 发布:揭阳有没有学淘宝培训 编辑:程序博客网 时间:2024/06/05 18:59

Linux:CentOS Linux release 7.3 nginx:1.12.0 MySQL:5.7PHP:7.1.8

本来想写到github上面,排版太麻烦,试试用csdn,有些截图用的还是老的3.0,将就看吧

一、安装nginx:

安装依赖包:

yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel libevent-devel

创建用户:

useradd nginx -s /sbin/nologin -M

下载nginx软件包并进入到目录中:

wget http://nginx.org/download/nginx-1.12.0.tar.gz && tar xvfnginx-1.12.0.tar.gz && cdnginx-1.12.0

 编译:

./configure --prefix=/usr/local/nginx-1.12.0 --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre

 

make && make install

ln -s /usr/local/nginx-1.12.0 /usr/local/nginx    ==>创建软链接

参数解释:

--with-http_stub_status_module:支持nginx状态查询 --with-http_ssl_module:支持https --with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持 --with-pcre:为了支持rewrite重写功能,必须制定pcre

 

二、安装PHP

下载PHP安装包:

wget http://cn2.php.net/get/php-7.1.8.tar.gz/from/this/mirror

解压并编译:

mv mirror php-7.1.8.tar.gz && tar xvf php-7.1.8.tar.gz && cd php-7.1.8

 

./configure --prefix=/usr/local/php-7.1.8 --with-config-file-path=/usr/local/php-7.1.8/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

 

make && make install

ln -s /usr/local/php-7.1.8 /usr/local/php

 

cp php.ini-production /usr/local/php/etc/php.ini

cd /usr/local/php/etc/

 

cp php-fpm.conf.default php-fpm.conf

 

修改php.ini参数:(zabbix环境需要修改的参数)

max_execution_time =300  

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300  

date.timezone = Asia/Shanghai

 

三、安装MySQL

添加mysql用户,创建mysql的数据目录:

groupadd mysql

mkdir -pv /data/mysql

useradd -r -g mysql -d /data/mysql -s /sbin/nologin mysql

chown -R mysql.mysql /data/mysql

 

安装cmake及依赖:

yum install cmake gcc* ncurses-devel -y

 

下载MySQL安装包:

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49.tar.gz(这个页面不能用了)

Wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz (版本估计现在更新了,改下5.7后面的数字即可)



MySQL安装部署

# yum -y install libaio perl autoconf

# cd /usr/local/src

# tar zxf mysql-advanced-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

# ln -sv /usr/local/mysql-advanced-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql

# groupadd mysql

# useradd -g mysql mysql -s /sbin/nologin

# mkdir -pv /opt/mysqldata

# mkdir -pv /opt/mysqllog

# chown -R mysql.mysql /opt/mysqldata

# chown -R mysql.mysql /opt/mysqllog

# cat > /etc/my.cnf <<EOF

[client]

port = 3306

socket = /opt/mysqldata/mysql.sock

[mysqld]

#######base########

server-id = 1

port = 3306

user = mysql

socket = /opt/mysqldata/mysql.sock

basedir = /usr/local/mysql

datadir = /opt/mysqldata

tmpdir = /tmp

skip-external-locking

skip-name-resolve

bind-address = 0.0.0.0

#default-storage-engine = INNODB

character-set-server = utf8

wait_timeout = 100

connect_timeout = 20

interactive_timeout =100

back_log = 500

event_scheduler = ON

lower_case_table_names=1

explicit_defaults_for_timestamp=true

########binlog#######

log-bin = /opt/mysqllog/mysql-bin

#binlog_format = raw

max_binlog_size = 512M

binlog_cache_size = 1M

#expire-log-days = 10

sync-binlog = 1

#######slow log############

#slow_query_log = ON

#slow_query_log_file = /opt/mysqllog/mysql-slow.log

#long_query_time = 0.5

#log-queries-not-using-indexes

#log_slow_admin_statements = ON

#######error log##########

log-error = /opt/mysqllog/error.log

#######general log########

general_log = ON

#######saafety########

max_allowed_packet = 16M

max_connect_errors=1000000

skip_name_resolve

symbolic-links=0

#######per_thread_buffers########

max_connections = 1024

max_user_connections = 1000

max_connect_errors = 1000

key_buffer_size = 64M

#table_cache = 3096

table_open_cache = 6144

table_definition_cache = 4096

bulk_insert_buffer_size = 4M

key_buffer_size = 16M

myisam_sort_buffer_size = 256K

net_buffer_length = 16K

preload_buffer_size = 32K

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 1M

join_buffer_size = 1M

#sql_buffer_result = OFF

#tmp_table_size = 64M

max_heap_table_size = 64M

query_cache_type = ON

query_cache_size = 0

query_cache_limit = 1M

query_cache_min_res_unit = 1024

query_prealloc_size = 8192

bulk_insert_buffer_size = 32M

######InnoDB#########

#innodb_additional_mem_pool_size = 16M

innodb_log_file_size = 1024M

innodb_log_buffer_size = 8M

innodb_log_files_in_group = 2

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

innodb_max_dirty_pages_pct = 75

innodb_support_xa = 1

innodb_thread_concurrency = 0

innodb_thread_sleep_delay = 0

innodb_flush_method = O_DIRECT

innodb_flush_neighbors = 1

innodb_flushing_avg_loops = 30

innodb_file_per_table

innodb_read_io_threads = 4

innodb_write_io_threads = 4

innodb_io_capacity = 2000

innodb_io_capacity_max = 4000

innodb_buffer_pool_size = 2G

innodb_buffer_pool_instances = 8

innodb_commit_concurrency = 0

innodb_compression_failure_threshold_pct = 5

innodb_compression_level = 6

innodb_compression_pad_pct_max = 50

innodb_ft_cache_size = 8000000

#innodb_ft_result_cache_limit = 2000000000

#innodb_ft_total_cache_size = 640000000

innodb_open_files = 300

innodb_page_size = 16K

innodb_purge_batch_size = 300

innodb_purge_threads = 1

innodb_undo_logs = 128

innodb_undo_tablespaces = 0

innodb_sort_buffer_size = 1M

innodb_file_format = Barracuda

[mysqldump]

quick

max_allowed_packet = 16M

#myisam_max_sort_file_size = 1G

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 16M

sort_buffer_size = 256K

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

[mysqld_safe]

open-files-limit = 28192

EOF

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# chmod 755 /etc/init.d/mysql

# chkconfig mysql on

# echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf.d/mysql.conf

# ldconfig -v | grep mysql

# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile.d/mysql.sh

# chmod +x /etc/profile.d/mysql.sh

# source /etc/profile.d/mysql.sh

# cd /usr/local/mysql

# ...........mysql_install_db --user=mysql --defaults-file=/etc/my.cnf

5.5以上mysql_install_db弃用

NOTE shunxu

./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

# ls /opt/mysqldata/

# ls /opt/mysqllog/

# sed -i "s/^basedir=$/basedir=\/usr\/local\/mysql/" /etc/init.d/mysql

# sed -i "s/^datadir=$/datadir=\/opt\/mysqldata/" /etc/init.d/mysql

# service mysql start

# mysql -uroot

mysql> update mysql.user set password=PASSWORD('1234') where user='root';

mysql> flush privileges;

mysql> exit


四、安装zabbix server:

安装zabbix:

 

 

-rw-r--r--   1 root root  15407273 5月  21 2016 zabbix-3.4.1.tar.gz

 

访问 https://www.zabbix.com/download

下载最新版本3.4.1 到服务器

[root@zabbix ~]# tar zxf zabbix-3.4.1.tar.gz && cd zabbix-3.4.1

 

编译zabbix:

 

./configure --prefix=/usr/local/zabbix-3.4.1/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

 

 

make && make install

 

编译过程中如果有报错:

故障:

checking for mysql_config... no

configure: error: MySQL library not found

 

解决:

yum install mysql-devel -y  

yum install net-snmp-devel

故障:

checking for net-snmp-config... no

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

 

解决:

yum install net-snmp-devel -y

 

创建zabbix用户:

[root@zabbix zabbix-3.4.1]#groupadd zabbix

[root@zabbix zabbix-3.4.1]# useradd zabbix -s /sbin/nologin -M -g zabbix

zabbix server需要导入3个sql文件:

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/schema.sql

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/images.sql

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/data.sql

 

 

  [root@zabbix zabbix-3.4.1]# pwd

  /root/zabbix-3.4.1


四、安装zabbix server:

安装zabbix:

 

 

-rw-r--r--   1 root root  15407273 5月  21 2016 zabbix-3.4.1.tar.gz

 

访问 https://www.zabbix.com/download

下载最新版本3.4.1 到服务器

[root@zabbix ~]# tar zxf zabbix-3.4.1.tar.gz && cd zabbix-3.4.1

 

编译zabbix:

 

./configure --prefix=/usr/local/zabbix-3.4.1/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

 

 

make && make install

 

编译过程中如果有报错:

故障:

checking for mysql_config... no

configure: error: MySQL library not found

 

解决:

yum install mysql-devel -y  

yum install net-snmp-devel

故障:

checking for net-snmp-config... no

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

 

解决:

yum install net-snmp-devel -y

 

创建zabbix用户:

[root@zabbix zabbix-3.4.1]#groupadd zabbix

[root@zabbix zabbix-3.4.1]# useradd zabbix -s /sbin/nologin -M -g zabbix

zabbix server需要导入3个sql文件:

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/schema.sql

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/images.sql

[root@zabbix zabbix-3.4.1]# mysql -uroot -pzabbix zabbix < database/mysql/data.sql

 

 

  [root@zabbix zabbix-3.4.1]# pwd

  /root/zabbix-3.4.1

 

五、zabbix管理网站配置(nginx):

创建项目目录:

[root@zabbix zabbix-3.4.1]# mkdir /data/web/zabbix.lifec.com -p [root@zabbix zabbix-3.4.1]# mkdir /data/logs/zabbix -p

 

从源文件将前端文件拷贝到项目目录下:

[root@zabbix zabbix-3.4.1]# cp –r /root/zabbix-3.4.1/frontends/php/* /data/web/zabbix.lifec.com/

 

编辑nginx虚拟主机:

[root@zabbix conf]# mkdir extra

[root@zabbix conf]# cd extra/

[root@zabbix extra]# vim zabbix.conf

 

server {

listen 8027;

server_name zabbix.lifec.com;

access_log /data/logs/zabbix/zabbix.lifec.com.access.log main;

index index.html index.php index.html;

root /data/web/zabbix.lifec.com;

 

location /{

       try_files $uri $uri/ /index.php?$args;

}

 

location ~ ^(.+.php)(.*)$ {

       fastcgi_split_path_info ^(.+.php)(.*)$;

       include fastcgi.conf;

       fastcgi_pass 127.0.0.1:9000;

       fastcgi_index index.php;

       fastcgi_param PATH_INFO $fastcgi_path_info;

}

 

}

 

编辑nginx.conf配置文件:

[root@zabbix conf]# cat nginx.conf

 

user  nginx;

worker_processes  2;

 

error_log  logs/error.log warning;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

 

pid        logs/nginx.pid;

 

 

events {

    worker_connections  1024;

}

 

 

http {

    include       mime.types;

    default_type  application/octet-stream;

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  logs/access.log  main;

 

    sendfile        on;

    #tcp_nopush     on;

 

    #keepalive_timeout  0;

    keepalive_timeout  65;

 

    #gzip  on;

    include conf.d/*.conf;

 

}

 

编辑zabbix_server.conf文件:

[root@zabbix etc]# pwd

  /usr/local/zabbix-3.0.2/etc

LogFile=/tmp/zabbix_server.log

 

PidFile=/tmp/zabbix_server.pid

 

DBHost=localhost

 

DBName=zabbix

 

DBUser=zabbix

 

DBPassword=zabbix

 

六、启动服务

启动nginx:

[root@zabbix conf]# /usr/local/nginx/sbin/nginx

 

启动PHP:

[root@zabbix conf]# /usr/local/php/sbin/php-fpm

 

启动zabbix server:

[root@zabbix conf]# /usr/local/zabbix-3.4.1/sbin/zabbix_server

 

如果启动的时候报错:

  [root@zabbix ~]# /usr/local/zabbix-3.0.2/sbin/zabbix_server

  /usr/local/zabbix-3.0.2/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

  [root@zabbix ~]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

 

添加/etc/hosts文件:

192.168.119.140 zabbix.lifec.com

 

查看服务端口:

[root@zabbix conf]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1029/sshd           

tcp        0      0 0.0.0.0:8027                0.0.0.0:*                   LISTEN      3730/nginx          

tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      3743/zabbix_server  

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3736/php-fpm        

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      24922/mysqld        

tcp        0      0 :::22                       :::*                        LISTEN      1029/sshd           

udp        0      0 0.0.0.0:68                  0.0.0.0:*                               880/dhclient

 

将服务加入开机自启动:

[root@zabbix ~]# echo"/usr/local/nginx/sbin/nginx" >>/etc/rc.local  [root@zabbix ~]# echo"/usr/local/php/sbin/php-fpm" >>/etc/rc.local  [root@zabbix ~]# echo"/etc/init.d/mysqld start" >>/etc/rc.local [root@zabbix ~]# echo"/usr/local/zabbix-3.4.1/sbin/zabbix_server" >>/etc/rc.local

 

七、web端配置zabbix


 

 

 

 

 

 

 

 

 

 需要下载文件,并上传到指定的服务器目录中。

 

 

 

 

 

 

 

 


 


修改界面为中文界面


默认登录界面为英文:

修改以下配置,并重启服务即可;

vim /data/web/zabbix.lifec.com/include/locales.inc.php

      #'zh_CN' => ['name' => _('Chinese(zh_CN)'), 'display' => false],

      'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],

 

 

为了防止图形中的字符出现乱码:

需要自己上传字体:

 

 

将选择的字体上传到Linux服务器的zabbix的fonts目录:

/data/web/zabbix.lifec.com/fonts

 


并修改以下配置:

vim /data/web/zabbix.lifec.com/include/defines.inc.php

define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name

define('ZBX_GRAPH_FONT_NAME', 'simsun'); // font file name        ==>此行为新增行;

define('ZBX_FONT_NAME', 'DejaVuSans');

define('ZBX_FONT_NAME', 'simsun');       ==>此行为新增行;

 

重启服务即可。

 

 

字体建议使用简体如下配置

Win+R打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,然后上传到/usr/share/zabbix/fonts

 

上传成功后,编辑

sudo vim /usr/share/zabbix/include/defines.inc.php

'graphfont' 修改为msyh。

 

 

 

修改完成后,点击刷新,即可完成。