zabbix5.0的安装与实现
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能强大,成熟可靠,使用者众多
zabbix实战
实验一:安装zabbix5.0
范例: 在ubuntu20.04 安装 Zabbix Server 5.0
#官网下载
root@ubuntu2004:~# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
--2022-06-22 21:33:23-- https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
Resolving repo.zabbix.com (repo.zabbix.com)... 178.128.6.101, 2604:a880:2:d0::2062:d001
Connecting to repo.zabbix.com (repo.zabbix.com)|178.128.6.101|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4244 (4.1K) [application/octet-stream]
Saving to: ‘zabbix-release_5.0-1+focal_all.deb’
zabbix-release_5.0-1+focal_all 100%[====================================================>] 4.14K --.-KB/s in 0s
2022-06-22 21:33:24 (367 MB/s) - ‘zabbix-release_5.0-1+focal_all.deb’ saved [4244/4244]
root@ubuntu2004:~# dpkg -i zabbix-release_5.0-1+focal_all.deb
Selecting previously unselected package zabbix-release.
(Reading database ... 114056 files and directories currently installed.)
Preparing to unpack zabbix-release_5.0-1+focal_all.deb ...
Unpacking zabbix-release (1:5.0-1+focal) ...
Setting up zabbix-release (1:5.0-1+focal) ...
root@ubuntu2004:~# dpkg -L zabbix-release
/.
/etc
/etc/apt
/etc/apt/sources.list.d
/etc/apt/sources.list.d/zabbix.list
/etc/apt/trusted.gpg.d
/etc/apt/trusted.gpg.d/zabbix-official-repo.gpg
/usr
/usr/share
/usr/share/doc
/usr/share/doc/zabbix-release
/usr/share/doc/zabbix-release/README.Debian
/usr/share/doc/zabbix-release/changelog.Debian
/usr/share/doc/zabbix-release/copyright
#镜像加速
root@ubuntu2004:/etc/apt/sources.list.d# sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
oot@ubuntu2004:~# cat /etc/apt/sources.list.d/zabbix.list
deb https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/ubuntu focal main
deb-src https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/ubuntu focal main
root@ubuntu2004:~# apt update
#安装包
root@ubuntu2004:~#apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2 zabbix-get
#安装数据库MySQL
root@ubuntu2004:~# apt -y install mysql-server
#如果MySQL和ZabbixServer在同一台主机,此项可不改
[root@zabbix-server ~]#vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
[root@zabbix-server ~]#systemctl restart mysql.service
mysql> create database zbbix character set utf8 collate utf8_bin;
Query OK, 1 row affected, 2 warnings (0.00 sec)
mysql> create user zabbix@'10.0.0.%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@'10.0.0.%';
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| zabbix | 10.0.0.% |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
mysql> exit
Bye
#初绐化数据库的表
[root@zabbix-server ~]#zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
#修改Zabbix Server 连接MySQL
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
DBPassword=123456
root@ubuntu2004:~# cat /etc/zabbix/nginx.conf
server {
listen 80;
server_name zabbix.ehuo.org; #修改主机名
# listen 80;
# server_name example.com;
root /usr/share/zabbix;
index index.php;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale|vendor) {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/var/run/php/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
root@ubuntu2004:~#
root@ubuntu2004:~# sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf
root@ubuntu2004:~# ^C
root@ubuntu2004:~# cat /etc/zabbix/php-fpm.conf
[zabbix]
user = www-data
group = www-data
listen = /var/run/php/zabbix.sock
listen.owner = www-data
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/sessions/
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
#安装中文包
[root@zabbix-server ~]#apt -y install language-pack-zh-hans
root@ubuntu2004:~# systemctl disable --now apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apache2
Removed /etc/systemd/system/multi-user.target.wants/apache2.service.
root@ubuntu2004:~# systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpm
root@ubuntu2004:~# systemctl enable zabbix-server
Synchronizing state of zabbix-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable zabbix-server
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /lib/systemd/system/zabbix-server.service.
root@ubuntu2004:~#
第一次登录, 默认的用户名是 Admin,密码是zabbix
安装zabbix5.0脚本
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2
apt -y install mysql-server
cat << EOF | mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
EOF
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
sed -i.bak '/# DBPassword/a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i.bak '/^server/a\ listen 80;\n server_name zabbix.ehuo.org;' /etc/zabbix/nginx.conf
sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf
systemctl disable --now apache2
systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpm
systemctl enable zabbix-server
因为字体兼容性的原因,在显示中文时可能会有乱码出现
root@zabbix-server fonts]#pwd
/usr/share/zabbix/assets/fonts
#支持ttf和ttc后缀的字体文件
[root@zabbix-server fonts]#mv graphfont.ttf graphfont.ttf.bak
[root@zabbix-server fonts]#mv SIMYOU.TTF graphfont.ttf
[root@zabbix-server fonts]#ls
graphfont.ttf graphfont.ttf.bak
#注意:字体文件路径和名称的定义在文件/usr/share/zabbix/include/defines.inc.php中配置
#可以修改下面FONT_NAME指定新字体件,注意不需加文件后缀
[root@zabbix-server ~]#grep FONT_NAME /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');
root@ubuntu2004:/usr/share/zabbix/assets/fonts# mv SIMYOU.TTF graphfont.ttf
root@ubuntu2004:/usr/share/zabbix/assets/fonts# ls
graphfont.ttf graphfont.ttf.bak MSYH.TTC
root@ubuntu2004:/usr/share/zabbix/assets/fonts# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');
root@ubuntu2004:/usr/share/zabbix/assets/fonts#
注意:乱码和语言环境无关,英语环境也支持中文显示,但会有乱码
范例: Rocky8 安装Zabbix Agent2
#从国内镜像下载
[root@rocky8 ~]#rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-agent2-6.0.5-1.el8.x86_64.rpm
[root@localhost ~]# rpm -ql https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-agent2-6.0.5-1.el8.x86_64.rpm
warning: https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-agent2-6.0.5-1.el8.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
/etc/logrotate.d/zabbix-agent2
/etc/zabbix/zabbix_agent2.conf
/etc/zabbix/zabbix_agent2.d
/etc/zabbix/zabbix_agent2.d/plugins.d/ceph.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/docker.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/memcached.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/modbus.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/mongodb.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/mqtt.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/mysql.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/oracle.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/postgres.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/redis.conf
/etc/zabbix/zabbix_agent2.d/plugins.d/smart.conf
/usr/lib/.build-id
/usr/lib/.build-id/88
/usr/lib/.build-id/88/e20f765be60a306e65225d3110fae01371ddee
/usr/lib/systemd/system/zabbix-agent2.service
/usr/lib/tmpfiles.d/zabbix_agent2.conf
/usr/sbin/zabbix_agent2
/usr/share/doc/zabbix-agent2
/usr/share/doc/zabbix-agent2/AUTHORS
/usr/share/doc/zabbix-agent2/COPYING
/usr/share/doc/zabbix-agent2/ChangeLog
/usr/share/doc/zabbix-agent2/NEWS
/usr/share/doc/zabbix-agent2/README
/usr/share/man/man8/zabbix_agent2.8.gz
/var/log/zabbix
/var/run/zabbix
root@rocky8 ~]#vim /etc/zabbix/zabbix_agent2.conf
Server=zabbix.ehuo.org
[root@rocky8 ~]#systemctl enable --now zabbix-agent2.service
[root@rocky8 ~]#ss -ntlp|grep zabbix
LISTEN 0 128 *:10050 *:* users:
(("zabbix_agent2",pid=22792,fd=8))
[root@zabbix-server ~]#zabbix_get -s 10.0.0.8 -k agent.ping
1
范例: 原来生成环境zabbix agent 升级到zabbix agent2
#停止agent 防止端口10050/tcp冲突
[root@rocky8 ~]#system disable --now zabbix-agent
#安装
[root@ubuntu1804 ~]#apt -y install zabbix-agent2
[root@centos8 ~]#yum -y install zabbix-agent2
#配置文件和agent相同
[root@ubuntu1804 ~]#grep -vE '^$|#' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=10.0.0.100 #修改此行
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@ubuntu1804 ~]#systemctl restart zabbix-agent2
#在Zabbix Server测试
[root@zabbix-server ~]#zabbix_get -s 10.0.0.58 -k 'agent.ping'
1
#agent2是多线程
[root@rocky8 ~]#pstree -p|grep zabbix_agent2
`-zabbix_agent2(1825)-+-{zabbix_agent2}(1826)
|-{zabbix_agent2}(1827)
|-{zabbix_agent2}(1828)
|-{zabbix_agent2}(1829)
|-{zabbix_agent2}(1830)
|-{zabbix_agent2}(1831)
`-{zabbix_agent2}(1833)
#agent是多进程
[root@rocky8 ~]#pstree -p | grep zabbix_agent
`-zabbix_agentd(1448)-+-zabbix_agentd(1449)
|-zabbix_agentd(1450)
|-zabbix_agentd(1451)
|-zabbix_agentd(1452)
`-zabbix_agentd(1453)
案例:将Zabbix Server的MySQL 数据库迁移到独立的MySQL服务器
#备份数据库
[root@zabbix-server ~]#mysqldump -uroot -A -F --single-transaction > /data/all.sql
[root@zabbix-server ~]#systemctl stop zabbix-server.service
[root@zabbix-server ~]#systemctl disable --now mysql
#在独立数据库服务器上安装并恢复数据库
[root@mysql-server ~]#apt -y install mysql-server
[root@mysql-server ~]#mysql < all.sql
#重新授权用户允许远程连接zabbix数据库
[root@mysql-server ~]#mysql
mysql> grant all privileges on zabbix.* to zabbix'10.0.0.%' identified by '123456';
#将php的配置指向新的数据库服务器IP
[root@zabbix-server ~]#vim /usr/share/zabbix/conf/zabbix.conf.php
$DB['SERVER'] = '10.0.0.101';
#将Zabbix Server的配置指向新的数据库服务器IP
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
DBHost=10.0.0.101
DBPort=3306
#重启服务生效
[root@zabbix-server ~]#systemctl start zabbix-server.service
rivileges on zabbix.* to zabbix’10.0.0.%’ identified by ‘123456’;
#将php的配置指向新的数据库服务器IP
[root@zabbix-server ~]#vim /usr/share/zabbix/conf/zabbix.conf.php
$DB[‘SERVER’] = ‘10.0.0.101’;
#将Zabbix Server的配置指向新的数据库服务器IP
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
DBHost=10.0.0.101
DBPort=3306
#重启服务生效
[root@zabbix-server ~]#systemctl start zabbix-server.service
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)