青岛品牌网站建设价格,勒索做钓鱼网站的人,宁夏做网站的,网线制作考核标准文章目录Zabbix详细安装部署环境准备安装依赖组件访问初始化配置Zabbix详细安装部署
Zabbix 是一个高度集成的网络监控解决方案#xff0c;可以提供企业级的开源分布式监控解决方案#xff0c;由一个国外的团队持续维护更新#xff0c;软件可以自由下载使用#xff0c;运作…
文章目录Zabbix详细安装部署环境准备安装依赖组件访问初始化配置Zabbix详细安装部署
Zabbix 是一个高度集成的网络监控解决方案可以提供企业级的开源分布式监控解决方案由一个国外的团队持续维护更新软件可以自由下载使用运作团队靠提供收费的技术支持赢利。
环境准备
CentOS Linux release 7.5.1804 (Core) 下载地址 http://mirrors.sohu.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso Zabbix5.0源码包 下载地址 https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz 安装依赖组件
[rootbogon ~]# yum install net-snmp-devel libevent-devel -y创建zabbix用户组和用户
[rootbogon ~]# groupadd zabbix
[rootbogon ~]# useradd -r -g zabbix zabbix安装zabbix服务
[rootbogon ~]# cd /usr/local/src/
[rootbogon src]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz或者通过上传的方式上传文件
[rootbogon src]# mkdir /usr/local/data/
[rootbogon src]# tar -xzf zabbix-5.0.1.tar.gz -C /usr/local/data/
[rootbogon src]# cd /usr/local/data/zabbix-5.0.1/[rootbogon zabbix-5.0.1]# ./configure --prefix/usr/local/data/zabbix --enable-server --enable-agent --with-mysql/usr/local/data/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2此处报错 checking for mysql_config... /usr/local/data/mysql/bin/mysql_configconfigure: error: MySQL library not found解决办法 互联网状态下 Centos7.5安装MySQL57 [rootbogon zabbix-5.0.1]# cd ..[rootbogon data]# wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm[rootbogon data]# lsmysql57-community-release-el7-10.noarch.rpm zabbix-5.0.1[rootbogon data]# rpm -Uvh mysql57-community-release-el7-10.noarch.rpm[rootbogon data]# yum install -y mysql-community-server非互联网状态下
安装MySql57
必要以下几个包安装就可以了
mysql-community-client-5.7.30-1.el7.x86_64
mysql-community-libs-compat-5.7.30-1.el7.x86_64
mysql57-community-release-el7-10.noarch
mysql-community-server-5.7.30-1.el7.x86_64
mysql-community-common-5.7.30-1.el7.x86_64
mysql-community-libs-5.7.30-1.el7.x86_64启动MySQL服务
[rootbogon data]# systemctl start mysqld.service查看MySQL状态
[rootbogon data]# systemctl status mysqld.service获取MySQL临时用户名密码
[rootbogon data]# grep temporary password /var/log/mysqld.log
A temporary password is generated for rootlocalhost: nc(9k0u;Fzff输入MySQL的临时密码
[rootbogon data]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30因为MySQL的密码规则需要很复杂我们一般自己设置的不会设置成这样所以我们全局修改一下
mysql set global validate_password_policy0;
Query OK, 0 rows affected (0.00 sec)mysql set global validate_password_length1;
Query OK, 0 rows affected (0.00 sec)设置自己想要的密码
mysql ALTER USER rootlocalhost IDENTIFIED BY 123456;
Query OK, 0 rows affected (0.00 sec)授权其他机器远程登录
mysql GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY 123456 WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)mysql exit
Bye开启开机自启动
[rootbogon data]# systemctl enable mysqld
[rootbogon data]# systemctl daemon-reload 设置MySQL的字符集为UTF-8令其支持中文
[rootbogon data]# vim /etc/my.cnf改成如下,然后保存
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysql]
default-character-setutf8[mysqld]
datadir/var/lib/mysql
socket/var/lib/mysql/mysql.sock
default-storage-engineINNODB
character_set_serverutf8symbolic-links0log-error/var/log/mysqld.log
pid-file/var/run/mysqld/mysqld.pid重启一下MySQL,令配置生效
[rootbogon data]# systemctl restart mysqld永久关闭selinux和防火墙
[rootbogon data]# vi /etc/selinux/config 将SELINUXenforcing改为SELINUXdisabled 设置后需要重启才能生效
[rootbogon data]# systemctl stop firewalld.service
[rootbogon data]# systemctl disable firewalld.service再次执行部署zabbix服务
[rootbogon zabbix-5.0.1]# ./configure --prefix/usr/local/data/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
Package libxml-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing libxml-2.0.pc
to the PKG_CONFIG_PATH environment variable
No package libxml-2.0 found
Package libxml-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing libxml-2.0.pc
to the PKG_CONFIG_PATH environment variable
No package libxml-2.0 found
checking for xmlReadMemory in -lxml2... no
configure: error: Not found libxml2 library解决办法 互联网状态下
[rootbogon zabbix-5.0.1]# yum install libxml2 libxml2-devel -y非互联网状态下 安装以下包
libxml2-python-2.9.1-6.el7.4.x86_64
libxml2-devel-2.9.1-6.el7.4.x86_64
libxml2-2.9.1-6.el7.4.x86_64再次执行部署zabbix服务
[rootbogon zabbix-5.0.1]# ./configure --prefix/usr/local/data/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
configure: error: Curl library not found解决办法 互联网状态下
[rootbogon zabbix-5.0.1]# yum install curl-devel非互联网状态下 安装以下包
libcurl-7.29.0-57.el7.x86_64
libcurl-devel-7.29.0-57.el7.x86_64
python-pycurl-7.19.0-19.el7.x86_64
curl-7.29.0-57.el7.x86_64再次执行部署zabbix服务
[rootbogon zabbix-5.0.1]# ./configure --prefix/usr/local/data/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[rootbogon zabbix-5.0.1]# make
[rootbogon zabbix-5.0.1]# make install
[rootbogon data]# vim /etc/profile添加以下内容
# Zabbix Environment
export PATH$PATH:/usr/local/data/zabbix/sbin/:/usr/local/data/zabbix/bin/
[rootlocalhost zabbix-4.2.6]# source /etc/profile创建用户导入数据库
[rootbogon data]# mysql -uroot -p
mysql create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql grant all privileges on zabbix.* to zabbix‘localhost’ identified by ‘123456’;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements解决办法
mysql show variables like “%validate%”;
±-------------------------------------±-------
| Variable_name | Value |
±-------------------------------------±-------
| query_cache_wlock_invalidate | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
±-------------------------------------±-------
8 rows in set (0.00 sec)
mysql set global validate_password_length6;
Query OK, 0 rows affected (0.00 sec)mysql set global validate_password_policy0;
Query OK, 0 rows affected (0.00 sec)mysql show variables like “%validate%”;
±-------------------------------------±------
| Variable_name | Value |
±-------------------------------------±------
| query_cache_wlock_invalidate | OFF |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
±-------------------------------------±------
8 rows in set (0.00 sec)
mysql grant all privileges on zabbix.* to zabbix‘localhost’ identified by ‘123456’;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql set names utf8;
Query OK, 0 rows affected (0.00 sec)
mysql use zabbix;
Database changed
mysql source /usr/local/data/zabbix-5.0.1/database/mysql/schema.sql
mysql source /usr/local/data/zabbix-5.0.1/database/mysql/data.sql
mysql source /usr/local/data/zabbix-5.0.1/database/mysql/images.sql编辑zabbix_server的配置文件
[rootbogon mysql]# find / -name zabbix_server.conf
/usr/local/data/zabbix-5.0.1/conf/zabbix_server.conf
/usr/local/data/zabbix/etc/zabbix_server.conf
[rootbogon mysql]# vim /usr/local/data/zabbix/etc/zabbix_server.conf
###Option: LogFile
LogFile/usr/local/data/zabbix/logs/zabbix_server.log
###Option: LogFileSize
LogFileSize0
###Option: DBHost
DBHostlocalhost
###Option: DBName
DBNamezabbix
###Option: DBUser
DBUserzabbix
###Option: DBPassword
DBPasswordlixiaozhe
###Option: DBSocket
DBSocket/tmp/mysql.sock
###Option: DBPort
DBPort3306
###Option: Timeout
Timeout30
###Option: AlertScriptsPath
AlertScriptsPath/usr/local/data/zabbix/alertscripts
###Option: ExternalScripts
ExternalScripts/usr/local/data/zabbix/externalscripts
###Option: LogSlowQueries
LogSlowQueries3000授权建立相关文件夹
[rootbogon mysql]# mkdir /usr/local/data/zabbix/logs
[rootbogon mysql]# mkdir /usr/local/data/zabbix/pid
[rootbogon mysql]# chown -R zabbix:zabbix /usr/local/data/zabbix/安装PHP73 互联网状态下 首先安装 EPEL 源
yum install epel-release安装 REMI 源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm安装 Yum 源管理工具
yum install yum-utils非互联网状态下 安装remi-release-7.rpm 安装 PHP7.3
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll设置开机自启
systemctl enable php73-php-fpm启动PHP服务
systemctl start php73-php-fpm[rootbogon data]# vim /etc/ld.so.conf
/usr/local/lib /添加此路径/
[rootbogon data]# ldconfig启动zabbix
[rootbogon data]# zabbix_server杀死进程
[rootbogon data]# ps -ef | grep zabbix_server | grep -v grep | awk ‘{print $2}’ | xargs kill -9创建服务文件
[rootbogon data]# vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
DescriptionZabbix
Afternetwork.target[Service]
Environment“CONFFILE/usr/local/data/zabbix/etc/zabbix_server.conf”
Typeforking
Restarton-failure
PIDFile/tmp/zabbix_server.pid
KillModecontrol-group
ExecStart/usr/local/data/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop/bin/kill -SIGTERM $MAINPID
RestartSec10s[Install]
WantedBymulti-user.target[rootbogon zabbix-5.0.1]# systemctl daemon-reload
[rootbogon zabbix-5.0.1]# systemctl enable zabbix-server
[rootbogon zabbix-5.0.1]# systemctl stop zabbix-server
[rootbogon zabbix-5.0.1]# systemctl start zabbix-server
[rootbogon zabbix-5.0.1]# systemctl restart zabbix-server安装nginx
[rootbogon data]# wget http://nginx.org/download/nginx-1.9.9.tar.gz
[rootbogon data]# tar -zxvf nginx-1.9.9.tar.gz
[rootbogon data]# cd nginx-1.9.9/
[rootbogon data]# ./configure
[rootbogon data]# make
[rootbogon data]# make install
[rootbogon data]# cd /usr/local/nginx/sbin/
[rootbogon data]# ./nginx
[rootbogon data]# ps -ef | grep nginx
[rootbogon zabbix-5.0.1]# mkdir -p /usr/local/nginx/html/zabbix
[rootbogon zabbix-5.0.1]# cp -a /usr/local/data/zabbix-5.0.1/ui/* /usr/local/nginx/html/zabbix/zabbix_web需要php配置优化编辑php.ini文件
[rootbogon zabbix-5.0.1]# find / -name php.ini
/etc/opt/remi/php73/php.ini修改如下内容
max_execution_time 30 修改为350-(zabbix_web优化)
max_input_time 60 修改为350-(zabbix_web优化)
post_max_size 8M 修改为32M-(zabbix_web优化)
date.timezone Asia/Shanghai 添加-(zabbix_web优化)找到设置cgi.fix_pathinfo的参数 这将用分号;注释掉默认设置为“1”
cgi.fix_pathinfo0
[rootbogon zabbix-5.0.1]# systemctl restart php73-php-fpm
[rootbogon zabbix-5.0.1]# vim /lib/systemd/system/nginx.service
[UNIT]Deionnginx - high performance web serverDocumentationhttp://nginx.org/en/docs/Afternetwork-online.target remote-fs.target nss-lookup.targetWantsnetwork-online.target[Service]TypeforkingPIDFile/usr/local/nginx/logs/nginx.pidExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload/bin/kill -s HUP $MAINPIDExecStop/bin/kill -s TERM $MAINPID[Install]WantedBymulti-user.target
[rootbogon zabbix-5.0.1]# systemctl daemon-reload
[rootbogon zabbix-5.0.1]# systemctl enable nginx
[rootbogon zabbix-5.0.1]# systemctl stop nginx
[rootbogon zabbix-5.0.1]# systemctl start nginx若启动失败重启服务器
[rootbogon zabbix-5.0.1]# systemctl restart nginx配置nginx文件使PHP页面生效
[rootbogon zabbix-5.0.1]# vim /usr/local/nginx/conf/nginx.conflisten - 定义Nginx将侦听的端口。 root - 定义存储网站服务的文档根目录。 index- 配置Nginx请求索引文件时优先处理index.php命名的文件。 server_name - 将此指令指向服务器的域名或公共IP地址。 location /- 第一个位置块包括一个try_files指令该指令检查是否存在满足URI请求的文件。如果Nginx找不到合适的文件则会返回404错误。 location ~ .php$- 此位置块通过将Nginx指向fastcgi-php.conf配置文件和php7.2-fpm.sock文件来处理实际的PHP处理该文件声明了与哪个套接字相关联php-fpm。检查/etc/php/7.0/fpm/pool.d/www.conf文件并查找“listen”行。 location ~ /.ht- 通过添加deny all指令如果任何.htaccess文件碰巧进入文档根目录它们将不会被提供给访问者。 修改如下内容 user root; server { listen 80; server_name localhost; #charset koi8-r;#access_log logs/host.access.log main;root /usr/local/nginx/html/zabbix;
index index.php index.html index.htm;location / {}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html##error_page 500 502 503 504 /50x.html;#location /50x.html {# root /usr/local/nginx/html;#}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ {# root html;fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}# deny access to .htaccess files, if Apaches document root# concurs with nginxs one#location ~ /\.ht {deny all;}
}验证nginx配置文件语法错误 [rootbogon zabbix-5.0.1]# sudo nginx -t [rootbogon zabbix-5.0.1]# systemctl reload nginx [rootbogon zabbix-5.0.1]# nginx -s reload #重新加载配置文件 [rootbogon zabbix-5.0.1]# systemctl restart nginx
然后访问http://IP
默认点击下一步
出现报错
PHP xmlwriter extension missing zabbix
PHP xmlreader extension missing zabbix
解决办法
检查/etc/php.ini
修改内容如下
找到自己的xmlwriter.so和xmlreader.so路径位置
extension/usr/lib64/php/modules/xmlwriter.so
extension/usr/lib64/php/modules/xmlreader.so
再次启动
查看是否有报错
[rootbogon zabbix-5.0.1]# php73 -v
最终保存文件需要上传到服务器本地路径
字体显示异常
解决办法
/usr/local/nginx/html/zabbix/assets/fonts
将Win10操作系统C:\Windows\Fonts目录下的任意字体拷贝到此目录更改后缀为’.ttf’
修改php脚本文件/usr/local/nginx/html/zabbix/include/defines.inc.php
define(ZBX_GRAPH_FONT_NAME, msyh); // font file name
define(ZBX_FONT_NAME, msyh);
重启zabbix服务
重启nginx服务
[rootbogon zabbix-5.0.1]# systemctl restart zabbix-server
[rootbogon zabbix-5.0.1]# systemctl restart nginx访问初始化配置
浏览器访问server ip
http://8.130.31.182/
选择中文 - 下一步 -
配置DB连接(端口和密码根据情况填写) 都点击下一步完成安装 登录
用户名Admin
密码zabbix 至此最新版本zabbix5.4的server就已经部署完毕
增加agent监控节点
# zabbix_agent01
[rootzabbix_agent01 ~]# dnf install zabbix-agent
[rootzabbix_agent01 ~]# vim /etc/zabbix/zabbix_agentd.conf
[rootzabbix_agent01 ~]# cat /etc/zabbix/zabbix_agentd.conf |grep -vE ^$|^#
PidFile/var/run/zabbix/zabbix_agentd.pid
LogFile/var/log/zabbix/zabbix_agentd.log
LogFileSize0
Server172.28.54.185 #server ip
ServerActive172.28.54.185 #不配端口默认是使用的10051否则需要写成172.28.54.185:port
Hostnamezabbix_agent01
Include/etc/zabbix/zabbix_agentd.d/*.conf
[rootzabbix_agent01 ~]# systemctl restart zabbix-agent# zabbix_agent02
[rootzabbix_agent02 ~]# dnf install zabbix-agent
[rootzabbix_agent02 ~]# vim /etc/zabbix/zabbix_agentd.conf
[rootzabbix_agent02 ~]# cat /etc/zabbix/zabbix_agentd.conf |grep -vE ^$|^#
PidFile/var/run/zabbix/zabbix_agentd.pid
LogFile/var/log/zabbix/zabbix_agentd.log
LogFileSize0
Server172.28.54.185
ServerActive172.28.54.185
Hostnamezabbix_agent02
Include/etc/zabbix/zabbix_agentd.d/*.conf
[rootzabbix_agent02 ~]# systemctl restart zabbix-agent界面添加主机( 添加完agent01后克隆一下换agent02的ip即可) 等待agent成功被发现监控后查看页面 点击主机选择图形可以查看常规指数图形 管理中一般设置可以更改主题风格 监控使用介绍 案例: 监控某个端口是否异常
首先在服务器上启动一个测试端口 6666
[rootzabbix_server ~]# yum install -y httpd
[rootzabbix_server ~]# vim /etc/httpd/conf/httpd.conf
Listen 6666 # 把listen改成6666端口[rootzabbix_server ~]# systemctl start httpd
[rootzabbix_server ~]# netstat -tnlpu|grep 6666
tcp6 0 0 :::6666 :::* LISTEN 31923/httpd # 测试端口已经正常运行选择配置 - 主机 - 选择zabbix-server节点 - 右上角创建监控项 键值 net.tcp.listen[port] 检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听1 - 正在侦听 把port换成实际需要监控的端口 添加
有了监控项也就具备了持续监控状态还需要一个状态变化触发告警的配置触发器
在表达式中点击添加选择 匹配上我们配置的监控项httpd_6666端口监控 插入即可
现在把httpd服务禁用
[rootzabbix_server ~]# systemctl stop httpd
[rootzabbix_server ~]# netstat -tnlpu|grep 6666
[rootzabbix_server ~]#
# 6666端口已经没了等待一会查看仪表盘 可以看到监控告警已经报告了对应监控项
回到服务器命令行重新运行服务模拟修复故障
[rootzabbix_server ~]# systemctl start httpd
[rootzabbix_server ~]# netstat -tnlpu|grep 6666
tcp6 0 0 :::6666 :::* LISTEN 32628/httpd
[rootzabbix_server ~]# 这时候可以看到告警项已经不再告警
可以在监测项中查看问题有问题历史记录 到此相当于流程 定义监控 - 发现问题抛出告警 - 相关人员处理问题 - 监控告警状态解除 已经完毕