二、zabbix部署和管理
二、zabbix部署和管理
2.1、二进制安装
硬件配置参考
数据库端:
1、安装数据库
$ apt install mysql-server-5.7 mysql-client-core-5.7 -y
$ systemctl start mysql
$ systemctl enable mysql
2、配置监听地址
vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
$ systemctl restart mysql
$ ss -ntl
LISTEN 0 80 0.0.0.0:3306
创建数据库并创建授权访问用户
mysql> create database zabbix_server character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_server.* to zabbix@"%" identified by 'zabbix123';
客户端验证数据库
控制端导入数据库数据
$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -pzabbix123 -h192.168.7.104 zabbix_server
3、配置连接数据库配置
$ vi /etc/zabbix/zabbix_server.conf
DBHost=192.168.7.104
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix123
3、启动服务
$ systemctl start zabbix-server.service
$ systemctl enable zabbix-server.service
#查看日志是否有报错信息,没有则为成功
$ ail /var/log/zabbix/*.log
#查看端口10051是否开启
$ ss -ntl
LISTEN 0 128 [::]:10051
$ 重启apache2服务
systemctl restart apache2
验证访问
新建zabbix访问目录
$ mkdir /var/www/html/zabbix
$ cp -a /usr/share/zabbix/* /var/www/html/zabbix/
配置
配合信息确认
安装完成完成
登录管理页面:
默认账号:Admin
默认密码:zabbix
管理主页面
配置中文界面
Zabbix
英文Ubuntu系统安装中文支持
1、安装中文包
apt-get install language-pack-zh*
2、配置相关环境
vim /etc/environment
添加语言和编码的设置
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
我的配置文件
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
~
3、重新设置本地配置
dpkg-reconfigure locales
选择中文即可
2.2、源码安装
安装依赖包
apt-get install apache2 apache2-bin apache2-data apache2-utils fontconfig-config fonts-dejavu-core fping libapache2-mod-php libapache2-mod-php7.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libfontconfig1 libgd3 libiksemel3 libjbig0 libjpeg-turbo8 libjpeg8 liblua5.2-0 libodbc1 libopenipmi0 libsensors4 libsnmp-base libsnmp30 libsodium23 libssh2-1 libtiff5 libwebp6 libxpm4 php-bcmath php-common php-gd php-ldap php-mbstring php-mysql php-xml php7.2-bcmath php7.2-cli php7.2-common php7.2-gd php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml snmpd ssl-cert ttf-dejavu-core libmysqlclient-dev libxml2-dev libxml2 snmp libsnmp-dev libevent-dev openjdk-8-jdk curl libcurl4-openssl-dev
编译安装zabbix
tar -zxvf zabbix-4.0.12.tar.gz
useradd zabbix
cd zabbix-4.0.12/
./configure --prefix=/apps/zabbix \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--enable-java
make
make install
数据库创建
$ apt install mysql-server-5.7 mysql-client-core-5.7 -y
$ mysql_secure_installation
2、修改监听端口
vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
3、启动服务
systemctl restart mysql
systemctl enable msyql
mysql_secure_installation
mysql -uroot -p123456
4、创建数据库
mysql> create database zabbix_server character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_server.* to zabbix@192.168.7% identified by 'zabbix123';
mysql> flush privileges;
服务器端进行数据库初始化
/usr/local/src/zabbix-4.0.12/database/mysql目录下导入数据库文件进行初始化
mysql -uzabbix -pzabbix123 -h192.168.7.102 zabbix_server < schema.sql
mysql -uzabbix -pzabbix123 -h192.168.7.102 zabbix_server < images.sql
mysql -uzabbix -pzabbix123 -h192.168.7.102 zabbix_server < data.sql
数据库验证
配置连接数据库配置文件
$ vim /apps/zabbix_server/etc/zabbix_server.conf
DBHost=192.168.7.102
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix123
复制php文件到访问目录中
$ mkdir /var/www/html/zabbix
$ cp -a /usr/local/src/zabbix-4.0.12/frontends/php/* /var/www/html/zabbix/
配置zabbix启动文件
可从客户端直接下载apt zabbix,然后复制到服务端
root@Zabbix-node1:~# cat /lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server (MySQL/MariaDB)
Documentation=man:zabbix_server
After=network.target mysql.service
[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/sbin/zabbix_server --foreground
ExecReload=/usr/sbin/zabbix_server -R config_cache_reload
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
#进行软链接
$ ln -sv /apps/zabbix_server/sbin/zabbix_server /usr/sbin/
# 启动服务
$ systemctl enable zabbix-server.service
$ systemctl start zabbix-server.service
$ systemctl start apache2
#验证10051和80端口是否开启
ss -ntl | grep 10051
访问zabbix的web界面
根据报错信息修改成要求配置
修改配置
根据图中建议参数修改即可
$ vim /etc/php/7.2/apache2/php.ini
PHP option "post_max_size" post_max_size=16M
PHP option "max_execution_time" max_execution_time = 300
PHP option "max_input_time" max_input_time=300
date.timezone =Asia/Shanghai
#重启apache服务
$ systemctl restart apache2
全部显示ok后进行下一步
连接数据库
连接服务端并命名
信息确认
会报错一个确实配置文件
将下载zabbix.conf.php文件放在/var/www/html/zabbix/conf即可,然后下一步
登录:
默认账号:Admin
默认密码:zabbix
web主页面
增加中文界面
Zabbix
英文Ubuntu系统安装中文支持
1、安装中文包
apt-get install language-pack-zh*
2、配置相关环境
vim /etc/environment
添加语言和编码的设置
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
我的配置文件
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
~
3、重新设置本地配置
dpkg-reconfigure locales
两步都选择中文支持
更新本地中文环境
复制字体到/var/www/html/zabbix/assets/fonts中
提取自己window主机字体
提取楷体字体
将默认字体修改成添加字体新名称
$ vim /var/www/html/zabbix/include/defines.inc.php
70 define('ZBX_GRAPH_FONT_NAME', 'simkai'); // font file name
111 define('ZBX_FONT_NAME', 'simkai');
# 重启web服务
$ systemctl restart apache2
刷新界面选择中文即可
下载agent进行服务主机监控
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb
# dpkg -i zabbix-release_4.0-2+bionic_all.deb
# apt update
$ apt install zabbix-agent
$ systemctl restart zabbix-agent.service
$ systemctl enable zabbix-agent.service
绿色即为成功
查看监控主机数据,有监控到数据即为完成安装
问题汇总:
1、设置简单密码,违反mysql安全策略(mysql5.7)
解决:
1、解决办法调整MySQL密码验证规则,修改 policy 和 length 的值。
2、MySQL 5.7 进行如下设置,即可解决问题:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
用户的基本信息
2.3、zabbix基本管理
2.3.1、 修改密码
2.3.2、创建用户群组
*
为必填
2.3.3、创建用户
*
为必填,别名就是登录名
权限-用户类型:
登录测试
2.3.4、添加主机群组
1、 配置(Configration) > 主机群组(Host groups) > 创建主机群组(Create host group)
2、 输出组名(Group) > 添加(Add)
2.3.5、添加主机
Zabbix中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用
1、配置(Configuration) > 主机(Hosts), 查看已配置的主机信息 > 点击创建主机(Create host)以添加新的主机
2、 添加信息
3、 添加模板(Templates)
4、验证、需要等待
等不及,可到监控项、检查
5、 ZBX绿了,表示主机正常监控
2.3.6、添加监控
1、选中一个主机、查看监控项(ltems)
2、 创建监控项(Create item)
3、添写信息
名称:显示监控项的名称
键值:要监控的项,可以点右边的选择来挑选
信息类型:根据键值的返回值选择合适的类型
4、 点击添加 、验证
2.3.7、添加触发器
1、选择一个主机、选择触发器
2、创建触发器
3、 填写名称、选择严重性、和表达式
表达式
触发器列表
4、 测试,让CPU负载变高
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
5、查看报警
监测 > 问题
2.3.8、添加图形
1、选择主机---》图形
2、创建图形
3、 添加监控项
4、查看图形
2.3.9、报警通知
设置邮件报警
1、创建媒介类型
2、填写项
3、查看报警媒介列表
4、关联用户
添加报警媒介用户信息
用户列表
2.3.10、创建动作
1、创建动作
2、添加触发动作
3、 添加新操作
恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
4、验证,关闭zabbix-agent服务
因为默认agent ping监控默认时间太久,可一更改下时间测试,然后主机的触发器调整即可
报警邮件
恢复邮件
实现分级报警
实现报警和恢复邮件通知
1、实现报警通知
"故障{TRIGGER.STATUS}:{HOSTNAME1}:{TRIGGER.NAME}"
"报警主机:{HOSTNAME1}
报警时间:{EVENT.DATE} {EVENT.TIME}
报警等级:{TRIGGER.SEVERITY}
报警信息:{TRIGGER.NAME}
报警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
2、实现恢复通知
恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
测试关闭nginx和恢复nginx
关闭后通知
恢复后通知
2.3.11、agent主动模式监控类型
1、全克隆模版
2、克隆模版
点击全克隆,下图搞错了
3、修改模版名称
修改名称 > 添加
4、列表查看
5、 修改成主动模式,点击监控项
监控项>全选>批量更新
6、修改类型
7、 修改间隔时间,点击更新
8、 点击自动发现规则
9、 点击名称进入修改
10、 修改成主动式,更新
11、 箭头所指的地方都需要修改成主动式(监控项原型内还有多项)
12、 添加新的主机,过程略