首页 > 其他 > 详细

源码包安装Zabbix

时间:2020-07-10 01:33:49      阅读:87      评论:0      收藏:0      [点我收藏+]
主机 操作系统 IP 主要软件
服务器 Centos 7.6(X86_64) 172.20.77.201

mysql-5.7.19.tar.gz
php-7.1.24.tar.gz
nginx-1.14.1.tar.gz

zabbix-4.0.2.tar.gz(server端)

客户机 Centos 7.6(X86_64) 172.20.77.202 zabbix-4.0.2.tar.gz(agnetd端)

 

1.下载zabbix server源码包

[root@localhost src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download

2.安装依赖包

[root@localhost src]# yum install -y wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel -y --skip-broken

3.解压zabbix源码包

[root@localhost src]# tar -zxvf zabbix-4.0.4.tar.gz

4.配置编译环境

[root@localhost zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv

技术分享图片

 5.编译安装

[root@localhost zabbix-4.0.4]# make&&make install

技术分享图片

 6.查看安装zabbix的版本

[root@localhost zabbix]# ./sbin/zabbix_server -V
zabbix_server (Zabbix) 4.0.4

7.创建数据库(数据库在前面己经安装好了,这里就不做讲解)

[root@localhost zabbix-4.0.4]# mysql -uroot -p12346

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to ‘zabbix‘@‘%‘ identified by ‘zabbix@123456‘;  #设置zabbix用户访问数据库zabbix的权限

mysql>flush privileges;

8.导入数据表

[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/schema.sql

[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/images.sql

[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/data.sql

 9.创建启动zabbix服务的用户

[root@localhost zabbix-4.0.4]# groupadd --system zabbix

[root@localhost zabbix-4.0.4]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin zabbix

10.创建日志目录

[root@localhost zabbix-4.0.4]# mkdir -p /usr/local/zabbix/logs

11.修改目录权限所有者

[root@localhost zabbix-4.0.4]# chown -R zabbix:zabbix /usr/local/zabbix

12.修改zabbix_server配置文件

[root@localhost zabbix-4.0.4]# cat /usr/local/zabbix/etc/zabbix_server.conf|grep -v ^#|grep -v ^$

LogFile=/usr/local/zabbix/logs/zabbix_server.log
LogFileSize=10
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@123456
DBPort=3306
ExportFileSize=1G
StartPollers=50
StartPreprocessors=20
StartPollersUnreachable=1
StartTrappers=40
StartPingers=1
StartEscalators=20
ListenIP=127.0.0.1
CacheSize=1G
CacheUpdateFrequency=60
HistoryCacheSize=256M
ValueCacheSize=256M
Timeout=4
LogSlowQueries=3000
Include=/usr/local/etc/zabbix_server.conf.d/*.conf

13.修改zabbix_agentd配置文件

[root@localhost zabbix-4.0.4]# cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
AllowRoot=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
[root@localhost zabbix-4.0.4]#

11.启动zabbix_server服务

[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_server 

查看zabbix启动服务日志

[root@localhost zabbix-4.0.4]# tail /tmp/zabbix_server.log

报错如下
110468:20200706:122007.979 database is down: reconnecting in 10 seconds
110468:20200706:122017.981 [Z3001] connection to database ‘zabbix‘ failed: [2002] Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘

查询日志文件 /var/lib/mysql/mysql.sock,文件不存在

[root@localhost zabbix-4.0.4]# ll /var/lib/mysql/mysql.sock
ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory

在系统中查找mysql.sock文件:

[root@localhost zabbix-4.0.4]# find / -name mysql.sock
/usr/local/mysql/mysql.sock

知道mysql.sock位置,有2种解决办法:

a.做一个mysql.sock的软链接

[root@localhost zabbix-4.0.4]# mkdir -p /var/lib/mysql
[root@localhost zabbix-4.0.4]# ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock

重启mysql服务

[root@localhost zabbix-4.0.4]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service

b.修改zabbix_server.conf中的mysql.sock的配置

[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_server.conf

DBSocket=/usr/local/mysql/mysql.sock

然后重启zabbix_server服务

12.启动客户端服务zabbix_agentd

[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_agentd

查看客户端日志

[root@localhost zabbix-4.0.4]# tail -f /usr/local/zabbix/logs/zabbix_agentd.log

技术分享图片 

13.设置zabbix服务开机自启动
复制 zabbix 源程序 misc/init.d/tru64 下的启动脚本到 /etc/init.d 目录下

[root@localhost zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/tru64/zabbix_* /etc/init.d/ 

#修改启动脚本使其支持 redhat 的 chkconfig,并修改实际路径
#服务端启动脚本

[root@localhost zabbix-4.0.4]# vi /etc/init.d/zabbix_server

#!/bin/sh
#chkconfig:345 95 95
#description:Zabbix Server

....

SERVICE="Zabbix server"
DAEMON=/usr/local/zabbix/sbin/zabbix_server
PIDFILE=/usr/local/zabbix/logs/zabbix_server.pid

#客户端启动脚本

#!/bin/sh
#chkconfig:345 95 95
#description: Zabbix Agentd

....

SERVICE="Zabbix agent"
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
PIDFILE=/usr/local/zabbix/logs/zabbix_agentd.pid

注册服务并加入开机启动项

[root@localhost zabbix-4.0.4]# chmod a+x /etc/init.d/zabbix_server
[root@localhost zabbix-4.0.4]# chkconfig --add zabbix_server
[root@localhost zabbix-4.0.4]# chmod a+x /etc/init.d/zabbix_agentd
[root@localhost zabbix-4.0.4]# chkconfig --add zabbix_agentd
[root@localhost zabbix-4.0.4]# chkconfig --list|grep zabbix

zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
zabbix_server 0:off 1:off 2:off 3:on 4:on 5:on 6:off

启动服务

[root@localhost zabbix-4.0.4]# service zabbix_server start
Zabbix server started.
[root@localhost zabbix-4.0.4]# service zabbix_agentd start
Zabbix agent started.

14.将zabbix WEB服务程序复制到nginx对应的目录下并修改用户权限

[root@localhost zabbix-4.0.4]# cp -r frontends/php/* /usr/local/nginx/html/

[root@localhost php]# chown -R nginx:nginx /usr/local/nginx/html/

15.通过浏览器配置zabbix服务

#浏览器输入:http://172.20.77.201

技术分享图片

 

 技术分享图片

#zabbix自动检查安装环境是否满足要求,如果出现不满足要求的情况,需要进一步的处理。这里看到关于PHP有三个参数预检没通过,修改PHP配置文件并重启php服务
#这里使用优化过的配置文件替换原来的php配置文件

[root@localhost etc]# vim /usr/local/php/etc/php.ini

[PHP]
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = On
max_execution_time = 300
max_input_time = 300
memory_limit = 2048M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 16M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
always_populate_raw_post_data = -1
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
date.timezone = PRC
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3310
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatibility_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[opcache]
opcache.enable=0
[curl]
[openssl]

 [root@/usr/local/php/etc/php-fpm.d]# vi /usr/local/php/etc/php-fpm.d/www.conf.default

在文件的末尾添加一下3行配置内容(红色部分),保存退出

[root@localhost php-fpm.d]# cat /usr/local/php/etc/php-fpm.dwww.conf.default|grep -v ^$|grep -v ^";"
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_value[date.timezone] = Asia/Shanghai
php_value[post_max_size] = 16M
php_value[max_execution_time] = 300

#重启php服务

[root@localhost ~]# service php-fpm restart

 #重新刷新index.php页面,发现所有fail项已经消失,点Next继续下一步

技术分享图片

 

 #此处需要配置zabbix连接数据库的信息,修改完毕点Next继续下一步

技术分享图片

 

 技术分享图片

 

技术分享图片

#可以看到配置已完成,且配置信息被保存在了/usr/local/nginx/html/conf/zabbix.conf.php文件中,如果后续需要修改配置,可以直接修改此文件。
#点Finish结束初始化

 

 技术分享图片+

 #完成网页配置

#登录Zabbix网页,默认账号Admin/zabbix

 技术分享图片

 #登录成功界面如下技术分享图片

 

 #如果想切换成中文界面

技术分享图片

 技术分享图片

 

 #此时界面己经切换成中文了技术分享图片

 技术分享图片

 #发现上图有些文字显示中文是乱码的

#这是因为Zabbix使用的DejaVuSan.ttf字体,不支持中文,导致中文出现乱码,它存放的位置是在/usr/local/nginx/html/fonts/DejaVuSans.ttf

#解决办法,使用一个支持中文的字体,如果你手上没有相关字体的文件,最简单的办法就是找Windows系统里面的字体,它的位置一般在C:\Windows\Fonts;
#这里选用常规楷体字(simkai.ttf)上传至服务器/root目录下

[root@localhost ~]# ll simkai.ttf
-rw-r--r--. 1 root root 11785184 Jun 11 2009 simkai.ttf

[root@localhost ~]# mv simkai.ttf /usr/local/nginx/html/fonts/
[root@localhost ~]# cd /usr/local/nginx/html/fonts/
[root@localhost fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@localhost fonts]# mv simkai.ttf DejaVuSans.ttf
[root@localhost fonts]# chown nginx:nginx DejaVuSans.ttf

#重新刷新一下页面,就可以显示中文了

技术分享图片

 

 

 二、客户端(172.20.77.202)的配置

1.下载zabbix server源码包

[root@client src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download

2.安装依赖包

[root@client src]# yum install -y wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel -y --skip-broken

3.解压zabbix源码包

[root@client src]# tar -zxvf zabbix-4.0.4.tar.gz

4.配置编译环境

[root@client zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix  --enable-agent 

5.编译安装

[root@client zabbix-4.0.4]#make&&make install

6.设置zabbix_agentd服务开机自启动
复制 zabbix 源程序 misc/init.d/tru64 下的启动脚本到 /etc/init.d 目录下

[root@client zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/tru64/zabbix_agentd /etc/init.d/ 

#修改启动脚本使其支持 redhat 的 chkconfig,并修改实际路径

#!/bin/sh
#chkconfig:345 95 95
#description: Zabbix Agentd

....

SERVICE="Zabbix agent"
DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
PIDFILE=/usr/local/zabbix/logs/zabbix_agentd.pid

注册服务并加入开机启动项

[root@client zabbix-4.0.4]# chmod a+x /etc/init.d/zabbix_agentd
[root@client zabbix-4.0.4]# chkconfig --add zabbix_agentd
[root@client zabbix-4.0.4]# chkconfig --list|grep zabbix

 zabbix_agentd   0:off   1:off   2:off   3:on    4:on    5:on    6:off

7.修改zabbix_agentd配置文件

[root@client zabbix-4.0.4]# cat /usr/local/zabbix/etc/zabbix_agentd.conf|grep -v ^#|grep -v ^$
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=172.20.77.201
ServerActive=172.20.77.201
Hostname=client
AllowRoot=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1

8.启动客户端服务并测试。
[root@client zabbix-4.0.4]#/etc/init.d/zabbix_agentd start
[root@client zabbix-4.0.4]#netstat -tnlp | grep –color zabbix

tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 37959/zabbix_agentd

9.查看一下错误日志

[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38417:20200710:045201.506 agent #3 started [listener #2]
38418:20200710:045201.507 agent #4 started [listener #3]
38419:20200710:045201.507 agent #5 started [active checks #1]
38415:20200710:045201.508 agent #1 started [collector]
38419:20200710:045201.509 active check configuration update from [172.20.77.201:10051] started to fail (cannot connect to [[172.20.77.201]:10051]: [113] No route to host)

#日志显示到zabbix服务端网络不可达,zabbix_agentd启动成功,应该是服务端防火墙拦截了

#服务端防火墙放行10051端口

[root@localhost fonts]# firewall-cmd --permanent --add-port=10051/tcp

[root@localhost fonts]# firewall-cmd --reload

#重启zabbix_agentd服务并再次查看一下错误日志

[root@client zabbix-4.0.4]# service zabbix_agentd restart

[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38814:20200710:051049.445 agent #2 started [listener #1]
38815:20200710:051049.445 agent #3 started [listener #2]
38816:20200710:051049.445 agent #4 started [listener #3]
38817:20200710:051049.446 agent #5 started [active checks #1]
38813:20200710:051049.448 agent #1 started [collector]

#此时可以看到己经恢复正常了

三、Zabbix服务端管理后台的配置 

1、服务端测试到客户的通讯是否正常

在zabbix的服务端执行下面的命令测试与客户端是否通讯

[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k "net.if.in[ens33,bytes]"
zabbix_get [38139]: Get value error: cannot connect to [[172.20.77.202]:10050]: [113] No route to host
#提示网络不可达,应该是客户端的防火墙拦截了

#客户端防火墙开放10050端口即可

[root@client zabbix-4.0.4]# firewall-cmd --permanent --add-port=10050/tcp

[root@client zabbix-4.0.4]# firewall-cmd --reload

#再次测试就正常了

[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k "net.if.in[ens33,bytes]"
377163571

2、添加远程监控的客户机

 技术分享图片

 

 技术分享图片

 

 #为监控的客户机添加模板

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 可以看到,己经配置成功了,如下图技术分享图片

 技术分享图片

 

 关于Zabbix的源码包安装就讲到这里,如有错误,欢迎留言指正

关于Zabbix的管理后台的详细设置,比如监控apache、mysql等模块,后面会陆续更新

 

 部分参考文档来源:

https://www.freesion.com/article/3222464134/

https://blog.csdn.net/u010735147/article/details/80987858

https://blog.csdn.net/weixin_36522099/article/details/107055422?utm_source=app&from=groupmessage

                       

源码包安装Zabbix

原文:https://www.cnblogs.com/happysnowy/p/13255661.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!