当前的一个项目需要音视频的技术,而公司刚好没有类似的产品。幸好开源社区如此的强大,稍微谷歌一下,就找到了强大的Kamailio整合Asstersik的解决方案。
接下来的事情非常顺利,安装Ubuntu操作系统、下载源码、编译、安装软件,一步步安装官方文档进行中。并且过程中没有提示任何错误,这让我们很兴奋。
最后我们使用imsAndroid(一个Android系统的Sip客户端)进行测试,结果却显示连接失败。这个客户端软件严格遵守”不要打印任何让用户挫败的错误”原则,这是非常正确的,但是对开发人员来说,这并不是个好消息。
我们只能从服务器端开始查错,首先查看服务端的kamailio是否正常启动,执行命令 pa –ef | grep kamailio。结果显示我们sip服务没有启动。接下来我们需要的则是更多的关于软件执行的信息,包括启动信息、错误信息、以及任何软件开发人员想告诉我们的信息。
可是,问题来了。
如果你经常在windows下开发,并且没有太多的Linux开发经验,你会试图在软件的安装目录下查找包含log关键字的文字,结果是not found。
查错需要的信息
●系统打印的信息:比如远端链接失败、账密验证失败等信息,或者是软件依赖的底层服务启动失败的信息以及本地服务启动的执行信息。
●网络服务的错误信息:远端服务不存在、链接超时、或者需要代理等等信息。
●事件记录簿:这里可以很快找到关于服务运行的某个事件信息,失败以及失败原因等等。
谁可以帮助你
linux提供一个syslogd服务可以提供你log文件,帮助你获得以上的信息,syslogd记录的同时还会帮助你分类这些信息。比如在/var/log目录下,你可以找到以上的信息:
/var/log/cron:
记录系统排程启动的信息。
/var/log/dmesg:
记录系统开机时产生的各种信息。
/var/log/lastlog:
记录用户登录系统的信息。
/var/log/maillog 或 /var/log/mail/*:
记录邮件相关的信息,主要有sendmain与devecot产生的信息,
前者是SMTP协议的提供者,而后者是POP3协议的提供者。
/var/log/messages:
记录系统发生的错误信息,对于差错非常重要。
/var/log/secure:
记录软件验证的信息。包含ssh、telnet以及login程序等程序的验证信息,
基本上,涉及验证的软体都会在这个档案中记录。
/var/log/wtmp, /var/log/faillog:
这两个档案记录正确登入系统的账号与错误登入的账号信息。
/var/log/httpd/*, /var/log/news/*, /var/log/samba/*:
不同的服务可能使用自己的log档记录产生的各项信息,这需要软件在配置
档中进行相应的配置。