服务端
0、初始化机器
1、mysql5.7安装
自行编译安装或者直接yum安装
2、编译安装zabbix5.2
yum install epel-release -y
yum install net-snmp-devel mysql-devel libevent-devel libxml2-devel libcurl-devel -y
tar -zxvf zabbix-5.2.0.tar.gz
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
./configure --prefix=/data/soft/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make -j 2
make install
mysql -uroot -pxxx
> create database zabbix character set utf8 collate utf8_bin;
> create user 'zabbix'@'localhost' identified by 'zabbix88889999';
> grant all privileges on zabbix.* to 'zabbix'@'localhost';
cd database/mysql
mysql -uzabbix -pzabbix88889999 zabbix < schema.sql
# stop here if you are creating database for Zabbix proxy
mysql -uzabbix -pzabbix88889999 zabbix < images.sql
mysql -uzabbix -pzabbix88889999 zabbix < data.sql
rm /etc/my.cnf
3、配置zabbix服务端
配置zabbix连接mysql
vim /data/soft/zabbix/etc/zabbix_server.conf
DBPassword=password
配置nginx+php,拷贝php程序
mkdir /data/www/jk.fk94.com -p
cp -a /tmp/zabbix-5.2.4/ui/* /data/www/jk.fk94.com/
ll /data/www/jk.fk94.com/
chown www.www /data/www/jk.fk94.com/ -R
修改php.ini,保证zabbix可以正常运行
vim php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
安装php扩展sockets/LDAP
PHP sockets
PHP(世界最好的语言) LDAP
cd /tmp/
wget https://wiki.fafdy.com/source/php/php-7.2.12.tar.gz
tar xf php-7.2.12.tar.gz
cd php-7.2.12
cd ext/sockets/
/data/soft/php7/bin/phpize
./configure --with-php-config=/data/soft/php7/bin/php-config --enable-sockets
make -j2 && make install
cd ../ldap/
/data/soft/php7/bin/phpize
yum install openldap-devel -y
cp /usr/lib64/libldap* /usr/lib/ -a
./configure --with-php-config=/data/soft/php7/bin/php-config --with-ldap
make -j2 && make install
拷贝启动服务
cp -r /tmp/zabbix-5.2.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp -r /tmp/zabbix-5.2.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
chkconfig zabbix_server on
sed -i s#BASEDIR=/usr/local#BASEDIR=/data/soft/zabbix#g /etc/init.d/zabbix_server
sed -i s#BASEDIR=/usr/local#BASEDIR=/data/soft/zabbix#g /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd
启动zabbix
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start
登陆web端
浏览器输入http://jk.fk94.com
Admin
zabbix
4、修改zabbbix_server默认端口为15151
vi /data/www/jk.fk94.com/conf/zabbix.conf.php
10051改为15151
vi /data/soft/zabbix/etc/zabbix_server.conf
ListenPort=15151
/etc/init.d/zabbix_server restart
/etc/init.d/php-fpm restart
5、客户端单独安装
tar -zxvf zabbix-5.2.0.tar.gz
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
./configure --prefix=/usr/local/zabbix-agent --enable-agent
make -j 2
make install
cp -r /tmp/zabbix-5.2.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_agentd
sed -i s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix-agent#g /etc/init.d/zabbix_agentd
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
/etc/init.d/zabbix_agentd start
zabbix_agent的模式是相对的。
对于客户端,默认是被动模式,则服务端是主动模式。
服务端需要主动向客户端请求数据,如果服务器太多的话,服务器端的压力会非常大。
配置客户端为主动模式
修改配置文件
cat > /usr/local/zabbix-agent/etc/zabbix_agentd.conf << EOF
#Server=192.168.137.100 注释被动模式
StartAgents=0
#0表示关闭被动模式
ServerActive=jk.fk94.com:15151
Hostname=xxx-vm-centos7-zabbix-0001
HostMetadataItem=system.uname
Timeout=20
LogFile=/tmp/zabbix_agentd.log
LogFileSize=0
DebugLevel=3
EOF
自定义必要脚本
1、tcp连接数监听
mkdir -p /usr/local/zabbix-agent/share/zabbix/alertscripts
cat > /usr/local/zabbix-agent/share/zabbix/alertscripts/tcp_connection.sh << EOF
#!/bin/bash
function ESTAB {
ss -ant|awk '{s[\$1]++}END{for(k in s) print k,s[k]}'|awk '/ESTAB/{print \$2}'
}
function TIMEWAIT {
ss -ant|awk '{s[\$1]++}END{for(k in s) print k,s[k]}'|awk '/TIMEWAIT/{print \$2}'
}
function LISTEN {
ss -ant|awk '{s[\$1]++}END{for(k in s) print k,s[k]}'|awk '/LISTEN/{print \$2}'
}
\$1
EOF
chmod +x /usr/local/zabbix-agent/share/zabbix/alertscripts/tcp_connection.sh
vi /usr/local/zabbix-agent/etc/zabbix_agentd.conf
添加
UserParameter=tcp[*],/usr/local/zabbix-agent/share/zabbix/alertscripts/tcp_connection.sh $1
2、监控用户的最大进程数和最大文件打开数
cat > /usr/local/zabbix-agent/share/zabbix/alertscripts/ulimit.sh << EOF
function files {
cat /etc/security/limits.conf|grep -v "#"|grep "nofile"|awk '{print \$NF}'|tail -n1
}
function processes {
cat /etc/security/limits.conf|grep -v "#"|grep "nproc"|awk '{print \$NF}'|tail -n1
}
\$1
EOF
chmod +x /usr/local/zabbix-agent/share/zabbix/alertscripts/ulimit.sh
vi /usr/local/zabbix-agent/etc/zabbix_agentd.conf
添加
UserParameter=ulimit[*],/usr/local/zabbix-agent/share/zabbix/alertscripts/ulimit.sh $1
重启zabbix_agent
6、web界面上配置主机组和告警模板
- linux基础监控模板
看附件,三种模式,随便找到一种导入即可 - 在web界面配置客户端主动模式-自动注册
有些告警线是自动发现的,监控项原型,请参考这篇博客
7、配置邮件告警(报警媒介类型)
不用zabbix自带的,会失灵,直接用mailx发邮件
yum -y install mailx dos2unix
cat > /etc/mail.rc << EOF
set from=jkfeko94@163.com #设置发件人邮箱
set smtp=smtp.163.com #设置smtp
set smtp-auth-user=jkfeko94@163.com #设置登录的用户名
set smtp-auth-password=xxxxxx #注意,这个不是密码,是SMTP授权码
set smtp-auth=login # 认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
EOF
cd /data/soft/zabbix/share/zabbix/alertscripts
cat > mailx.sh << EOF
#!/bin/bash
#echo "\$3" | mail -s "\$2" "\$1"
FILE=/tmp/mailtmp\${RANDOM}.txt
touch \$FILE
echo "\$3" >\$FILE
dos2unix -k \$FILE
mailx -v -s "\$2" "\$1" < \$FILE
rm -f \$FILE
EOF
web端配置
名称
mailx
类型
脚本
脚本名称
mailx.sh
脚本参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
- 创建接收邮件群组,添加用户(用户要配置告警媒介邮箱)
故障[{HOSTNAME1}]:{TRIGGER.NAME}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已恢复[{HOSTNAME1}]:{TRIGGER.NAME}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
8、Linux基础性能监控模版主动模式(Linux basic performance monitoring template active)
[zabbix5.2官方自定义监控项](https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/zabbix_agent "zabbix5.2官方自定义监控项")
未分类
信息
警告 P3
一般严重 P2
严重 P1
灾难 P0
9、解决监控图的乱码
下载地址:[点击下载](https://wiki.fafdy.com/binary/zabbix/v5.2/微软vista雅黑ttf.zip)
cd /data/www/jk.feko94.com/assets/fonts/
rz -E
cd /data/www/jk.feko94.com/
egrep "ZBX_GRAPH_FONT_NAME|ZBX_FONT_NAME" include/defines.inc.php
cp include/defines.inc.php include/defines.inc.php.bak
sed -i 's#DejaVuSans#stzhongs#g' include/defines.inc.php
客户端
- zabbix-agent已经打包,下载解压即可使用
groupadd --system zabbix useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix cd /usr/local/ wget https://wiki.fafdy.com/binary/zabbix/v5.2/zabbix-agent.tar.gz tar xf zabbix-agent.tar.gz cd zabbix-agent mv zabbix_agentd /etc/init.d/ chkconfig --add zabbix_agentd /etc/init.d/zabbix_agentd start chkconfig zabbix_agentd on