排查zabbix-agent脱管


学好排除问题的方法,有助于提高生产力。

排查zabbix-agent脱管


早上系统运维发信息说有一台我们的服务器 zabbix-agent 脱管了,说是昨天还是正常的,需要我排查下问题。之前一直没有使用过这台服务器,登录上去之后,先通过 lastloglast 看了下是否有异常的用户操作,但是因为这台服务器权限没有进行细分导致都是 root 的信息。

排查zabbix-agent脱管

发现服务器的 zabbix-agent 服务并没有启动,随后看了下对应服务的日志位置和信息,发现前一天有异常日志,如下所示。

排查zabbix-agent脱管

通过查看日志信息并没有看到有任何异常的日志信息,对于上述信息大都是因为配置文件异常导致服务加载异常的,想想还是看看最近有没有什么不正常的操作。

排查zabbix-agent脱管

排除我进去进入的操作,稍微往上翻了下,发现有人 reboot 启了系统。想了想发现,可能是因为该服务并没有设置开机自启动,重启服务导致该服务未启动,所以才会脱管的。为了验证自己的判断逻辑,查了下系统的自启动服务列表(CentOS7系统)。

排查zabbix-agent脱管

排查zabbix-agent脱管

验证之前的判断是正确的,启动zabbix-agent服务并将其加入开机自启动列表中,服务正常了。

排查zabbix-agent脱管


  • 设置开机自启动
# CentOS6设置开机自启动
# 服务脚本必须存放在/etc/ini.d/目录下
# 在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入

# 列出所有的系统服务
chkconfig --list
# 增加httpd服务
chkconfig --add httpd
# 删除httpd服务
chkconfig --del httpd
# 设置httpd在运行级别为2、3、4、5的情况下都是on的状态
chkconfig --level httpd 2345 on
# 列出系统所有的服务启动情况
chkconfig --list
# 列出mysqld服务设置情况
chkconfig --list mysqld
# 设定mysqld在等级3和5为开机运行服务,on表示启动,off表示关闭
chkconfig --level 35 mysqld on
# 设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
chkconfig mysqld on
# CentOS7设置开机自启动
systemctl enable nginx.service

# 查看运行的服务
systemctl list-units --type=service
  • 理解 Unit 文件配置格式
# Description:描述服务
# After:描述服务类别
# [Service]服务运行参数的设置
# Type=forking是后台运行的形式
# ExecStart为服务的具体运行命令
# ExecReload为重启命令
# ExecStop为停止命令
# PrivateTmp=True表示给服务分配独立的临时空间
# 注意: [Service]的启动、重启、停止命令全部要求使用绝对路径
# 注意: [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/www/lnmp/nginx/sbin/nginx -c /www/lnmp/nginx/conf/nginx.conf
ExecReload=/www/lnmp/nginx/sbin/nginx -s reload
ExecStop=/www/lnmp/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !