عدم دریافت دیتا در بعضی آیتم های زبیکس


#1

سلام
من چند تا مشکل روی سرور زبیکس دارم . اول اینکه به عنوان مثال روی مپ من یک تریگر فعال شده که مثلا Used MEmory من تا 80 درصد بالا رفته و وضعیت MAP به هشدار تغییر کرده بعد از رفع مشکل باید رنگ MAP من مجددا طبیعی میشد ولی نشده . با بررسی lastdata دیدم که آخرین رکورد دریافتی همون 86 درصد مقدار Used Memory بوده که نشون میده نمیتونه دیتای دیتابیس رو آپدیت کنه یا شاید نیمیتونه مقدار جدید بفرسته . این مشکل تا زمانی که سرور رو ریبوت کنم ادامه داره با ریبوت کردن سرور مشکل حل میشه حتی با ریست کردن سرویس Zabbix Agent بازم مشکل برقراره.
مشکل دوم اینکه روی یک سرور من یک سری Userparameter جدید برای مانیتور کردن پارامتر های سرور اضافه میکنم. با ریست کردن سرویس زبیکس Agent باید پارامتر های جدید اضافه بشه و بتونم آنها رو مانیتور کنم . اما بعضی مواقع این اتفال نمی افته و سرور من نمیتونه دیتای جدید و حتی دیتای قدیمی اون سرور رو بگیره و Agent بطور کامل ارتباطش با سرور قطع میشه ( Telnet به پورت 10050 انجام میشه یعنی پورت فعاله اما دیتا نمیفرسته ) و با ریست کردن Agent هم مشکل حل نمیشه تا زمانی که سرور رو به طور کامل ریبوت کنم .
این مورد رو من 5 سرور مشابه دارم که برای دوتا بدون مشکل userparameter کار میکنه ولی برای سه تای بعدی حتما باید سرور رو ریبوت کنم .

در نهایت اینکه بعضی وقتا ارتباط زبیکس Agent با سرور زبیکس برقرار نمیشه و تا ریست شدن کامل سرور این مشکل ادامه داره .
راهکاری برای رفع این مشکل هست ؟ چون بعضی سرورها عملیاتی هستن و واقعا ریست کردن اونها غیر ممکنه

ضمن اینکه به نظر من این مشکل مربوط به Cache شدن ارتباط هست که نمیتونه ارتباط جدید بین نرم افزار تا سرور برقرار بشه
ممنون میشوم راهنمایی کنید


#2

مهندس جان در صورتی که مشکل در لینک ارتباطی بین سرور زبیکس با سرورهای مانیتور شده ندارید و شبکه با کیفیت داره کار می کنه باید بگم که گاهی اوقات هست که Userparameter یی که می نویسید بار زیادی رو روی سرور ایجاد می کنه ( البته من نمی دونم که UserParameter شما چه کار می کنه) این باعث می شه که عملا سرور نیاز به ریست شدن پیدا کنه.

نکته مهم این جاست که در زمان ریست کردن Agent گاهی اوقات این اتفاق به صورت کامل انجام نمی شه یعنی اینکه Agent با یک error مواجه شده که باعث می شه فرآیند Restart شده اون کامل صورت نگیره و در نتیجه شما هیچ گونه تغییری در رفتار اون رو احساس نمی کنید. اگر این اتفاق افتاد باید یک بار تمام Process های Agent رو Stop کنید و مجددا Start کنید.

مورد بعدی اینه که ممکنه این مشکل در اثر کم بودن تعداد Process های Poller باشه که این از طریق گراف های زبیکس قابل بررسی هستش. اگر این طوره شما باید در تنظیمات زبیکس تعداد این Process ها رو افزایش بدید.


#3

سلام
مشابه همین مشکل برای من دوباره پیش اومد . مقدار Userparameter تولید شده اصلا در حدی نیست که بخواد روی سرور بار اینجاد کنه .
اما دیروز طی بررسی هایی که کردم به نتایجی رسیدم که گفتم اینجا هم بگم بد نباشه
نکته اول اینکه وقتی سرویس Zabbix-agent بر روی سرور ویندوزی در حال کار و جمع آوی اطلاعات هست این اطلاعات را بدون هیچ مشکلی دریافت میکند .
نکته دوم اینکه با اعمال تغییرات برای افزودن یا کاهش یک Userparameter به سرور برای اعمال آن مجبور به ریست کردن سرویس ایجنت زبیکس میشویم در این جالت سرویس Stop و مجددا استارت میشود .
در این حالت با وجود اینکه Stop , Start زبیکس بدون مشکل و خطا انجام میشود دیگر هیچ کدام از پارامتر های زبیکس بروز رسانی نمیشود (‌در منوی سرور last data آپدیت نمیشود )‌
نکته سوم. .زبیکس را به طور کامل stop و مجددا استارت کردم که باز هم مشکل حل نشد .

در این حالت سرویس زبیکس را به طور کامل Stop کردم و پروسه های ویندوز را جهت اطمینان از Stop شدن تست کردم که در این حالت سرویس زبیکس به طور کامل Stop بود اما نکته ای که در اینجا وجود داشت پورت ۱۰۰۵۰ که مربوط به سرویس زبیکس است همچنان در وضعیت Listening وجود داشت !! در حالیکه سرویس زبیکس کاملا استاپ بود .
در این مرحله بدون ریست کردن سرور سرویس زبیکس را از سرویس ها Uninstall کردم که بدون مشکلی به طور کامل Uninstall گردید . اما پورت ۱۰۰۵۰ همچنان در وضعیت Listening و جود داشت

با طرح سوال در شبکه های اجتماعی. واینترنت به این نکته اشاره شده که سرویسهای Command base میتوانند پروسه های مخفی زیر مجموعه با نامهای cmd.exe و connhost.exe و svchost.exe داشته باشند . که سرو من connhost را فعال داشت . با kill نمودن انها باز هم مشکل حل نشد .
از آنجا که سرویس اصلی سرور من از svchost.exe استفاده میکرد امکان Stop کردن آن برای من وجود نداشت .
برای رفع موقت مشکل بدون ریست کردن سرور پورت Agent را از ۱۰۰۵۰ به ۱۰۰۵۴. تغییر دادم و مجددا سرویس را install و فعال کردم

یکی از سوالاتی که مطرح میشود این است که چطور میتوان به طور دقیق نام پروسه مورد استفاده توسط یک برنامه رو پیدا کرد . من اینجا با دستور netstat -a -n -o نام شماره PID مربوطه رو پیدا میکردم اما جالبتر اینکه چنین پروسه ای در دستور tasklist و جود نداشت و از این جالبتر اینکه با دستور taskkill /pid امکان kill نمودن این پروسه هم وجود نداشت و پیغام عدم وجود پروسه میداد. .

این سرور به صورت کلاستر با دو سرور ویندوزی دیگر در حال کار بود اما سرویس zabbix به عنوان سرویس کلاستر روی آن تعریف نشده است .