主机 | 操作系统 | IP | 主要软件 |
服务器 | Centos 7.6(X86_64) | 172.20.77.201 |
mysql-5.7.19.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
#重新刷新一下页面,就可以显示中文了
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]
#此时可以看到己经恢复正常了
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
原文:https://www.cnblogs.com/happysnowy/p/13255661.html